gpt4 book ai didi

clojure - 如何在给定上限的情况下计算向量中的个数

转载 作者:行者123 更新时间:2023-12-02 16:55:12 27 4
gpt4 key购买 nike

给定一个由 1 和 0 组成的向量,我想计算值为 1 的条目数。但是,向量可能很长,我只关心知道向量是否有零个、一个或多个值为一的条目。

使用给出的方法here ,我可以计算向量中的个数。

(count (过滤器 #{1} [1 0 1 0 0 1 1]))

在这种情况下,我可以限制过滤器(或使用其他方法)以避免访问向量的三个以上元素吗?

最佳答案

过滤器是惰性的,因此只会执行所需的工作。由于您只关心是否有 1、一个 1 或两个或多个 1,因此您只需要检查过滤后的 1 序列中最多两个元素,因此只需 take 2在数数之前:

user=> (count (take 2 (filter #{1} [1 0 1 0 0 1 1])))
2
user=> (count (take 2 (filter #{1} [0 0 0 0 0 0 0])))
0
user=> (count (take 2 (filter #{1} [0 0 0 0 0 0 1])))
1
user=> (def rare (repeatedly #(if (< (rand) 0.0001) 1 0)))
#'user/rare
user=> (take 10 rare)
(0 0 0 0 0 0 0 0 0 0)
user=> (count (take 2 (filter #{1} rare)))
2

关于clojure - 如何在给定上限的情况下计算向量中的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14425195/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com