【问题标题】:Generating random unique BigIntegers within a specified range?在指定范围内生成随机唯一 BigIntegers?
【发布时间】:2016-10-29 03:05:17
【问题描述】:

我是使用 BigInteger 的新手,所以我正在尽我最大的努力阅读它的文档。然而,我仍然很困惑。我需要在 2^70 和 2^80 之间生成 500 个随机整数,但我不知道如何为 BigIntegers 设置范围。

我收到了可能重复的消息,所以我想我应该补充一点,我已经看过这个解决方案,但仍然不明白如何解决我的问题:How to generate a random BigInteger value in Java?

【问题讨论】:

标签: java biginteger


【解决方案1】:

在 0 和 2^n - 1 之间有一个 built-in method to generate a random BigInteger

您可以在循环中使用它来生成最多 2^80 的数字。

一个数字低于 2^70 的可能性非常小(~ 0.1%)。如果发生这种情况(500 次迭代可能会非常好),只需再画一个。

这将使您在 2^70 和 2^80 之间均匀分布随机数。

一个数字重复的机会几乎不存在。如果你觉得不能忽视,请检查你之前的号码是否重复,然后再抽奖。

【讨论】:

  • 是否可以设置最小范围值?对于我的分配情况,它需要设置在该特定范围内。
  • 最小范围是多少?如果是 2^70,上面的会很好用。如果是2^78,最好换个方法,比如stackoverflow.com/a/23054579/14955
猜你喜欢
  • 2018-12-17
  • 2011-08-02
  • 2014-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 2018-04-08
相关资源
最近更新 更多