[英]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
次(面孔由0
到5
的数字表示,包括在内)。
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.