rational.rbとcomplex.rbを補助する関数群。
本来 Floatととは異なり, Ratinalは誤差がないので,
1/2 -> 1/2 (Rational) 2 * Rational(1,2) -> 1 (Fixnum)
となってほしいこともあるかと思います. つまり, rubyのBignumとFixnumの様 な関係ですね. rubyではこれらの型変換は勝手に行なっています.
mathn.rbをインクルードするとこの様な動作を行ないます. つまり, Ratinal とComplexをBignumとFixnumと同等な関係にします.
Integer.from_prime_division(pd)
素因数分解の配列pdから数を求める。
pdは[素因数, 指数]
組の配列である。
例: Integer.from_prime_division [[2,3],[3,2]] -> 72 # == 2**3 * 3**2
Integer#gcd2(int)
selfとintの最大公約数を求める。
例: 12.gcd2 8 -> 4
Integer#prime_division
selfの素因数分解(の配列)を求める。
例: 72.prime_division -> [[2, 3], [3, 2]]
Prime.new
素数を生成するクラスを作る。
Prime#succ
次の素数を返す。
例: pp = Prime.new pp.succ # => 2 pp.succ # => 3 pp.succ # => 5
Prime#each
素数について繰り返し。 これは無限ループになるので必ずbreakを入れること。
例: > pp=Prime.new; i = 0; pp.each {|x| break if i > 5; puts x; i+=1;} 2 3 5 7 11 13
Rational#**
べき乗。 RationalになるようであればRationalで返す。
Rational#power2
作りかけ(^^;;
Math.sqrt(a)
Math.rsqrt(a)
*1参考:ruby-list:1174[外部]
*2後に解析