Java while循环变量跳转为初始值
对于以下简单的Java while循环变量跳转为初始值,java,eclipse,math,while-loop,Java,Eclipse,Math,While Loop,对于以下简单的while循环,每5次运行一次,我会得到一个x的错误值列表,就像值突然跳转一样: package test; public class test_old { public static void main(String [] args) { double r0 = 0.1; double r = 10; double k = 0.05; double x = 0; double Tt = 0; double T = 0;
while
循环,每5次运行一次,我会得到一个x的错误值列表,就像值突然跳转一样:
package test;
public class test_old {
public static void main(String [] args) {
double r0 = 0.1;
double r = 10;
double k = 0.05;
double x = 0;
double Tt = 0;
double T = 0;
while (Tt<=30) {
double xi = Math.random();
T = Math.log(1/xi)/(k*x + r0 + r);
Tt = Tt + T;
x = x + 1;
System.out.println(x);
}
}
}
封装测试;
公开课考试{
公共静态void main(字符串[]args){
双r0=0.1;
双r=10;
双k=0.05;
双x=0;
双Tt=0;
双T=0;
虽然(TtMath.random()给出的值为0.0,你能解释一下吗?对我来说,它总是以700左右结束…可能是double xi=Math.random();与之相关。在每个循环结束时打印出你得到的xi和Tt值,也许你会发现你的问题。这对我来说是不可复制的。我得到了大约730次迭代。不可复制…我也得到了730次迭代…有趣的是,我与xi=0.99999有相同的行为;谢谢你的帖子,非常有用。
v=0.99999999, log(1/v)=0.00000000001...
double xi = Math.random();
double xi = 0.999999999999;