当我试图找到2 23,000的BigInteger数据类型的值时,我无法看到该值.
但是,对于高达2 22,000的计算,我可以BigInteger毫无问题地显示该值.
这有什么解决方案或原因吗?
我正在构建一个类似于c的编译器,但我希望它解析大于2 ^ 32的整数.怎么可能?如何在python和ruby中实现大整数的语言.. !!
我已经挣扎了一段时间,但是我无法修复错误.
我在没有任何成功的情况下搜索了互联网,并开始徘徊,如果有可能我想完成的事情.
我希望创建一个包含大量节点的数组,这么大,我需要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'.存在显式转换(您是否错过了演员?)
问题:
更新
在示例中,我使用c ++作为计数器.这是可变的......
节点列表可能如下所示:
numberlist[2]
numberlist[3]
numberlist[200]
numberlist[20034759044900]
numberlist[23847982344986350]
Run Code Online (Sandbox Code Playgroud)
我将删除已处理的节点.最多我将使用1,5GB的内存.
请回复此更新,我想知道我的想法是否正确.
我也想从错误中吸取教训!
我必须实施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) 我是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) 说我有很多数字.我知道在C中我们可以声明:
long long int // What is equivalent of this in Java?
long double // and this?
Run Code Online (Sandbox Code Playgroud)
谢谢.
这是我上周发布的一个问题的延续,我仍然遇到了麻烦.我正在尝试编写一个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) 我从返回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)
我不确定有效的方法吗?
所以我在做这个需要计算方程的问题.起初我认为long这个范围足够了,但现在它已超出long范围,现在我必须使用BigInteger.我必须转换一个等式但我无法做到
这是等式:
count =(n2/n3)-((n1-1)/n3);
Run Code Online (Sandbox Code Playgroud)
计数可long但是n1,n2,n3应该是BigInteger.
我使用下面的代码来查找阶乘.
(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所以这是一个学习练习.
biginteger ×10
java ×6
c ×2
types ×2
bits ×1
c# ×1
clojure ×1
contains ×1
encryption ×1
linked-list ×1
math ×1
modulo ×1
security ×1