随机范围和随机

2024-07-05 14:57:31 发布

您现在位置:Python中文网/ 问答频道 /正文

在这个牌组洗牌函数中,nCards表示牌组中的牌数(52),for循环使用ranrange方法获得从1到52的每个数字的随机“j”值。你知道吗

然而,我不明白“I”怎么可能在执行“for”循环的过程中不断增加,而不是以“I”为52,“j”为52而告终。你知道吗

为什么?因为该随机方法在a和b之间得到i,并且随着for循环的执行,对我来说,i和len(nCards)之间的间隔或nCards的范围减小。你知道吗

所以在我的脑海里。你知道吗

i=1,j=1/52之间的随机值

i=2,j=2/52之间的随机值

i=3,j=3/52之间的随机值

。。。。你知道吗

i=52,j=52/52之间的随机值

我错了吗? 我怎么能在发布这个问题之前测试这个呢?你知道吗

def shuffle(self): 
    import random 
    nCards = len(self.cards) 
    for i in range(nCards): 
      j = random.randrange(i, nCards) 
      self.cards[i], self.cards[j] = self.cards[j], self.cards[i] 

Tags: 方法函数selffor间隔len过程def
1条回答
网友
1楼 · 发布于 2024-07-05 14:57:31

i in range(52)从0开始计数52。i、 最后一个条目是51。请参阅docs以获取参考。你知道吗

^{}选择一个从i到51(包括51)的整数,即52(但不是52)。你知道吗

您可能应该include random在文件的顶部,而不是在方法中。你知道吗

如果你print i, j,你会发现数字和预期的一样。例如

0 16
1 24
2 32
...
49 50
50 50
51 51

相关问题 更多 >