我正在尝试生成具有 X 位数的大整数。我以为我已经弄清楚了,直到我意识到下面的代码正在创建位,而不是数字。我一直在试图找出一种创建数字而不是位的好方法。有人可以帮我指出正确的方向吗?直到现在我还没有使用过 BigInteger。哦,这是一个家庭作业问题,这就是为什么我要寻求帮助,而不是一个确切的答案。再次感谢大家。
BigInteger X = new BigInteger(23000, new Random());
BigInteger Y = new BigInteger(23001, new Random());
BigInteger result = X.multiply(Y);
最佳答案
log2(10) =~ 3.321928
,因此如果需要 23000 位十进制数字,则应指定 76404 位 (23000*3.321928)。请注意,这将在 [0..1023000] 区间内生成一个数字。该数字本身可能不会有 23000 位数字。
如果你想强制它有 23000 个数字,你应该在 [0..1022999] 范围内生成一个数字并向它添加 1022999。
关于java - 生成 BigInteger 数字然后相乘。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14553819/