繁体   English   中英

python随机数

[英]python random number

我想知道是否有人可以为我澄清这句话。

创建一个功能die(x),该函数将x掷出x次以跟踪每个面出现多少次,并返回包含这些数字的1X6数组。

我不确定这表示1X6阵列是什么意思? 我正在使用numpy的randint函数,因此输出不确定是否是数组(或列表)。

谢谢

由于骰子有6个可能的结果,如果您获得2个三倍,则结果为:

0 3 0 0 0 0

def die(x):
    return np.bincount(np.random.random_integers(0, 5, size=x))

np.random.random_integers(0,5,size=x)将骰子滚动x次(面孔由05的数字表示,包括在内)。

np.bincount()返回数组中每个值的出现次数,即每个面出现多少次。

>>> a = np.random.random_integers(0, 5, size=10)
>>> a
array([3, 5, 0, 5, 0, 5, 5, 1, 3, 0])
>>> np.bincount(a)
array([3, 1, 0, 2, 0, 4])

这有帮助吗?

def die(x):
    return [np.random.randint(1,6) for i in range(x)]

如果在列表lst中有lst骰的结果,则可以通过执行len([_ for _ in lst if _ == 4])来确定4出现的次数。 您应该能够从那里找出其余的部分。

>>> myarray = [0]*6
>>> roll = 2
>>> myarray[roll-1]+=1
>>> myarray
[0, 1, 0, 0, 0, 0]
>>> myarray[roll-1]+=1
>>> myarray
[0, 2, 0, 0, 0, 0]
>>> roll = 6
>>> myarray[roll-1]+=1
>>> myarray
[0, 2, 0, 0, 0, 1]

现在您只需要设置randint()或类似的值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM