我想编写一个python程序,它将模拟同时滚动的3个骰子,但我希望3个骰子在每次滚动时始终具有不同的数字。在第一卷上我得到2,1,6这很好,但我不想要前卫。永远滚动副本2,4,2。 (3,3,3,也是不可接受的)
# generating random numbers 1 - 6
die1 = random.randint(1, 6)
die2 = random.randrange(1, 6)
die3 = random.randrange(1, 6)
这是我到目前为止所有人,我是初学者......谢谢
答案 0 :(得分:8)
>>> sides = 6
>>> dice = random.sample(range(1, sides + 1), 3)
[3, 6, 1]
我建议你重新考虑是否有一个名为die1
,die2
,die3
的变量是个好主意。
通常最好使用上面示例中的列表。
答案 1 :(得分:3)
这将有效:
a = range(1,7)
random.shuffle(a)
a[:3]
答案 2 :(得分:2)
答案 3 :(得分:2)
这不是三个骰子的通常行为,但你可以这样做:
import random
[die1, die2, die3] = random.sample(xrange(1, 7), 3)
以下是有关random.sample()
和xrange()
的文档供您参考。
答案 4 :(得分:0)
如果您要多次滚动,最好将范围(1,7)存储在某处并使用示例函数而不是随机播放(显然因为“随机播放”会使所有范围进行随机播放)
看看这个:
import random,time
N=80000
a = range(1,7)
t= time.clock()
for i in xrange(N):
random.shuffle(a)
a[:3]
t= time.clock()-t
print t
t= time.clock()
for i in xrange(N):
dice = random.sample(range(1, 6 + 1), 3)
t= time.clock()-t
print t
t= time.clock()
for i in xrange(N):
dice = random.sample(a, 3)
t= time.clock()-t
print t