我有一些伪代码要分析:
public static void test(float z) {
float y = 0;
for (float i = 1; i <= z; i++) {
if (y < z) {
y = 4 * i * i + 6;
}
}
return y;
}
从函数中,我理解y = 4i^2 + 6
每当y < z
。然而,我在捕捉方程中y和z之间的关系时遇到了困难。我觉得它可以被捕获为一个底函数(阶跃函数(——对于z中的某个数字范围,y将具有指定的值。
对于第一个i
,y
变得大于z
(并停止更改(,使得2*i^2 + 3 > z
。换句话说,最小i > sqrt((z - 3) / 2)
,即floor(sqrt((z - 3)/2)) + 1
。现在,正如您所知道的i
,计算y
。