Tag: biginteger

Hibernate返回BigIntegers而不是long

这是我的发件人实体 @Entity public class Sender { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long senderId; … … public long getSenderId() { return senderId; } public void setSenderId(long senderId) { this.senderId = senderId; } } 当我尝试执行以下查询时: StringBuilder query = new StringBuilder(); query.append(“Select sender.* “); query.append(“From sender “); query.append(“INNER JOIN coupledsender_subscriber “); query.append(“ON coupledsender_subscriber.Sender_senderId = sender.SenderId “); query.append(“WHERE coupledsender_subscriber.Subscriber_subscriberId […]

如何在Java中创建随机BigDecimal?

这个问题: 如何生成随机BigInteger描述了一种实现与BigIntegers的Random.nextInt(int n)相同语义的方法。 我想对BigDecimal和Random.nextDouble()做同样的事情。 上述问题的一个答案建议创建一个随机的BigInteger,然后用随机比例从中创建一个BigDouble。 一个非常快速的实验表明这是一个非常糟糕的主意:) 我的直觉是使用这种方法需要通过像n-log10(R)类的东西来缩放整数,其中n是输出中所需精度的位数,R是随机BigInteger。 这应该允许存在正确的位数,以便(例如)1 – > 10 ^ -64和10 ^ 64 – > 1。 还需要正确选择缩放值,使结果落在[0,1]范围内。 有没有人以前做过这个,他们知道结果是否正确分布? 有没有更好的方法来实现这一目标? 编辑:感谢@biziclop纠正我对scale参数的理解。 以上不是必需的,恒定的比例因子具有期望的效果。 为了以后的参考,我(显然是工作代码)是: private static BigDecimal newRandomBigDecimal(Random r, int precision) { BigInteger n = BigInteger.TEN.pow(precision); return new BigDecimal(newRandomBigInteger(n, r), precision); } private static BigInteger newRandomBigInteger(BigInteger n, Random rnd) { BigInteger r; do { r […]

如何比较BigInteger的值作为循环中的条件?

我试图比较一个BigInteger(base)的值是否>另一个BigInteger(prime)的值,以及’a’的值是否不等于1。 如果a的值不是1,它应该突破循环。 我该如何比较它们? Random ran = new Random(); BigInteger prime = new BigInteger(16,ran); BigInteger base,a,one; one = new BigInteger(“1”); for (int i = 0; i prime){ base = new BigInteger(16,ran); } a = base.modPow(prime.subtract(one),prime); System.out.println(“a: “+a); if (a != one){ break; } }

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

我需要将一个非常大的二进制值转换为十进制等值。 因为它是一个大整数我使用BigInteger。 那么如何将这个二进制数转换为BigInteger呢?

Java 7的BigInteger操作有多复杂?

目前BigInteger中的方法有多大的复杂性, divide和pow ? 没有提到文档中的计算复杂性(也没有提到其他任何地方)。

为什么Haskell可以轻松处理非常大的数字?

Hugs> 94535^445 为什么Haskell可以计算如此大的数字,而其他语言(如Java)不能(如此容易)?

java.math.BigInteger无法强制转换为java.lang.Long

我有List dynamics 。 我希望使用Collections获得最大结果。 这是我的代码: List dynamics=spyPathService.getDynamics(); Long max=((Long)Collections.max(dynamics)).longValue(); 这是我的getDynamics : public List getDynamics() { Session session = null; session = this.sessionFactory.getCurrentSession(); Query query = session .createSQLQuery(“SELECT COUNT(*) FROM SpyPath WHERE DATE(time)>=DATE_SUB(CURDATE(),INTERVAL 6 DAY) GROUP BY DATE(time) ORDER BY time;”); List result = query.list(); return result; } 现在我得到java.math.BigInteger cannot be cast to java.lang.Long 。 怎么了?

检查BigInteger是不是一个完美的正方形

我有一个BigInteger值,假设它是282并且在变量x内。 我现在想写一个while循环,声明: while b2 isn’t a perfect square: a ← a + 1 b2 ← a*a – N endwhile 我如何使用BigInteger做这样的事情? 编辑:这样做的目的是我可以写这个方法 。 正如文章所述,必须检查b2是否不是正方形。

如何在java中将BigInteger转换为String

我将String转换为BigInteger如下: Scanner sc=new Scanner(System.in); System.out.println(“enter the message”); String msg=sc.next(); byte[] bytemsg=msg.getBytes(); BigInteger m=new BigInteger(bytemsg); 现在我想要我的字符串。 我正在使用m.toString()但这给了我想要的结果。 为什么? 错误在哪里,我该怎么办呢?

Java BigInteger与Mono .net BigInteger

我在.Net项目中使用BigInteger的单声道实现( 链接 )在Java中我使用java.math.BigInteger。 相同的代码在Java中产生不同的结果。 .Net代码 String inputBytes = “8E5BD77F0DCC30864634C134E28BFB42A149675A320786B616F4530708350D270353C30A40450325801B7AFED12BCCA274B8187072A89CC0CC3F95A24A8251243C1835898246F4D64CA3AC61DB841518F0E8FBC8996A40EB626153AE7F0BB87FD713FAC522719431428DE178E780A3FA45788A72C431926AED990E6DA268D2CC”; String modulus = “00e6b4b4511e0bd1b3d9c82ee189ba6d0c70b1466d94126f99a741af99a92701a789451742a357ddb61a4dea409965ec58dcaa5e30826de871b04700ed0fd46b1693446049734e8f95faba2bf9301347e63ba1771650e71982adef0cca6890b6f7baa7f5421a6533652f4b70c3c4270c480cf54cc06635f22901a42716d1dadf4f”; String exp = “010001”; BigInteger mModulus = new BigInteger(hexStringToByteArray(modulus)); BigInteger mExponent = new BigInteger(hexStringToByteArray(exp)); BigInteger input = new BigInteger(hexStringToByteArray(inputBytes)); BigInteger output = input.ModPow(mExponent, mModulus); Console.WriteLine(“==RESULT==” + byteArray2Hex(output.GetBytes())); public static byte[] hexStringToByteArray(string hexString) { if (hexString.Length % 2 != 0) throw new ArgumentException(String.Format(CultureInfo.InvariantCulture, […]