相关疑难解决方法(0)

随机几乎没有随意?

我这样做是为了测试randint的随机性:

>>> from random import randint
>>>
>>> uniques = []
>>> for i in range(4500):  # You can see I was optimistic.
...     x = randint(500, 5000)
...     if x in uniques:
...         raise Exception('We duped %d at iteration number %d' % (x, i))
...     uniques.append(x)
...
Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
Exception: We duped 887 at iteration number 7
Run Code Online (Sandbox Code Playgroud)

我尝试了大约10倍以上,我得到的最好结果是在转发器之前迭代了121次.这是您从标准库中获得的最佳结果吗?

python random birthday-paradox

74
推荐指数
8
解决办法
4万
查看次数

什么更随机,hashlib或urandom?

我正在和朋友一起开展一个项目,我们需要生成一个随机哈希.在我们有时间讨论之前,我们都提出了不同的方法,因为他们使用不同的模块,我想问你所有更好的东西 - 如果有这样的话.

hashlib.sha1(str(random.random())).hexdigest()
Run Code Online (Sandbox Code Playgroud)

要么

os.urandom(16).encode('hex')
Run Code Online (Sandbox Code Playgroud)

输入这个问题让我觉得第二种方法更好.简单比复杂更好.如果您同意,那么"随机"生成哈希值有多可靠?我该如何测试?

python random hash

18
推荐指数
3
解决办法
1万
查看次数

随机数发生器 - 为什么每次都播种

我是c和c ++的新手.在我用来编程的语言java中,它很容易实现随机数生成.只需从名为Math的类中调用静态随机方法.

int face = ((int)(Math.random() * 6) + 1);
Run Code Online (Sandbox Code Playgroud)

模拟掷骰子......

在c和c ++中,你必须通过调用srand-function 来"播种随机数生成器"

srand ( time(NULL) );
Run Code Online (Sandbox Code Playgroud)

这样做有什么意义 - 我的意思是每次运行代码时都必须为随机数生成器播种?

c c++

17
推荐指数
4
解决办法
2万
查看次数

标签 统计

python ×2

random ×2

birthday-paradox ×1

c ×1

c++ ×1

hash ×1