jjzjj

BigInteger

全部标签

java - Java能否在循环中优化 "mutating"BigInteger操作?

我需要处理很多比长整数(>10^200)大得多的大数字,所以我使用了BigIntegers。我执行的最常见操作是将它们添加到累加器中,例如:BigIntegerA=newBigInteger("0");for(BigIntegern:nums){A=A.add(n);}当然,为破坏性行为制作副本是相当浪费的(好吧,只要有足够大的缓冲区可用),所以我想知道Java是否可以以某种方式优化它(我听说有一个MutableBigInteger类没有被数学公开.java)还是我应该只编写自己的BigInteger类。 最佳答案 是的,有一个ja

java - 使用公钥端点验证 JWT 签名

我想要验证来自Microsoft的一些JWT的签名。我正在使用Spring-Boot、JJWT库和以下端点:https://login.microsoftonline.com/common/discovery/v2.0/keys端点返回一个JSON公钥数组。这是数组中的一个示例。{"kty":"RSA","use":"sig","kid":"9FXDpbfMFT2SvQuXh846YTwEIBw","x5t":"9FXDpbfMFT2SvQuXh846YTwEIBw","n":"kvt1VmR4nwkNM8jMU0wmj2gSS8NznbOt2pZI6Z7HQT_esF7W19GZR7

java - 不使用 BigInteger 的 Karatsuba 算法

我一直在尝试在不使用BigInteger的情况下在Java中实现Karatsuba算法。我的代码仅适用于两个整数相同且位数相同的情况。我没有得到正确的答案,但是我得到的答案非常接近正确的答案。例如我在12*12时得到149。我无法弄清楚我的代码有什么问题,因为我相信我所做的一切都是正确的(按照书本)。这是我的代码。publicstaticvoidmain(String[]args){longans=karatsuba(12,12);System.out.println(ans);}privatestaticlongkaratsuba(longi,longj){if(i编辑:感谢Ziya

java - java.math.MutableBigInteger 的目的是什么?

java.math.MutableBigInteger只能从包内部获得。它继承自java.lang.Object,只有一个子类(SignedMutableBigInteger),只能在包内使用。 最佳答案 /***Aclassusedtorepresentmultiprecisionintegersthatmakesefficient*useofallocatedspacebyallowinganumbertooccupyonlypartof*anarraysothatthearraysdonothavetobereallocate

java - Java 中的 Diffie-Hellman key 交换

我正在使用Java开发一个个人项目,其中涉及通过不安全的channel发送敏感数据。我需要知道如何使用它的库在java中实现DiffieHellmankey交换(DHKE)。我知道所有关于它的密码学理论,所以不需要详细说明,我只需要一个非常基本的实现,这样我就可以让2个程序共享一个key。我从java2s.com得到了示例,但它并不完整:importjava.math.BigInteger;importjava.security.KeyFactory;importjava.security.KeyPair;importjava.security.KeyPairGenerator;imp

java - 在 Java 中获取一个数字的因子数量的最快方法是什么

我正在尝试用Java编写一个函数,该函数将返回特定数字所具有的因子数。应考虑以下限制。应该用BigInteger来完成不允许存储以前生成的数字,因此需要更多的处理和更少的内存。(您不能像this中那样使用“阿特金筛法”)负数可以忽略。这是我目前所拥有的,但它非常慢。publicstaticintgetNumberOfFactors(BigIntegernumber){//Ifthenumberis1intnumberOfFactors=1;if(number.compareTo(BigInteger.ONE) 最佳答案 我可以提出更

c++ - 具有字符数组实现的 BigInteger 的上限是多少?

如果我实现BigInteger对于字符数组(在C++中),根据10的幂,我在32位系统中的上限是多少?换句话说,-10^x(第一个字符保留为符号)。什么是x在32位系统中?请暂时忽略我们为操作系统保留的内存,并考虑所有4GB内存都是我们可寻址的。 最佳答案 一个8位字节可以容纳28,即256个唯一值。4GB内存为232,即4294967296字节。或4294967295,如果我们减去您要为符号保留的一个字节那是34359738360位。这么多位可以容纳234359738360个唯一值。-10^x(firstcharacterisre

c++ - 具有模数的boost多精度库不一致

我发现使用cpp_int的boost多精度库有些不一致,想知道问题是否出在我这边?我做错了什么吗?boost::multiprecision::cpp_intvalue("845812507058753702096720396260955981034309941487979439207575316627396775257009179367680598562088782400182102510047921049667535737841056751035898984440045398065941794853342721440022891483618946596390530332584847

c++ - 极大的整数乘法和加法

问候,我需要将存储在文本文件中的两个非常长的整数值相乘(通过GMP(准确地说是MPIR)导出,因此它们可以是任何基数中的任何一个)。现在,我通常只是通过mpz_inp_str()函数导入这些整数并在RAM中执行乘法,但是,这些值太长以至于我无法真正加载它们(每个大约1GB的数据)。最快的方法是什么?也许已经有一些外部库在做这种事情了?是否有任何易于实现的方法(性能并不是非常重要,因为此操作只会执行一次或两次)?tl;dr:我需要将值相乘得如此之大以至于不符合进程内存限制(Windows)。感谢您的宝贵时间。 最佳答案 我不知道是否有

c++ - 为什么 BigInt、BigNum 或任意精度算术没有出现在 STL 或 C++ 的标准库中?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。这有什么具体原因吗?这是设计决定吗?BignumberinC++与其他搜索结果一起显示为此编写的类。不知道以后的版本会不会包含这个功能。