首页 > 解决方案 > python随机选择生成相同的结果而不是随机的

问题描述

我希望每次迭代都会打印一些 1 和 0,但它们都是 0 或 1。所以这random.choices似乎不是随机的,我没有看到概率分布。任何想法?

import random
a = random.choices(population=[['a','b'], ['b','a'], ['c','b']], weights=[0.2, 0.2, 0.6],k=6)
for i in range(10):
    print(a)

输出:(有时全为 1)

[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]

标签: python-3.x

解决方案


您所做的是a在开始时设置一次,然后打印 10 次。

a =行需要在 for 循环内。

import random
for i in range(10):
    a = random.choices(population=[['a','b'], ['b','a'], ['c','b']], 
                       weights=[0.2, 0.2, 0.6],
                       k=6)
    print(a)

推荐阅读