【问题标题】:How to choose a random number in the range when working with BigInteger [duplicate]使用BigInteger时如何在范围内选择一个随机数[重复]
【发布时间】:2021-04-23 05:44:44
【问题描述】:
BigInteger bigInteger = new BigInteger("534534");

2 到 bigInteger-2 之间的范围;

【问题讨论】:

  • 嗯,你可以使用new BigInteger(bigInteger.subtract(BigInteger.valueOf(4)).bitCount(), new Random()).add(BigInteger.valueOf(2)) 之类的东西——看看JavaDoc。

标签: java biginteger


【解决方案1】:

您可以像这样[1]

double f = Math.random()/Math.nextDown(1.0);
double x = x1*(1.0 - f) + x2*f;

使用范围在 2 和 bigInteger-2 之间的 BigDecimals;:

double f = Math.random()/Math.nextDown(1.0);
BigDecimal.valueOf(2).multiply(BigDecimal.valueOf(1.0 - f)).add(new BigDecimal(bigInteger.subtract(BigInteger.valueOf(2))).multiply(BigDecimal.valueOf(f))).toBigInteger()

【讨论】:

    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多