浮点 运行 总和不移动
floating-point running sum doesn't move
好的,坏的和丑陋的
为什么 round(cargof)
停留在 2
?
uses crt;
type
trail_type = (blue ,desert ,white);
fruit_class = (none ,apple ,pineapple);
type
ontherun = Record
trail : trail_type;
cargo : Integer;
miles : Integer;
end;
Var
b : File of ontherun;
rec : ontherun;
rec_b : array[1..3] of ontherun;
k , cargo , load , xload , miles , run : Integer;
cargof : Double;
fruit : fruit_class;
begin
cargof := 0;
Repeat
cargof := 0.04*cargof + 2.0;
Writeln(round(cargof));
Until cargof > 223;
writeln('hi');
end.
如果您输出 cargof 的中间计算(舍入前),该值似乎收敛于 2.08333333333333。
我猜想的一种方式是每次添加 4%,但它是每个结果之间差异的 4%,而不是总数的复合 4%。
实际上,这与FreePascal 没有任何关系。而不是帕斯卡。而不是浮点数。而不是计算机编程。连电脑都没有。
这是纯数学。
我们有递归关系 a(0) = 0, a(n + 1) = (1/25) a(n) + 2.
与ansatz a(n) = α + β k^n 我们发现 a(n + 1) = α + β k^(n + 1) = α + β k k^n = α + k(a(n) − α) = α − k α + k a(n)因为 a(n) − α = β k^n.对于 n[ 的所有非负值,这应该等于 2 + (1/25) a(n) =66=],这意味着 k = 1/25 和 α − k α = 2 这意味着 α = 25/12。最后,a(0) = 0 产生 β = −25/12.
因此,a(n) = (25/12) (1 − 1/25^n ) 对于所有非负 n.
很容易验证这确实是一个解决方案并且 a(n) → 25/12 as n→∞;具体来说,a(n) 单调增长到这个极限。
现在,25/12 = 2.08333333333....所以四舍五入到最接近的整数值永远不会超过 2。
好的,坏的和丑陋的
为什么 round(cargof)
停留在 2
?
uses crt;
type
trail_type = (blue ,desert ,white);
fruit_class = (none ,apple ,pineapple);
type
ontherun = Record
trail : trail_type;
cargo : Integer;
miles : Integer;
end;
Var
b : File of ontherun;
rec : ontherun;
rec_b : array[1..3] of ontherun;
k , cargo , load , xload , miles , run : Integer;
cargof : Double;
fruit : fruit_class;
begin
cargof := 0;
Repeat
cargof := 0.04*cargof + 2.0;
Writeln(round(cargof));
Until cargof > 223;
writeln('hi');
end.
如果您输出 cargof 的中间计算(舍入前),该值似乎收敛于 2.08333333333333。
我猜想的一种方式是每次添加 4%,但它是每个结果之间差异的 4%,而不是总数的复合 4%。
实际上,这与FreePascal 没有任何关系。而不是帕斯卡。而不是浮点数。而不是计算机编程。连电脑都没有。
这是纯数学。
我们有递归关系 a(0) = 0, a(n + 1) = (1/25) a(n) + 2.
与ansatz a(n) = α + β k^n 我们发现 a(n + 1) = α + β k^(n + 1) = α + β k k^n = α + k(a(n) − α) = α − k α + k a(n)因为 a(n) − α = β k^n.对于 n[ 的所有非负值,这应该等于 2 + (1/25) a(n) =66=],这意味着 k = 1/25 和 α − k α = 2 这意味着 α = 25/12。最后,a(0) = 0 产生 β = −25/12.
因此,a(n) = (25/12) (1 − 1/25^n ) 对于所有非负 n.
很容易验证这确实是一个解决方案并且 a(n) → 25/12 as n→∞;具体来说,a(n) 单调增长到这个极限。
现在,25/12 = 2.08333333333....所以四舍五入到最接近的整数值永远不会超过 2。