Java 未获得自然对数公式的正确输出

Java 未获得自然对数公式的正确输出,java,probability,Java,Probability,我试图让我的程序计算出这个公式的前500个值:-12*ln(1-x),其中x是double next()的返回值。我不知道我做错了什么,因为我不能得到正确的输出。随机数使用以下公式x(i+1)=(a*x(i)+c)mod k 公共类myRnd{ //x(i+1)=(a*x(i)+c)%k的线性值 最终静态积分a=7893; 最终静态积分c=3517; 最终静态积分k=8192; //返回的当前值 int x; int-y; intz; 公共myRnd(){ //构造函数只是将值设置为k的一半 x

我试图让我的程序计算出这个公式的前500个值:-12*ln(1-x),其中x是double next()的返回值。我不知道我做错了什么,因为我不能得到正确的输出。随机数使用以下公式x(i+1)=(a*x(i)+c)mod k

公共类myRnd{
//x(i+1)=(a*x(i)+c)%k的线性值
最终静态积分a=7893;
最终静态积分c=3517;
最终静态积分k=8192;
//返回的当前值
int x;
int-y;
intz;
公共myRnd(){
//构造函数只是将值设置为k的一半
x=(125*k)/1024;
//y=(125*k)/1024;
}
下一步加倍{
//按顺序计算下一个值
x=(a*x+c)%k;
//返回其0到1的值
返回(双)x/k;
}
公共静态void main(字符串[]args){
国际形势;
双sec_回答;
//创建一个新的myRnd实例
myRnd r=新的myRnd();
//从中输出53个随机数
对于(int i=0;i<53;i++){
System.out.println(r.next());
}
System.out.println(“随机变量”);
对于(int b=0;b<500;b++){
sec_answer=(-12)*数学日志(1-r.next());
系统输出打印LN(第二节答案);
}
}
}

我想这是每个循环中程序的前5个值

0.9302978515625
0.270263671875
0.6204833984375
0.90478515625
0.8985595703125

random variable
31.962289651479345
3.78086405322487
11.626283246646423
28.21943313114782
27.45940262908609
main
方法中,该类只有一个实例:

// Create a new myRnd instance
myRnd r = new myRnd();
此初始化将传播到两个
for
循环


简单的解决方案:为第二个
for
循环添加另一个
myRnd
实例/初始化,例如,您可以重用与
r=new myRnd()相同的变量在第二个循环之前。

您希望输出的前5个值是什么?
// Create a new myRnd instance
myRnd r = new myRnd();