どなブロ

エンジニアァのブログです

たのしいRuby 第12章

railsチュートリアルも並行して進めてますす、おもしろい。
1章終わりました。

数値(Numeric)クラス

Numericのクラス構成

  • Numeric(数値)
  • プログラム中で使用するものは大体Fixnumに収まる
  • RationalオブジェクトはRational(分子, 分母)の形式で生成
    • Rational#to_fメソッドを使うとFloatオブジェクトに変換できる
    • Rationalオブジェクトからnumeratorメソッドで分子、denominatorメソッドで分母を取り出す
  • ComplexオブジェクトはComplex(実数部, 虚数部)の形式で生成
    • Complexオブジェクトからrealメソッドで実数部、imaginaryメソッドで虚数部を取り出す

算術演算

割り算

  • /%の他にも割り算のメソッドがある
  • x.div(y)
    • xをyで割った商を整数で返す
  • x.quo(y)
    • xをyで割った商を返す。整数同士の時はRationalオブジェクトになる。
  • x.modulo(y)
    • x % y と同義
  • x.divmod(y)
    • xをyで割ったときの商とあまりを配列にして返す
  • x.remainder(y)
    • xをyで割った余りを返す。結果の符号はxの記号に一致

Mathモジュール

  • 三角関数や対数関数など、数値演算のたのメソッドはMathモジュールで提供される
    • たくさんある、都度調べる

数値型の変換

  • IntegerをFloatに変換するにはto_fメソッド
  • FloatからIntegerにはto_iメソッド
    • 小数点以下は切り捨てられる
  • 小数点以下四捨五入する場合はroundメソッド
  • 他にも、レシーバより大きく最も小さい整数を返すceil、その逆のfloorなど
  • 数値をRationalオブジェクトに変換するto_r
  • 数値をComplexオブジェクトに変換するto_c

乱数

  • 乱数を得るにはRandom.randメソッド
    • 引数を与えない場合には、1未満の浮動小数点数
    • 正の整数を与えた場合には、0からその値より小さい範囲の数値を返す
  • 乱数の種があれば得られる値を再現できる
    • Random.newメソッドで乱数生成器を初期化して、Rndom#randメソッドを使う
r1 = Random.new(1)
  • セキュリティで、パスワードや暗号に乱数を用いる目的で、securerandomメソッドがある
    • securerandom.byteメソッドは引数にバイト数を指定すると、その長さのランダムなバイト列を返す

数え上げ

  • n.times{|i|...}
    • n回の繰り返しを行う
  • from.upto(to){|i|...}
    • fromからtoに達するまでiを1ずつ加算しながら繰り返す
  • from.downto(to){|i|...}
    • fromからtoに達するまでをiを1ずつ減らしながら繰り返す
  • from.step(to){|i|...}
    • fromからtoに達するまでをiにstepずつ足しながら繰り返す

感想

  • さすがに覚えきれねえ
  • こんなのがあったな、って程度で使う機会がある時に思い出して覚えられればいいな

以上