在这个牌组洗牌函数中,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]
i in range(52)
从0开始计数到52。i、 最后一个条目是51。请参阅docs以获取参考。你知道吗^{} 选择一个从
i
到51(包括51)的整数,即到52(但不是52)。你知道吗您可能应该
include random
在文件的顶部,而不是在方法中。你知道吗如果你
print i, j
,你会发现数字和预期的一样。例如相关问题 更多 >
编程相关推荐