Rational
ラショナル(標準ライブラリ)
意味 有理数を扱うためのクラス
Rationalとは?
Rationalクラスは、Rubyの標準ライブラリに含まれる有理数(分数)を表現し操作するためのクラスです。分子と分母を別々に保持し、精度を損なわずに計算を行うことができます。
Rationalの具体的な使い方
有理数の基本操作と浮動小数点数との比較
# 有理数の作成
a = Rational(1, 2) # 1/2
b = Rational(2, 3) # 2/3
# 基本的な演算
sum = a + b
diff = a - b
prod = a * b
quot = a / b
puts "a = #{a}"
puts "b = #{b}"
puts "和: #{sum}"
puts "差: #{diff}"
puts "積: #{prod}"
puts "商: #{quot}"
# 浮動小数点数との比較
float_sum = 0.5 + 2.0/3
rational_sum = Rational(1, 2) + Rational(2, 3)
puts "\n浮動小数点数の和: #{float_sum}"
puts "有理数の和: #{rational_sum}"
puts "有理数の和(小数表示): #{rational_sum.to_f}"
# 等価性の確認
puts "浮動小数点数と有理数は等しいか: #{float_sum == rational_sum.to_f}"
👇出力結果
a = 1/2
b = 2/3
和: 7/6
差: -1/6
積: 1/3
商: 3/4
浮動小数点数の和: 1.1666666666666667
有理数の和: 7/6
有理数の和(小数表示): 1.1666666666666667
浮動小数点数と有理数は等しいか: true
この例では、Rationalクラスを使用して有理数を作成し、基本的な演算(加算、減算、乗算、除算)を行っています。また、同じ計算を浮動小数点数で行った結果と比較しています。有理数を使用することで、浮動小数点数の計算で生じる誤差を避けることができます。
有理数の簡約化と分数・小数変換
# 有理数の作成と簡約化
a = Rational(4, 6)
b = Rational(10, 15)
puts "a (元の形): #{a}"
puts "a (簡約後): #{a.rationalize}"
puts "b (元の形): #{b}"
puts "b (簡約後): #{b.rationalize}"
# 分数から小数、小数から分数への変換
decimal = 0.333333
rational_from_decimal = decimal.to_r
puts "\n小数 #{decimal} から変換した有理数: #{rational_from_decimal}"
puts "有理数に変換後、小数に戻した値: #{rational_from_decimal.to_f}"
# 等価性の確認
puts "元の小数と有理数から戻した小数は等しいか: #{decimal == rational_from_decimal.to_f}"
# 分母の取得
c = Rational(5, 7)
puts "\n分数 #{c} の分母: #{c.denominator}"
puts "分数 #{c} の分子: #{c.numerator}"
👇出力結果
a (元の形): 2/3
a (簡約後): 2/3
b (元の形): 2/3
b (簡約後): 2/3
小数 0.333333 から変換した有理数: 333333/1000000
有理数に変換後、小数に戻した値: 0.333333
元の小数と有理数から戻した小数は等しいか: true
分数 5/7 の分母: 7
分数 5/7 の分子: 5
この例では、Rationalクラスを使用して有理数を作成し、自動的に行われる簡約化を確認しています。また、小数から有理数への変換、およびその逆の変換を行い、精度を比較しています。最後に、有理数から分母と分子を取得する方法を示しています。
Rationalに関するよくある質問
Rationalが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、RubyのRationalやFileUtils、Date、Time、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Rubyを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!