标签: biginteger

为什么JAVA中的BIGInteger没有响应更高的权力?

当我试图找到2 23,000BigInteger数据类型的值时,我无法看到该值.

但是,对于高达2 22,000的计算,我可以BigInteger毫无问题地显示该值.

这有什么解决方案或原因吗?

java biginteger

0
推荐指数
1
解决办法
1632
查看次数

大型int编译器实现?

我正在构建一个类似于c的编译器,但我希望它解析大于2 ^ 32的整数.怎么可能?如何在python和ruby中实现大整数的语言.. !!

c compiler-construction biginteger

0
推荐指数
1
解决办法
255
查看次数

使用LinkedList <BigInteger>

我已经挣扎了一段时间,但是我无法修复错误.
我在没有任何成功的情况下搜索了互联网,并开始徘徊,如果有可能我想完成的事情.

我希望创建一个包含大量节点的数组,这么大,我需要BigInteger.
我创立LinkedList了最适合我的解决方案,所以我开始使用这段代码.

BigInteger[] numberlist = { 0, 1 };
LinkedList<BigInteger> number = new LinkedList<BigInteger>(numberlist);
for(c = 2; c <= b; c++) 
{
    numberlist [b] = 1;                  /* flag numbers to 1 */
}
Run Code Online (Sandbox Code Playgroud)

这意味着将链表中的所有节点都设置为活动状态(1).
变量c和b也是大整数.
我从VS10得到的错误是:

无法将类型'System.Numerics.BigInteger'隐式转换为'int'.存在显式转换(您是否错过了演员?)

问题:

  1. 有可能完成吗?
  2. 如何使用BigInteger(非int)标记所有节点的数量?
  3. 还有其他更好的方法来完成这件事吗?

更新
在示例中,我使用c ++作为计数器.这是可变的......
节点列表可能如下所示:

numberlist[2]
numberlist[3]
numberlist[200]
numberlist[20034759044900]
numberlist[23847982344986350]
Run Code Online (Sandbox Code Playgroud)

我将删除已处理的节点.最多我将使用1,5GB的内存.
请回复此更新,我想知道我的想法是否正确.
我也想从错误中吸取教训!

c# linked-list biginteger

0
推荐指数
1
解决办法
484
查看次数

Zp中的((a ^ x)^ 1/x)== a?(对于Jablon的协议)

我必须实施Jablon的协议()但我已经坐了两个小时的bug.

我对数学不是很好,所以我不知道写这篇文章是不是我的错,或者这是不可能的.如果不可能,我不知道如何实现Jablon的协议,因为它依赖于((gP ^ x)^ yi)^(1/x)== gP ^ yi的事实.

请使用以下代码.它不起作用.

    BigInteger p = new BigInteger("101");
    BigInteger a = new BigInteger("83");
    BigInteger x = new BigInteger("13");
    BigInteger ax = a.modPow(x, p);
    BigInteger xinv = x.modInverse(p);
    BigInteger axxinv = ax.modPow(xinv, p);

    if (a.equals(axxinv))
        System.out.println("Yay!");
    else
        System.out.println("How is this possible?");
Run Code Online (Sandbox Code Playgroud)

security encryption math biginteger modulo

0
推荐指数
1
解决办法
309
查看次数

关于Java BigInteger

我是Java新手,只是用BigInteger编写程序代码.

