用于确定循环中迭代次数的公式,带有除法增量。不使用计数器变量
Formula for determining number of iterations in a loop, with division increment. Without using counter variable
此问题中所述的公式适用于添加或减去 i 的 for 循环。我的问题是如何更改此公式以给出 for 循环中的迭代次数,其中 i 除以或乘以一个值。
@WJS
for(int i = M; i < N; i*=k)
...
临界点是当我们已经经历了这个循环s次,使得i = M ks = N。两边取对数:
log(M) + s log(k) = log(N)
s = (log(N)-log(M))/log(k)
对 <=
使用下限函数,对 <
使用上限函数(减一)(这是 WJS 在链接问题中所做的)。我不知道 Java,所以我不会尝试编写 Java 代码。
(如果你将一个整数计数器乘以一个 floating-point 因子或类似的东西,可能会有问题,但我不会为这种愚蠢行为承担责任。)
此问题中所述的公式适用于添加或减去 i 的 for 循环。我的问题是如何更改此公式以给出 for 循环中的迭代次数,其中 i 除以或乘以一个值。
@WJS
for(int i = M; i < N; i*=k)
...
临界点是当我们已经经历了这个循环s次,使得i = M ks = N。两边取对数:
log(M) + s log(k) = log(N)
s = (log(N)-log(M))/log(k)
对 <=
使用下限函数,对 <
使用上限函数(减一)(这是 WJS 在链接问题中所做的)。我不知道 Java,所以我不会尝试编写 Java 代码。
(如果你将一个整数计数器乘以一个 floating-point 因子或类似的东西,可能会有问题,但我不会为这种愚蠢行为承担责任。)