Python中随机数最终数字的分布
在Python中,有两种显而易见的方法可以生成一个从0到9的随机数字。一个可以生成一个介于0和1之间的随机浮点数,再乘以10,然后四舍五入。或者,可以使用该random.randint方法。 import random def random_digit_1(): return int(10 * random.random()) def random_digit_2(): return random.randint(0, 9) 我很好奇,如果生成一个0到1之间的随机数并保留最后一位数字,将会发生什么。我不一定期望分布是均匀的,但是我发现结果非常令人惊讶。 from random import random, seed from collections import Counter seed(0) counts = Counter(int(str(random())[-1]) for _ in range(1_000_000)) print(counts) 输出: Counter({1: 84206, 5: 130245, 3: 119433, 6: 129835, 8: 101488, 2: 100861, 9: 84796, 4: 129088, …