我想知道BigInt和其他类似的东西是如何实现的.我试图查看JAVA源代码,但它对我来说都是希腊语和拉丁语.你能用语言向我解释算法 - 没有代码,这样我就能理解当我使用JAVA API时我实际使用的内容.问候
我正在尝试生成BigInteger类型的随机素数,即我提供的最小值和最大值之间.
我知道BigInteger.probablePrime(int bitlength,random),但我不确定比特长度是如何转换为输出素数的最大值/最小值.
谢谢,Steven1350
我在方法的头部有以下代码:
BigInteger foo = BigInteger.valueOf(0);
BigInteger triNum = BigInteger.valueOf(0);
//set min value to 1*2*3*4*5*...*199*200.
BigInteger min = BigInteger.ONE;
BigInteger temp = BigInteger.ZERO;
for(int i=1; i<=200; i++)
{
temp = BigInteger.valueOf(i);
min = min.multiply(temp);
}
System.out.println(min);
while(triNum.compareTo(min) <= 0)
{
foo.add(BigInteger.ONE);
triNum = triNum.add(foo);
System.out.println("triNum: "+triNum);
}
Run Code Online (Sandbox Code Playgroud)
这应该将min加载到一个值(1*2*3*...*199*200),然后将triNum设置为第一个*三角形数**,其值大于min.
问题是,当我运行该方法时,我得到的是一个终端窗口,其中"triNum:0"列表在屏幕上滚动...我的代码中没有看到任何内容(尽管我完全可以做到有些错误,我对math.BigInteger有些不熟悉,这似乎又指向了BigInteger类.有人看到我的代码中有错误吗?
.................................................. .................................................. ......................
*三角形数字是一个可以达到的数字:1 + 2 + 3 + 4 + 5 + 6 + 7 + ......