gpt4 book ai didi

math - 生成非常非常大的随机数

转载 作者:行者123 更新时间:2023-12-04 14:51:30 24 4
gpt4 key购买 nike

你将如何生成一个非常非常大的随机数?我正在考虑 2^10^9(十亿位)的数量级。任何编程语言——我认为该解决方案会翻译成其他语言。

我想要 [1,N] 上的均匀分布。

我最初的想法:

--您可以随机生成每个数字并连接。问题:即使是非常好的伪随机生成器也可能会开发出具有数百万位数字的模式,对吗?

  • 您也许可以通过将随机数提升为随机指数来帮助创建大型随机数。问题:您必须使数学运算有效,以便结果数字仍然是随机的,并且您应该能够在合理的时间内(例如,一个小时)计算它。
  • 如果有帮助,您可以尝试在可能较小的范围内生成可能的非均匀分布(例如,使用实数)并进行转换。问题:这可能同样困难。

  • 有任何想法吗?

    最佳答案

    生成 log2(N)随机位得到一个数字 M ,
    哪里M可能是 N 的两倍大.
    重复直到 M位于 [1;N] 范围内.

    现在要生成随机位,您可以使用真随机源,这很昂贵。

    或者您可以使用一些加密安全的随机数生成器,例如带有随 secret 钥的 AES,用于加密后续位块的计数器。加密安全意味着没有明显的模式。

    关于math - 生成非常非常大的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5447761/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com