python - 如何使 random.choices 真正随机(我在 secrets 模块中找不到它)

标签 python python-3.x

我想对一种名为 Martingala 的策略进行统计研究。现在我想多次练习,将结果添加到列表中。问题是尽管是随机的,但它总是返回相同的结果。我怀疑这是因为随机模块不是真正随机的。我该如何解决?

非常感谢。

import random
print("ANÁLISIS ESTADÍSTICO DE LA MARTINGALA")
print()
print("La apuesta mínima es 1€")
dinero = int(input("Con cuanto dinero empiezas? "))
muestra = int(input("Tamaño de la muestra: "))
dinero_apostado=1
tiradas=0
datos=list()
while muestra>0:
    while dinero >= dinero_apostado:
        casilla=random.choices([0,1,2],[1,18,18])
        casilla=casilla.pop()
        if casilla == 1:
            dinero = dinero + dinero_apostado
            dinero_apostado = 1
        elif casilla != 1:
            dinero = dinero - dinero_apostado
            dinero_apostado = dinero_apostado * 2
        tiradas+=1
    datos.append(tiradas)
    muestra-=1
print(datos)

最佳答案

您当前的代码不断重复相同的结果,因为您没有在算法试验之间重置任何变量。一旦内部 while 循环的条件变为 False,它将在外部循环的每次迭代中保持 False。所以主要算法实际上并没有运行几次。它运行一次,然后代码只是重复多次运行的结果。使用不同的随机数生成器无济于事。

尝试将一些变量初始化移到外循环中。您可能需要一个额外的变量来表示您开始时的金额(因为 dinero 会随着游戏的进行而变化)。也许是这样的:

dinero_inicial = int(input("Con cuanto dinero empiezas? ")) # new variable used here
muestra = int(input("Tamaño de la muestra: "))
datos=list()
while muestra>0:
    dinero = dinero_inicial         # move some other initializations inside the outer loop
    dinero_apostado = 1
    tiradas = 0
    while dinero >= dinero_apostado:
        casilla=random.choices([0,1,2],[1,18,18])
        casilla=casilla.pop()
        if casilla == 1:
            dinero = dinero + dinero_apostado
            dinero_apostado = 1
        elif casilla != 1:
            dinero = dinero - dinero_apostado
            dinero_apostado = dinero_apostado * 2
        tiradas+=1
    datos.append(tiradas)
    muestra-=1
print(datos)

关于python - 如何使 random.choices 真正随机(我在 secrets 模块中找不到它),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50779695/

相关文章:

python - 不能从 python3 使用 matplotlib

python-3.x - 为seaborn 热图创建自定义cmap

python - 如何为每个列表项生成一个列表

python - 根据条件拆分 pandas 数据帧列中特殊字符上的字符串

python - 如何解决 'Error while installing steem-python'

python - 从文件中读取以特定字符开头的每一行

python-3.x - "import keras"和 "import tensorflow.keras"有什么区别

python - IEP 中 Python 的乘法表?

python - 读取 os.popen() 输出不会返回任何内容

python - 收到 501 服务器错误 : Not Implemented error when trying to backup Firebase from a remote server