Rubyとは、
簡単に言えば、純粋なオブジェクト指向のスクリプト言語の名前です。つまり、C++みたいにコンパイラではなくて、いわゆるインタープリタなわけです。
Rubyは他の多くの言語と違い、日本人がつくりました。UNIX上で開発されましたが、今では、MS
Windows等のプラットフォーム用もあります。詳しくはご本家のRuby
のWeb Pageをご覧下さい。
私は数学の教師ですが、授業でたとえば平方根や円周率の近似値を扱う時に、画面に多くの桁を表示させたいとよく思って
ました。そういう場合は、これまではU−Basic等を利用していました。U−Basicはもちろん非常に優れた言語ではありますが、Rubyは言うまで
もなく構造化言語であるという点、また、上記のようにオブジェクト指向であるという点、単純で非常に馴染みやすい文法等、今後の事を考えるといろんな面で
利用価値が高いと思います。また、なによりもうれしいのは、U−Basicもそうではありますが、フリーソフトウェアであるという点です。インタープリ
ターでもあるし、プログラミング初心者にとっても、最適の入門用言語にもなり得ます。
また、Window(XWindowやMS-Windows)を使う場合は、幸いTkというツール(Tcl/tkの
Tk)がありますので、これを利用できます(Ruby/Tk)。最近はRuby/Tkを扱うページも随分増えましたので、助かります。このページでもいく
らかサンプルを紹介したいと思います。(他のページにあるものを少し変えただけですが)
■ 円周率の計算
以下は、Rubyのパッケージのsampleに入っていた円周率の計算です。
------------------------------------------------------------
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
------------------------------------------------------------
たった、これだけのプログラムで、
3141592653589793238462643383279502884197169399375105820974944
5923078164062862089986280348253421170679821480865132823066470
9384460955058223172535940812848111745028410270193852110555964
4622948954930381964428810975665933446128475648233786783165271
2019091456485669234603486104543266482133936072602491412737245
8700660631558817488152092096282925409171536436789259036001133
0530548820466521384146951941511609433057270365759591953092186
1173819326117931051185480744623799627495673518857527248912279
3818301194912983367336244065664308602139494639522473719070217
・・・・・・・・
このように、永遠に計算を続けてくれます。
(参考)---------------------------------------------------------
単に
print 4*Math..atan2(1,1), "\n"
とすれば、
3.141592654
と表示してくれます。 (※ "\n" は改行の意味)
ちなみに atan2(x,y) というのは Ruby で arctan(x/y) を求める事です。
π/4=arctan(1)=1−1/3+1/5ー1/7・・・
なんてなるんですねえ。これは、ちょっと微積の知識と二項定理の知識があれば
なんとか分かると思います。これを使ってるわけです。
また、Ruby に組み込まれている PI という定数を使って、
include Math
print PI,"\n"
でも同じ結果になります。これが一番簡単ですね。(^^)
ところで、円周率の詳しい研究は東大の金田研
究室とか、九
州工業大学とかπのページを
見て下さい。 (お詫び..勝手にリンクしてます)
--------------------------------------------------------------------
■ Ruby/Tk の サンプル ※UNIX系 の場合は、最初に #! usr/local/bin/ruby 等(Rubyのある場所の指定)の行を追加して下さい。
いきなり、Ruby/Tk というのも変なのですが、Line、円、サイクロイド等のデモをご覧下さい。
(Tkを用いるので、環境変数を設定する必要があります。詳しくはここ(Rubyの指
環)を見て下さい)