[ruby-list:50258] 有理数型Rationalクラスで扱える限界値は?

From: Yoshiizumi <yoshi@...>
Date: 2015-11-24 12:49:07 UTC
List: ruby-list #50258
 よしいずみといいます。

 rubyの有理数型を扱う Rational クラスと、複素数 Complex クラスと2項定
理に関連して教えていただければと思ってメールしました。

 数学関連で2項定理を扱うためのクラス Binomer をつくってみました。
 有理数まで対応させました。複素数には対応していません。
 関係サイト: http://cup.sakura.ne.jp/math/binomer.htm

 Binomerクラスを使うと、たとえば、アークサインの級数展開を用いて円周率
を算出するプログラムを下のように書けます。

require "binomer"
arcsin = Binomer.new(-Rational(1,2), 50, -2).integral  # 50項まで展開
puts arcsin.calc(0.5) * 6.0  # => 3.141592653589794
puts arcsin.cx.last  # 最後の「項」を出力
  # => 12611418068195524166851562157/16004088827881396193895877967872x^1
01

 教えていただきたいのは、Rationalクラスの分子と分母が巨大な数になっても
動作していることは分かりますが、どのくらいまで大きな数を扱えるかというこ
とです。
 その限界値を知る方法というのはあるのでしょうか。あるいは、限界値という
のは特にないのでしょうか。
 限界値があるなら、それを超えた時に警告メッセージを出すようにしたいと思
っています。
 ちなみに、私が使っている ruby のバージョンは下記です。
      ruby 2.1.6p336 (2015-04-13 revision 50298) [i386-mingw32]

 もう一つは、rubyで、複素数まで拡張した2項定理用のクラスが既にあるかど
うかということです。
 私がインターネット検索したところでは見つけられなかったのですが、「既に
あるよ」という情報をお持ちの型がいましたら、おしえていただければありがた
いです。
 よろしくお願いします。

In This Thread

Prev Next