有人可以用 Perl 逐步解释这段代码吗:
$.=.5;
$\=2/$.++-$\for$...1e6;
print
最佳答案
添加空格:
$. = .5;
$\ = (2 / $.++) - $\ for $. .. 1e6;
用更合理的 var 名称替换:
$x = .5;
$pi = (2 / $x++) - $pi for $x .. 1e6;
不要将同一个变量用于两个目的:
$x = .5;
$pi = (2 / $x++) - $pi for 0 .. 1e6;
转换为公式:
pi = 2/1000000.5 - ( ... - (2/2.5 - (2/1.5 - (2/0.5))))
= 2/1000000.5 - ... + 2/2.5 - 2/1.5 + 2/0.5
= 4/2000001 - ... + 4/5 - 4/3 + 4/1
= 4/1 - 4/3 + 4/5 - ... + 4/2000001
这是listed在维基百科中作为 Gregory-Leibniz 系列。
print;
是 print($_);
,打印 $_
(未使用,所以 undef,字符串化为空字符串)后跟$\
(通常是一个空字符串,但在原始代码中用作累加器)。
关于perl - 用于 pi 计算的 Perl 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14667543/