标签: biginteger

emacs/elisp中的bignum

emacs是否支持不适合整数的大数字?如果是,我该如何使用它们?

elisp biginteger bignum

11
推荐指数
1
解决办法
1279
查看次数

在Perl中使用非常大的数字时如何禁用科学记数法?

考虑以下:

print 3 ** 333; #Yields 7.6098802313206e+158
Run Code Online (Sandbox Code Playgroud)

我的问题很简单:在处理非常大的数字时,如何禁用科学记数法?基本上,我希望看到所有数字stdout逐字逐句转储.

这可能吗?

formatting perl integer numeric biginteger

11
推荐指数
2
解决办法
6736
查看次数

BigInteger是否会溢出?

API文档说

有关溢出的规范中的所有细节都将被忽略,因为BigIntegers的大小可以根据操作的结果进行调整.

这是否意味着假设您有足够的可用内存,BigInteger永远不会溢出?如果是这样的话,为什么我们让一些"类型"溢出而一些不会?

随着语言的发展,它是否会偏向程序员隐藏溢出机制的类型?

java overflow biginteger

11
推荐指数
2
解决办法
3428
查看次数

BigInteger与否还不是BigInteger?

在Java中,大多数基本类型都是有符号的(一位用于表示+/-),因此当我超出类型的限制时,我会得到意想不到的结果,比如负数.

有没有比使用BigInteger更好的解决方案,因为BigInteger存在性能问题,您需要使用类方法进行基本算术而不是语言运算符(废弃可读性)?

java biginteger

11
推荐指数
2
解决办法
2842
查看次数

C#中的BigInteger部门

我正在编写一个需要在C#中准确划分BigInteger类的类.

例:

BigInteger x = BigInteger.Parse("1000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
BigInteger y = BigInteger.Parse("2000000000000000000000000000000000000000000000000000000000000000000000000000000000000");

x /= y;

Console.WriteLine(x.ToString());

//Output = 0
Run Code Online (Sandbox Code Playgroud)

问题是作为一个整数,自然它不包含十进制值.我怎样才能克服这一点,得到0.5的实际结果(给出的例子).

PS解决方案必须能够准确地划分任何BigInteger,而不仅仅是示例!

.net c# biginteger division

11
推荐指数
2
解决办法
5258
查看次数

为什么Go中的大型int api如此奇怪?

我正在努力理解big int api背后的设计决策.

例如,要添加两个大的int,您必须:

a := big.NewInt(10)
b := big.NewInt(20)
c := big.NewInt(0)
d := c.Add(a,b)
Run Code Online (Sandbox Code Playgroud)

其中d与末尾的c相同.初始零点无关紧要.

为什么不呢:

a := big.NewInt(10)
b := big.NewInt(20)
c := big.Add(a,b)
Run Code Online (Sandbox Code Playgroud)

或者更好的是:

a := big.NewInt(10)
b := big.NewInt(20)
c := a.Add(b)
Run Code Online (Sandbox Code Playgroud)

他们选择这样做有什么理由吗?我发现它有点令人困惑,每当我使用它时都要查找它.

biginteger go

11
推荐指数
1
解决办法
536
查看次数

将字符串转换为BigInteger

我有以下代码创建一个非常大的数字(BigInteger),然后转换为string.

// It's a console application.
BigInteger bi = 2;
for (int i = 0; i < 1234; i++)
{
   bi *= 2;
}
string myBigIntegerNumber = bi.ToString();
Console.WriteLine(myBigIntegerNumber);
Run Code Online (Sandbox Code Playgroud)

我知道,为了转换到int我们可以使用Convert.ToInt32和转换为long我们使用Convert.ToInt64,但是转换BigInteger为什么?

我怎样才能将string(代表一个非常长的数字)转换成BigInteger

c# string parsing biginteger type-conversion

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

提高Java的BigInteger性能

如何提高Java的Big Integer的性能?

例如,这个阶乘程序:

import java.math.*;
class Fac {
  public static void main(String[] args) {
    BigInteger i = BigInteger.ONE;
    for(BigInteger z=BigInteger.valueOf(2);z.compareTo(BigInteger.valueOf(99999)) != 0;) {
      i = i.multiply(z);
      z = z.add(BigInteger.ONE);
    }
    System.out.println( i );
  }
}
Run Code Online (Sandbox Code Playgroud)

该计划在31.5s 完成

C++中的位置:

#include <iostream>
#include <gmpxx.h>
using namespace std;
int main() {
  mpz_class r;
  r = 1;
  for(int z=2;z<99999;++z) {
    r *= mpz_class(z);
  }
  cout << r << endl;
}
Run Code Online (Sandbox Code Playgroud)

1.0s 完成

和Ruby(用于比较):

puts (2...99999).inject(:*)
Run Code Online (Sandbox Code Playgroud)

4.4s(Ruby)和32.2JRuby中完成 …

java biginteger

11
推荐指数
1
解决办法
9143
查看次数

在Java BigInteger中使用科学格式的字符串初始化?

我需要使用大数字(在1E100 - 1E200范围内).但是,BigInteger该类似乎通常是合适的,在初始化期间不识别科学格式的字符串,也不支持转换为格式的字符串.

BigDecimal d = new BigDecimal("1E10"); //works
BigInteger i1 = new BigInteger("10000000000"); //works
BigInteger i2 = new BigInteger("1E10"); //throws NumberFormatException
System.out.println(d.toEngineeringString()); //works
System.out.println(i1.toEngineeringString()); //method is undefined
Run Code Online (Sandbox Code Playgroud)

有办法吗?我无法想象这样的类的设计是假设用户必须输入数百个零.

java biginteger

11
推荐指数
1
解决办法
798
查看次数

为什么10 ^ 9942066是我可以在没有溢出的情况下计算的最大功率?

在红宝石中,一些大数字大于无穷大.通过二进制搜索,我发现:

(1.0/0) > 10**9942066.000000001 # => false
(1.0/0) > 10**9942066 # => true
RUBY_VERSION # => "2.3.0"
Run Code Online (Sandbox Code Playgroud)

为什么是这样?10 9942066有什么特别之处?它似乎不是像9999999这样的任意数字,它不接近任何两个的幂(它与2 33026828.36662442大致相等).

为什么红宝石的无限无限?10 9942066如何参与?


我现在意识到,任何大于10 9942066的数字都会溢出到无穷大:

10**9942066.000000001 #=> Infinity
10**9942067 #=> Infinity
Run Code Online (Sandbox Code Playgroud)

但这仍然留下了一个问题:为什么10 9942066

ruby int biginteger

11
推荐指数
1
解决办法
735
查看次数

标签 统计

biginteger ×10

java ×4

c# ×2

.net ×1

bignum ×1

division ×1

elisp ×1

formatting ×1

go ×1

int ×1

integer ×1

numeric ×1

overflow ×1

parsing ×1

perl ×1

ruby ×1

string ×1

type-conversion ×1