我有这段代码,但是没有用:
BigInteger sum = BigInteger.valueOf(0);
for(int i = 2; i < 5000; i++) {
if (isPrim(i)) {
sum.add(BigInteger.valueOf(i));
}
}
Run Code Online (Sandbox Code Playgroud)
sum变量总是0.我做错了什么?
我想知道是否有任何方法可以将Integer类型的变量转换为BigInteger.我尝试了对Integer变量进行类型转换,但是我得到一个错误,说明了不可转换的类型.
我如何在Java中使用极大数字进行计算?
我已经尝试long但最大限度为9223372036854775807,并且当使用整数时,它不能保存足够的数字,因此不够准确,无法满足我的需要.
有没有办法解决?
我正在尝试学习C并且遇到无法使用真正的大数字(即100位,1000位等).我知道存在这样做的库,但我想尝试自己实现它.
我只是想知道是否有人或者可以提供任意精度算术的非常详细,愚蠢的解释.
我想在C++中实现一个大的int类作为编程练习 - 一个可以处理大于long int的数字的类.我知道已经有几个开源实现,但我想写自己的.我试图了解正确的方法是什么.
我知道一般策略是将数字作为字符串,然后将其分解为较小的数字(例如,单个数字),并将它们放在一个数组中.此时,实现各种比较运算符应该相对简单.我主要担心的是如何实现添加和乘法等功能.
我正在寻找一种通用的方法和建议,而不是实际的工作代码.
我在C或C++中寻找一个好的任意精度数学库.你能给我一些意见/建议吗?
主要要求:
这是我到目前为止发现的:
我所知道的:
可能重复:
BigInteger没有限制意味着什么?
Javadoc for BigInteger没有定义任何最大值或最小值.但它确实说:
(重点补充)
不可变的任意精度整数
甚至在理论上是否存在这样的最大值?或者BigInteger操作方式是否根本不同,除了计算机上可用的内存量之外,实际上没有最大值?
我试图从标准输入中读取一些非常大的数字并将它们加在一起.
但是,要添加到BigInteger,我需要使用BigInteger.valueOf(long);:
private BigInteger sum = BigInteger.valueOf(0);
private void sum(String newNumber) {
// BigInteger is immutable, reassign the variable:
sum = sum.add(BigInteger.valueOf(Long.parseLong(newNumber)));
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但由于BigInteger.valueOf()唯一需要a long,我不能添加大于long最大值的数字(9223372036854775807).
每当我尝试添加9223372036854775808或更多时,我都会得到一个NumberFormatException(完全可以预料到).
有类似的东西BigInteger.parseBigInteger(String)吗?
目前我正在借用java.math.BigInteger这里描述的J#库.从来没有使用过库来处理大整数,这看起来很慢,大约慢了10倍,即使对于ulong长度数也是如此.有没有人有更好的(最好是免费的)库,或者这种性能水平是否正常?
我需要生成0(包括)到n(不包括)范围内的任意大的随机整数.我最初的想法是调用nextDouble并乘以n,但是一旦n大于2 53,结果将不再均匀分布.
BigInteger 有以下构造函数可用:
public BigInteger(int numBits, Random rnd)
Run Code Online (Sandbox Code Playgroud)
构造一个随机生成的BigInteger,均匀分布在0到(2 numBits - 1)的范围内,包括0和(2 numBits - 1).
如何使用它来获得0到n范围内的随机值,其中n不是2的幂?
biginteger ×10
java ×6
bignum ×2
c++ ×2
largenumber ×2
bigdecimal ×1
c ×1
c# ×1
gmp ×1
integer ×1
j# ×1
math ×1
numbers ×1
random ×1
string ×1