java - 生成 BigInteger 数字然后相乘。

标签 java algorithm biginteger

我正在尝试生成具有 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/

相关文章:

c# - 返回在其他 List<string> 中仅出现一次的元素 List<string> 的微观优化和最优雅的方式是什么

algorithm - 如何在 MATLAB 中检测几乎重叠的圆形对象?

java - DIT FFT Radix-2 算法故障排除

Haskell Int64 不一致?

java - 更新 MySQL 数据库中的数据

java - 列出 SpringApplication.run 加载的所有 bean

java - Guice 中一个类的多个提供者

java - 如何 "anchor"SWT 小部件?

java - 提高递归的性能

java - 为什么 java 在尝试使用 java.math.BigInteger 找出 pi 的值时会给出奇怪的结果?