[ruby-list:22] [Q] using for bignum

From: Mitsuhide Satou <mit-sato@...>
Date: 1995-12-25 03:58:58 UTC
List: ruby-list #22
佐藤@SCCです。
先週から ruby で遊んでいます。

bignum が使えるということで、python のサンプルスクリプトを拝借してきて、
次のような π を計算するプログラムを実行してみました。

---<ここから>
#!/usr/local/bin/ruby

k, a, b, a1, b1 = 2, 4, 1, 12, 4

while TRUE
	# Next approximation
	p, q, k = k*k, 2*k+1, k+1
	a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
	# Print common digits
	d = a/b
	d1 = a1/b1
	while d == d1
		print d
		$stdout.flush
		a, a1 = 10*(a%b), 10*(a1%b1)
		d, d1 = a/b, a1/b1
	end
end
---<ここまで>

これを実行すると、

31415-12864463178561522265759409918676350016791618038120807140350386357940
78278425060132406947069569802166931807775479975289447988619104222823223079
35917503128586399290536582568534039555689276083649527462723647079220503118
1172329662597107071967926297...

のように、明らかにおかしな答になってしまいます。
私自身が上記のアルゴリズムを理解していないのと、python, ruby ともに
初心者であるため、なにがおかしいのか判らずにおります。

原因等解りましたらアドバイスを頂けますでしょうか。
宜しくお願い致します。

# 想像していたよりも実行速度が速いですね。

--
佐藤 三秀 (E-Mail: mit-sato@aries.bekkoame.or.jp)

In This Thread

Prev Next