【发布时间】:2020-08-17 22:48:55
【问题描述】:
我是 python 编程的新手,我写了这段代码作为一个实验。我的问题是,这会增加生成数字的随机性还是只是浪费代码?
import random
def random_number_generator():
""" Returns a randomized random number """
# initialize 10 variable that will have random integers from range 1-10
r1 = random.randint(1, 10)
r2 = random.randint(1, 10)
r3 = random.randint(1, 10)
r4 = random.randint(1, 10)
r5 = random.randint(1, 10)
r6 = random.randint(1, 10)
r7 = random.randint(1, 10)
r8 = random.randint(1, 10)
r9 = random.randint(1, 10)
r10 = random.randint(1, 10)
# create a list that contains the 10 random integer variables
random_lst = [r1, r2, r3, r4, r5, r6, r7, r8, r9, r10]
# Use the random.choice() method to randomly select 1 of the 10
# random numbers (that are randomized 1 -10)
res = random.choice(random_lst)
# return results
return res
print(random_number_generator())
我的问题是,这是否会增加生成数字的随机化,或者它是否比仅应用随机一次更随机?提前感谢您提供任何有用的建议或信息。
【问题讨论】:
-
如果你想“增加随机性”(无论这意味着什么!?我建议阅读统计数据和密码学来完善你的问题)你最好使用
random.SystemRandom().randint(1, 10)这会给您可以访问系统的 CSPRNG,这更难预测(这通常是 PRNG 的判断方式) -
太棒了,感谢 sn-p 和建议! “增加随机性” == “更难预测” - 这就是我的意思,谢谢先生!