jjzjj

BigInteger

全部标签

Java比较整数和bigInteger

如何在Java中比较int和BigInteger?我特别需要知道int是否小于BigInteger。这是我正在使用的代码:privatestaticBigIntegertwo=newBigInteger("2");privatestaticBigIntegerthree=newBigInteger("3");privatestaticBigIntegerzero=newBigInteger("0");publicstaticBigIntegerbigIntSqRootCeil(BigIntegerx)throwsIllegalArgumentException{if(x.compare

java - 如何在创建实例后初始化 BigInteger(无法调用构造函数)

想象一个BigInteger的实例,那么创建实例后如何初始化呢?例如:BigIntegert=newBigInteger();如何在t中赋值?如果无法调用构造函数,那么可以做什么,将值放入对象中? 最佳答案 我不是100%确定具体是什么让您感到困惑,因为您会像初始化任何其他对象数组一样初始化BigInteger数组中的项目。例如,BigIntegert2[]=newBigInteger[2];t2[0]=newBigInteger("2");t2[1]=BigInteger.ZERO;//ZERO,ONE,andTENaredefi

java - Java 中高效的 BigInteger 乘法模 n

我可以计算两个BigInteger(例如a和b)模n的乘积。这可以通过以下方式完成:a.multiply(b).mod(n);但是,假设a和b是同阶的n,这意味着在计算过程中,一个新的BigInteger是正在计算,其长度(以字节为单位)为〜2n。我想知道是否有我可以使用的更高效的实现。类似modMultiply的东西像modPow一样实现(我相信它不计算功率然后计算模数)。 最佳答案 我只能想到a.mod(n).multiply(b.mod(n)).mod(n)而且您似乎已经意识到了这一点。BigInteger有一个toByteA

java - BigInteger 使用多少空间?

BigInteger对象通常使用多少字节的内存? 最佳答案 BigInteger在内部使用int[]来表示您使用的大数字。因此它确实取决于您存储在其中的数字的大小。如果当前数字不适合动态,则int[]将增长。要获取您的BigInteger实例当前使用的字节数,您可以使用Instrumentation接口(interface),尤其是getObjectSize(Object)。.importjava.lang.instrument.Instrumentation;publicclassObjectSizeFetcher{private

java - 如何使用 BigInteger 类在 Java 中生成一个随机的 n 位整数?

我不确定如何使用BigInteger类在Java中生成一个随机的n位整数。 最佳答案 privatestaticRandomrnd=newRandom();publicstaticStringgetRandomNumber(intdigCount){StringBuildersb=newStringBuilder(digCount);for(inti=0;i然后你就可以使用它了:newBigInteger(getRandomNumber(10000)) 关于java-如何使用BigInt

java - 在 Java 中如何将二进制数转换为 BigInteger?

我需要将一个非常大的二进制值转换成它的等效十进制值。因为它是一个大整数,所以我使用了BigInteger。那么如何将这个二进制数转换为BigInteger呢? 最佳答案 如果您有二进制数的String表示,请将其提供给这个重载的BigInteger构造函数以创建一个实例:BigInteger(Stringval,intradix);在你的例子中,radix显然是2,即你可以使用这样的东西:BigIntegeryourNumber=newBigInteger("101000101110...1010",2);

java - BigInteger 到 byte[]

我需要转换JavaBigInteger实例到它的值(以字节为单位)。从API中,我获得了此方法toByteArray(),它返回一个byte[],其中包含此BigInteger的二进制补码表示形式。因为我所有的数字都是正128位(16字节)整数,所以我不需要2的补码形式给我128位+符号位(129位)...有没有办法直接从BigInteger获取标准(没有2的补码形式)表示?如果不是,我如何右移整个byte[17]数组以丢失符号位以获得byte[16]数组? 最佳答案 你根本不需要移动。符号位是字节数组中最重要的(=最左边的)位。由

c# - 计算 BigInteger 的平方根 (System.Numerics.BigInteger)

.NET4.0为任意大的整数提供了System.Numerics.BigInteger类型。我需要计算BigInteger的平方根(或合理的近似值——例如整数平方根)。这样我就不必重新实现轮子,有人对此有很好的扩展方法吗? 最佳答案 CheckifBigIntegerisnotaperfectsquare具有计算JavaBigInteger的整数平方根的代码。这里翻译成C#,作为扩展方法。publicstaticBigIntegerSqrt(thisBigIntegern){if(n==0)return0;if(n>0){intbi

php - PHP 中有 BigInteger 类吗?

PHP中有BigInteger类吗?如果是,我该如何访问或使用它? 最佳答案 希望有帮助的链接:http://php.net/manual/en/ref.bc.phphttp://php.net/manual/en/ref.gmp.php编辑:Math_BigInteger示例来自http://phpseclib.sourceforge.net/documentation/math.html:实现了一个任意精度的整数算术库。使用gmp或bcmath(如果可用),否则使用内部实现。add($b);echo$c->toString();

java - 我应该使用什么数据结构来创建自己的 "BigInteger"类?

作为一项可选任务,我正在考虑编写自己的BigInteger类实现,我将在其中提供自己的加法、减法、乘法等方法。这将是任意长的整数,甚至是数百位数。虽然对这些数字进行数学运算,但逐个数字并不难,您认为最好的数据结构是代表我的“BigInteger”吗?起初我正在考虑使用数组,但后来我想在大的加法或乘法之后我仍然可能会溢出(数组插槽用完)。这是否是使用链表的好案例,因为我可以以O(1)的时间复杂度处理数字?还有比链表更适合的其他数据结构吗?我的数据结构所持有的类型应该是我可以使用的最小整数类型吗?另外,我应该注意如何存储“进位”变量吗?它本身应该是我的“BigInteger”类型吗?