jjzjj

BigInteger

全部标签

java - 如何将字符串转换为 BigInteger?

我正在尝试从标准输入中读取一些非常大的数字并将它们相加。但是,要添加到BigInteger,我需要使用BigInteger.valueOf(long);:privateBigIntegersum=BigInteger.valueOf(0);privatevoidsum(StringnewNumber){//BigIntegerisimmutable,reassignthevariable:sum=sum.add(BigInteger.valueOf(Long.parseLong(newNumber)));}这很好,但由于BigInteger.valueOf()只需要long,我无法添加

Java 可变 BigInteger 类

我正在使用BigIntegers进行计算,它使用一个调用multiply()大约1000亿次的循环,而从BigInteger创建的新对象使它变得非常慢。我希望有人已经编写或找到了一个MutableBigInteger类。我在java.math包中找到了MutableBigInteger,但它是私有(private)的,当我将代码复制到一个新类中时,出现了很多错误,其中大部分我都不知道如何修复。像MutableBigInteger这样允许就地修改值的Java类有哪些实现? 最佳答案 他们是否有任何特殊原因使您不能使用反射来访问该类?我

c# - BigInteger 到十六进制

快速提问...我有一个非常长的BigInteger,我想将其作为十六进制字符串写入文件。我知道Java提供了执行此操作的.toString(16)方法,但我找不到C#中的等效方法。我正在使用.NET4.0中的System.Numerics.BigInteger。谢谢 最佳答案 使用.ToString("X")或.ToString("x")取决于您喜欢哪种情况。 关于c#-BigInteger到十六进制,我们在StackOverflow上找到一个类似的问题: h

java - BigInteger.probablePrime() 与java中其他素数算法的区别

我正在使用Java实现RSA加密程序。现在我正在使用BigInteger.probablePrime(1024,rnd)获取素数。这里的rnd是由Randomrnd=newRandom()生成的随机数。我需要测试各种加密速度。我的问题是:BigInteger.probablePrime(1024,rnd)使用什么算法?上述算法与其他算法(如Rabin-Miller、Fermats、Lucas-Lehmer)有何区别?谢谢。 最佳答案 BigInteger的可能素数方法同时使用Miller-Rabin和Lucas-Lehmer算法来测

php - 为什么 PEAR Math_BigInteger(48) => 0? (案例 : MATH_BIGINTEGER_MODE => default)

我使用了PEAR/Math/BigInteger.phpPHP5.2.5(客户端)Ubuntu但是$a=newMath_BigInteger(48);echo$a->toString()//'0'为什么?是bug吗?它特定于MATH_BIGINTEGER_MODE=>default3528function_int2bytes($x)pack('N',48)=>0我们需要if('48'===(string)$x){$this->value=array('48');return;} 最佳答案 它适用于i686系统:$php-r'requ

android - BigInteger q = new BigInteger(8, 10, new Random());未在 Android 中产生预期结果

BigIntegerq=newBigInteger(8,10,newRandom());每次从我的桌面运行但不是在Android中时,都会按预期给我随机数。在Android中,我总是只得到相同的输出而不是随机数。请帮助我获取随机BigIntegr。供您引用:intrandQ=(int)(Math.random()*9);for(intr=0;r是我所做的快速修复,我对此修复不满意,因为它会消耗额外的时间。非常感谢您的建议 最佳答案 这是一个非常普遍的问题,与语言或平台无关。每次都必须重用Random()的实例来获取随机数。默认构造函

php - 在 Laravel 5.4 中将外键 bigInteger 设置为 bigIncrements

所以我试图在我的laravel迁移文件中设置一个外键,这样用户表很简单,但我正在尝试使用bigIncrements而不是这样的标准增量。publicfunctionup(){Schema::create('users',function(Blueprint$table){$table->engine='InnoDB';$table->bigIncrements('id')->unsigned();$table->string('user_id')->unique();$table->string('avatar');$table->string('name');$table->stri

java - BigInteger 还是不是 BigInteger?

在Java中,大多数基本类型都是有符号的(一位用于表示+/-),因此当我超出类型的限制时,我会得到意想不到的结果,比如负数。有没有比使用BigInteger更好的解决方案,因为BigInteger存在性能问题,您需要使用类方法进行基本算术而不是语言运算符(破坏可读性)? 最佳答案 不,没有更好的解决方案。如果您使用的值无法放入long或double中,那么您将需要使用像BigInteger这样的引用类型,并且Java不支持运算符重载。从技术上讲,我想您可以在有符号值和无符号值之间建立一些映射,但如果您的目标是干净简单的代码,那么这根

java - BigInteger 会溢出吗?

API文档说AllofthedetailsintheSpecconcerningoverflowareignored,asBigIntegersaremadeaslargeasnecessarytoaccommodatetheresultsofanoperation.这是否意味着假设您有足够的可用内存,BigInteger永远不会溢出?如果是这样,为什么我们让一些“类型”溢出而另一些不溢出?随着语言的发展,它会偏爱对程序员overflowhidden机制的类型吗? 最佳答案 BigInteger永远不会溢出,前提是您有足够的内存来处

java - 可能以线程安全的方式安全地增加 BigInteger,也许使用 AtomicReference,w/o 锁定?

我们的很多代码都是遗留的,但我们正在转向“大数据”后端,我正在努力传播更新的API调用,鼓励使用最新的Spring库等。我们的问题之一是应用层ID生成。出于我不明白的原因,更高的权威想要连续的BigInteger。我本来可以通过重新生成并重新尝试失败的插入来随机生成它们,但我确实被否决了。撇开提示不谈,我现在需要递增并获得跨线程的BigInteger,并以安全和高效的方式进行。我以前从未使用过AtomicReference,但它看起来非常适合此应用程序。现在我们有一个同步代码块,它严重损害了我们的性能。这是正确的方法吗?语法示例?我应该提到这个模块的工作方式,它使用存储过程访问数据库以