标签: biginteger

Javascript总结大整数

在javascript中,我想用以下方法创建一个大型布尔数组(54个元素)的二进制哈希:

function bhash(arr) {
   for (var i = 0, L = arr.length, sum = 0; i < L; sum += Math.pow(2,i)*arr[i++]); 
   return sum;
}
Run Code Online (Sandbox Code Playgroud)

简而言之:它创建了一个最小的整数来存储一个布尔数组.现在我的问题是javascript显然使用浮点数作为默认值.我必须创建的最大数量是2 ^ 54-1但是一旦javascript达到2 ^ 53,它就会开始做奇怪的事情:

9007199254740992+1 = 9007199254740994
Run Code Online (Sandbox Code Playgroud)

有没有办法在javascript中使用整数而不是浮点数?还是大整数求和?

javascript biginteger

21
推荐指数
3
解决办法
4万
查看次数

BigInteger.pow(BigInteger的)?

我正在玩Java中的数字,想看看我能做多少.我的理解是BigInteger可以容纳一些无限大小,只要我的计算机有足够的内存来容纳这样的数字,对吗?

我的问题是BigInteger.pow只接受一个int,而不是另一个BigInteger,这意味着我只能使用一个最多2,147,483,647的数字作为指数.是否可以使用BigInteger类?

BigInteger.pow(BigInteger)
Run Code Online (Sandbox Code Playgroud)

谢谢.

java math biginteger pow

21
推荐指数
4
解决办法
3万
查看次数

将BigInteger转换为二进制字符串

我们可以将Biginteger转换为二进制字符串

   String s1 = "0011111111101111111111111100101101111100110000001011111000010100";
   String s2 = "0011111111100000110011001100110011001100110011001100110011001100";
   BigInteger bi1, bi2, bi3;
   bi1 = new BigInteger(s1,2);
   bi2 = new BigInteger(s2,2);
   bi3 = bi1.xor(bi2);
Run Code Online (Sandbox Code Playgroud)

如何将bi3转换为二进制字符串

java biginteger

20
推荐指数
1
解决办法
2万
查看次数

在C++中处理大数字?

在C++中处理大型数字输入的最佳方法是什么(例如10^100)?

对于算法,我通常切换到ruby,有时我会使用字符串.

还有其他好方法吗?

c++ largenumber biginteger

19
推荐指数
5
解决办法
5万
查看次数

如何实现(快速)bigint部门?

我正在创建自己的BigInt类,通过将数字分成7位数.(即基数10,000,000)

我实现了加法,减法和乘法,现在我正在实现除法和mod.我编写了一个代码,通过长除法进行除法(通过除以最高有效数字来估算数字),并且它有效.

但是,它太慢了.当我测试108位数和67位数的运算时,计算除法需要1.9ms,比其他运算慢得多(计算加法/减法0.007~0.008ms,计算乘法0.1ms).

与用于快速乘法的Karatsuba和FFT算法一样,存在用于计算除法的算法?维基百科演示了一些除法算法(计算除数的乘法逆,并将其乘以除数),但我认为这对我实施除法没有多大帮助.我也阅读了"大整数方法"部分,但这对我也没有帮助...... :(

javascript algorithm biginteger integer-division

18
推荐指数
1
解决办法
4670
查看次数

我可以用什么变量类型来保存java中的大数(30+位)?

是否有一个非常大的变量类型我可以在Java中用来存储大量数字(最多四十位数)?

long最大值是9223372036854775807,这是19位数 - 不够大.

我正在尝试创建一个可以处理大数字的计算器,因为现在大多数只能保持不到10位左右的数字,而且我希望得到精确计算的数字更大的数字

编辑

谢谢你的回答.我可以BigInteger用于大整数,唯一的限制是计算机的内存(应该足够).对于小数,我将使用float^ e,如@WebDaldo建议,或者BigDecimal(类似于BigInteger),如@kocko建议的那样.

java biginteger bigdecimal

18
推荐指数
2
解决办法
6万
查看次数

如何比较BigInteger的值作为循环中的条件?

我试图比较一个BigInteger(base)的值是否>另一个BigInteger(prime)的值,以及'a'的值是否不等于1.如果a的值不是1,它应该突破循环.我该如何比较它们?

 Random ran = new Random();
    BigInteger prime = new BigInteger(16,ran);
    BigInteger base,a,one;
    one = new BigInteger("1");

    for (int i = 0; i < 65535; i++){

        while (base>prime){
            base = new BigInteger(16,ran);
        }
        a = base.modPow(prime.subtract(one),prime);
        System.out.println("a: "+a);    
        if (a != one){
            break;          
        }   
    }
Run Code Online (Sandbox Code Playgroud)

java biginteger

17
推荐指数
2
解决办法
5万
查看次数

`xrange(2**100)` - > OverflowError:long int太大而无法转换为int

xrange 函数不适用于大整数:

>>> N = 10**100
>>> xrange(N)
Traceback (most recent call last):
...
OverflowError: long int too large to convert to int
>>> xrange(N, N+10)
Traceback (most recent call last):
...
OverflowError: long int too large to convert to int
Run Code Online (Sandbox Code Playgroud)

Python 3.x:

>>> N = 10**100
>>> r = range(N)
>>> r = range(N, N+10)
>>> len(r)
10
Run Code Online (Sandbox Code Playgroud)

range()Python 2.x 有py3k内置函数的后端吗?

编辑

我正在寻找一个完整的"懒惰"实现range(),而不只是部分实现它的一些功能.

python range biginteger xrange python-3.x

16
推荐指数
3
解决办法
1万
查看次数

总结一下BigIntegers的列表

我看了一遍,但无法弄清楚这一点.你如何总结BigIntegers的列表?

Using System.Numerics;
Using System.Linq;

List<BigInteger> bigInts = new List<BigInteger>();
BigInteger sum = bigInts.Sum();             // doesn't work
BigInteger sum = bigInts.Sum<BigInteger>(); // doesn't work
BigInteger sum = bigInts.Sum(x => x);       // doesn't work
Run Code Online (Sandbox Code Playgroud)

你必须这样做吗?

BigInteger sum = new BigInteger(0);
foreach(BigInteger bigint in bigInts)
    sum += bigint;
Run Code Online (Sandbox Code Playgroud)

c# syntax sum biginteger

16
推荐指数
2
解决办法
2829
查看次数

Golang,math/big:*big.Int的最大值是多少

*big.Int的最大值和*big.Rat的最大精度是多少

biginteger go

16
推荐指数
1
解决办法
6728
查看次数