public static void main(String[] args) {
  BigInteger n = new BigInteger("5");
  BigInteger i = new BigInteger("2");
  while (lesserOrEqual(i,n) {
    System.out.println("n.mod(i) = "+n.mod(i));
    if (n.mod(i) == ZERO) {
      n = n.divide(i);
    }
    else {
      i.add(ONE);
  }
  System.out.println("n = "+n);
  System.out.println("i = "+i);
}


public static boolean lesserOrEqual(BigInteger m, BigInteger n) `{
  if (m.compareTo(n) == -1 || m.compareTo(n) == 0)
    return true;
  return false;
}
Run Code Online (Sandbox Code Playgroud)

ZERO和ONE分别由BigInteger 0,1类型定义.

我希望"i = 2"除以"n = 5",如果"n mod i == 0",则"i ++",直到"n"小于或等于"i​​".

我认为输出必须是

n.mod(i) = 1 …
Run Code Online (Sandbox Code Playgroud)

java biginteger

0
推荐指数
1
解决办法
1701
查看次数

Java中这些等效的C数据类型是什么?

说我有很多数字.我知道在C中我们可以声明:

long long int // What is equivalent of this in Java?

long double   // and this?
Run Code Online (Sandbox Code Playgroud)

谢谢.

c java types bits biginteger

0
推荐指数
1
解决办法
592
查看次数

Rational类编写add和multiply方法

这是我上周发布的一个问题的延续,我仍然遇到了麻烦.我正在尝试编写一个Rational类,其中包含两个私有实例变量num和den,其数据类型为BigInteger.Rational构造函数将两个int作为其参数.

我的问题是每当我在Rational类中编写add或multiply方法时Eclipse都会给我一个错误.我不知道为什么它会给我一个错误.据我所知,运算符+, - ,*,/只能用于原始数据类型,因为我的私有实例变量是BigInteger,它们是非重复数据类型,任何加法或乘法都必须通过add或multiply方法完成.

下面的代码给了我一个错误,但我不知道为什么.我不明白代码的概念错误.在方法中使用this.num/this.den/r.num/r.den是错误的原因是什么概念,或者错误是否与语法相关的事情有关?add和multiply方法的错误是相同的,它表示"构造函数Rational(BigInteger,BigInteger)未定义".

public class Rational{


  public Rational(int x, int y) {
      num = BigInteger.valueOf(x);
      den = BigInteger.valueOf(y);
 }

  public Rational add(Rational r) {
     return new Rational(this.num.multiply(r.den).add(r.num.multiply(this.den)), this.den.multiply(r.den));
}

 public Rational multiply(Rational r) {
      return new Rational(this.num.multiply(r.num), this.den.multiply(r.den));
}


private BigInteger num;
private BigInteger den
}
Run Code Online (Sandbox Code Playgroud)

java biginteger

0
推荐指数
1
解决办法
440
查看次数

当我只有BigInteger时,如何使用ArrayList <Integer> #contains?

我从返回List of的数据库中提取数据值<Integer>.但是,我想看看List是否包含我的BigInteger.有一个简单的方法吗?

我目前在Java中有以下代码:

ArrayList<Integer> arr = new ArrayList<Integer>() {{add(new Integer(29415));}};

boolean contains = arr.contains(29415); // true
boolean contains2 = arr.contains(new BigInteger("29415")); // false
Run Code Online (Sandbox Code Playgroud)

我不确定有效的方法吗?

java types contains biginteger

0
推荐指数
1
解决办法
799
查看次数

如何将方程从long转换为Biginteger

所以我在做这个需要计算方程的问题.起初我认为long这个范围足够了,但现在它已超出long范围,现在我必须使用BigInteger.我必须转换一个等式但我无法做到

这是等式:

count =(n2/n3)-((n1-1)/n3);
Run Code Online (Sandbox Code Playgroud)

计数可long但是n1,n2,n3应该是BigInteger.

java biginteger

0
推荐指数
1
解决办法
545
查看次数

即使我使用bigint,Clojure中的StackOverFlow也是如此

我使用下面的代码来查找阶乘.

(defn factorial [x]
  (if (< x 2)
    1N
    (*' (factorial (- x 1)) x)))
Run Code Online (Sandbox Code Playgroud)

我正在使用bigint操作*',-'但即使在此之后,当我使用5500及以上版本调用它时,我遇到了stackoverflow错误.

StackOverflowError   clojure.lang.Numbers$LongOps.combine (Numbers.java:419)
user=> (factorial 5300)

StackOverflowError   clojure.lang.Numbers$LongOps.add (Numbers.java:455)
user=> (factorial 5300)
Run Code Online (Sandbox Code Playgroud)

我已经看过其他问题,但他们说使用这些操作应该给我正确的答案.那我在这里错过了什么?

我正在学习Clojure所以这是一个学习练习.

clojure biginteger

0
推荐指数
1
解决办法
170
查看次数