from itertools import product
p = np.random.randint(1,2,2)
p = product(p, repeat=50)
我不知道如何立即获得P的长度
产品迭代器将包含与您传递的所有可迭代项的长度相乘的项目。您正在传递一个迭代,但重复了50次。因此,您必须将p
的长度彼此相乘50倍。基本上是len(p)**50
。
这是简单的组合,而不是真正的编程。有a**n
种方法可以选择a
次n
值中的任何一个(允许重复)。在您的情况下,a
是len(p)
(原始的p
,数组)或2(因为您已经生成了具有两个值的数组),并且n
是50,所以将获得2**50
如果您有很多时间遍历它们,则为product
或1125899906842624的结果。
现在,如果您要查找多少distinct值,则答案甚至更容易(尽管如此)。只有一个独特的价值产生过,一个元组有50个。这是因为您要从仅包含值1
的数组中获取产品,而别无其他,因为numpy.random.randint(1, 2)
仅给您1
(上限被排除)。