相关疑难解决方法(0)

提高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.math.MutableBigInteger的目的是什么?

java.math.MutableBigInteger只能从包装内部获得.它继承自java.lang.Object并且只有一个子类(SignedMutableBigInteger)只能从包内部获得.

java

10
推荐指数
1
解决办法
4652
查看次数

标签 统计

java ×2

biginteger ×1