为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Java中生成随机的BigInteger值?

如何在Java中生成随机的BigInteger值?

摇曳的蔷薇 2019-10-19 14:13:31
我需要生成介于0(含)到n(不含)之间的任意大随机整数。我最初的想法是调用nextDoublen并乘以n,但是一旦n变得大于2 53,结果将不再均匀分布。BigInteger 具有以下可用的构造函数:public BigInteger(int numBits, Random rnd)构造一个随机生成的BigInteger,该整数均匀地分布在0到(2 numBits -1)(包括0和2 )之间。如何使用它来获得0-n范围内的随机值,其中n不是2的幂?
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

为什么不构造一个随机的BigInteger,然后从中构造一个BigDecimal呢?BigDecimal中有一个构造函数:public BigDecimal(BigInteger unscaledVal, int scale)在这里似乎相关,不是吗?给它一个随机的BigInteger和一个随机的缩放int,您将拥有一个随机的BigDecimal。不是吗


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 1496 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信