my $pi = 4*atan2(1,1);
my $x = $pi;
my $h1 = 0; my $h0 = 1;
my $k1 = 1; my $k0 = 0;
for (1 .. 5) {
my $c = int($x);
for my $d (($c+1)/2 .. $c) {
my ($h, $k) = ($d * $h0 + $h1, $d * $k0 + $k1);
my $val = $h / $k;
my $err = $val - $pi;
print "$h / $k = $val ($err)\n";
}
($h0, $h1) = ($c * $h0 + $h1, $h0);
($k0, $k1) = ($c * $k0 + $k1, $k0);
$x -= $c or last;
$x = 1 / $x;
}
__END__
2 / 1 = 2 (-1.14159265358979)
3 / 1 = 3 (-0.141592653589793)
13 / 4 = 3.25 (0.108407346410207)
16 / 5 = 3.2 (0.0584073464102071)
19 / 6 = 3.16666666666667 (0.0250740130768734)
22 / 7 = 3.14285714285714 (0.00126448926734968)
179 / 57 = 3.14035087719298 (-0.00124177639681067)
201 / 64 = 3.140625 (-0.000967653589793116)
223 / 71 = 3.14084507042254 (-0.000747583167258092)
245 / 78 = 3.14102564102564 (-0.000567012564152147)
267 / 85 = 3.14117647058824 (-0.000416183001557879)
289 / 92 = 3.14130434782609 (-0.000288305763706198)
311 / 99 = 3.14141414141414 (-0.000178512175651679)
333 / 106 = 3.14150943396226 (-8.32196275291075e-05)
355 / 113 = 3.14159292035398 (2.66764189404967e-07)
52163 / 16604 = 3.14159238737654 (-2.66213257216208e-07)
52518 / 16717 = 3.14159239097924 (-2.62610550638698e-07)
...
|