Java 我的程序不运行会运行多少次

Java 我的程序不运行会运行多少次,java,math,logging,Java,Math,Logging,我正在尝试编写一个程序,它使用模拟退火的一种形式,尽管这并不太重要 基本上,我有以下变量: double temperature = 100000; double coolingrate = 0.99; double delta = 0.001; 我想知道如何使用Math.log()计算我需要运行temperature=temperature*coolingrate-而不实际运行的次数,直到temperature好吧,因为您试图找到最小的n,其中: 然后,您可以导出: 转换为自然对数(由

我正在尝试编写一个程序,它使用模拟退火的一种形式,尽管这并不太重要

基本上,我有以下变量:

double temperature = 100000;
double coolingrate = 0.99;
double delta = 0.001;

我想知道如何使用Math.log()计算我需要运行
temperature=temperature*coolingrate
-而不实际运行的次数,直到
temperature好吧,因为您试图找到最小的
n
,其中:

然后,您可以导出:

转换为自然对数(由
Math.log()
使用):

这将产生以下代码(四舍五入,因为迭代次数必须是整数):


对于指定的值,这将产生
1833

的结果,因为您正试图找到最小的
n
,其中:

然后,您可以导出:

转换为自然对数(由
Math.log()
使用):

这将产生以下代码(四舍五入,因为迭代次数必须是整数):


对于您指定的值,这将产生
1833

double x=temperature*coolingrate
的结果,它将始终返回相同的
99000.0
值,并且永远不会接近
delta
。哦,我搞砸了,我会编辑1秒这实际上是一个数学问题,不是编程问题。
double x=temperature*coolingrate
将始终返回相同的
99000.0
值,并且永远不会接近
delta
。哦,我搞砸了,我会编辑一秒钟。这实际上是一个数学问题,不是编程问题。效果非常好。谢谢工作完美。谢谢
double n = Math.ceil(Math.log(delta / temperature) / Math.log(coolingrate))