我怀疑以下代码会返回类似的结果:import randomrandom.seed(765)x = random.choices(range(34), k=100)random.seed(765)y = [random.choice(range(34)) for _ in range(100)]但当我们比较时>>> x[:5][1, 8, 9, 31, 29]>>> y[:5][2, 30, 15, 26, 17]显然x不等于y.我怀疑我遗漏了一些明显的东西,但假设种子设置的序列将返回相同的 100 个值,无论选择与 k = 100 的选择如何。
1 回答
不负相思意
TA贡献1777条经验 获得超10个赞
请参阅文档:
对于给定的种子,
choices()
具有相同权重的函数通常会生成与重复调用不同的序列choice()
。使用的算法choices()
使用浮点运算来实现内部一致性和速度。默认情况下使用的算法choice()
采用重复选择的整数运算,以避免舍入误差造成的小偏差。
添加回答
举报
0/150
提交
取消