标签: biginteger

如何使用BigInteger?

我有这段代码,但是没有用:

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.我做错了什么?

java biginteger

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

从Integer转换为BigInteger

我想知道是否有任何方法可以将Integer类型的变量转换为BigInteger.我尝试了对Integer变量进行类型转换,但是我得到一个错误,说明了不可转换的类型.

java biginteger

120
推荐指数
1
解决办法
22万
查看次数

Java中的大数字

我如何在Java中使用极大数字进行计算?

我已经尝试long但最大限度为9223372036854775807,并且当使用整数时,它不能保存足够的数字,因此不够准确,无法满足我的需要.

有没有办法解决?

java integer numbers biginteger

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

任意精度算术解释

我正在尝试学习C并且遇到无法使用真正的大数字(即100位,1000位等).我知道存在这样做的库,但我想尝试自己实现它.

我只是想知道是否有人或者可以提供任意精度算术的非常详细,愚蠢的解释.

math biginteger bignum

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

如何在C++中实现大型int

我想在C++中实现一个大的int类作为编程练习 - 一个可以处理大于long int的数字的类.我知道已经有几个开源实现,但我想写自己的.我试图了解正确的方法是什么.

我知道一般策略是将数字作为字符串,然后将其分解为较小的数字(例如,单个数字),并将它们放在一个数组中.此时,实现各种比较运算符应该相对简单.我主要担心的是如何实现添加和乘法等功能.

我正在寻找一种通用的方法和建议,而不是实际的工作代码.

c++ largenumber biginteger bignum

78
推荐指数
6
解决办法
9万
查看次数

最好的跨平台(便携式)任意精度数学库

我在C或C++中寻找一个好的任意精度数学库.你能给我一些意见/建议吗?

主要要求:

  1. 必须处理任意大整数(我的主要兴趣是整数).如果你不知道这个词是什么意思大,意味着像100000这样的东西!(阶乘为100000).
  2. 在库初始化/对象创建期间,不必指定精度.精度应该受系统可用资源的限制.
  3. 应该利用平台的全部功能,并且应该本地处理"小"数字.这意味着在64位平台上,计算2 ^ 33 + 2 ^ 32应该使用可用的64位CPU指令.库不应该像在同一平台上使用2 ^ 66 + 2 ^ 65那样计算它.
  4. 必须处理加法(+),减法( - ),乘法(*),整数除法(/),余数(%),幂(**),增量(++),减量( - ),gcd() ,factorial()和其他常见的整数算术计算有效.能够处理不产生整数结果的sqrt()(平方根),log()(对数)等函数是一个优点.处理符号计算的能力甚至更好.

这是我到目前为止发现的:

  1. JavaBigIntegerBigDecimal类:到目前为止我一直在使用它们.我已经阅读了源代码,但我不了解下面的数学.它可能基于我从未学过的理论/算法.
  2. 内置的整数类型或bc/Python/Ruby/Haskell/Lisp/Erlang/OCaml/PHP /其他一些语言的核心库:我曾经使用过其中的一些,但我不知道他们使用的是哪个库,或者他们正在使用哪种实现方式.

我所知道的:

  1. 使用char作为十进制数字,使用char*作为十进制字符串,并使用for循环对数字进行计算.
  2. 使用int(或long intlong long)作为基本"单元"并将其数组作为任意长整数,并使用for循环对元素进行计算.
  3. 使用整数类型将十进制数字(或几位数)存储为BCD(二进制编码的十进制).
  4. Booth的乘法算法 …

c c++ biginteger gmp bigdecimal

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

BigInteger有上限吗?

可能重复:
BigInteger没有限制意味着什么?

Javadoc for BigInteger没有定义任何最大值或最小值.但它确实说:

(重点补充)

不可变的任意精度整数

甚至在理论上是否存在这样的最大值?或者BigInteger操作方式是否根本不同,除了计算机上可用的内存量之外,实际上没有最大值?

java biginteger

76
推荐指数
3
解决办法
10万
查看次数

如何将String转换为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 string biginteger

65
推荐指数
4
解决办法
17万
查看次数

C#中的大整数

目前我正在借用java.math.BigInteger这里描述的J#库.从来没有使用过库来处理大整数,这看起来很慢,大约慢了10倍,即使对于ulong长度数也是如此.有没有人有更好的(最好是免费的)库,或者这种性能水平是否正常?

c# j# largenumber biginteger

64
推荐指数
3
解决办法
6万
查看次数

如何在Java中生成随机BigInteger值?

我需要生成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的幂?

java random biginteger

62
推荐指数
3
解决办法
6万
查看次数

标签 统计

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