【Ruby3.x】Numeric::divmod()メソッドの使い方
divmodメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
divmodメソッドは、Numericクラスのインスタンスに対して呼び出され、数値の割り算を行った際の商と余りを同時に計算して取得するメソッドです。
このメソッドは、レシーバ(メソッドを呼び出す元の数値)を、引数otherで指定された数値で割ります。戻り値は、計算された商と余りの2つの要素を持つ配列です。配列の最初の要素が商、2番目の要素が余りとなります。
divmodメソッドで得られる商は、結果が常に負の無限大方向へ丸められる特性があります。これは一般的なプログラミング言語における整数除算の丸め方とは異なる場合があるため、注意が必要です。例えば、正の数を負の数で割った場合や、負の数を正の数で割った場合に、通常の整数除算とは異なる商となることがあります。
余りは、引数other(割る数)と同じ符号を持つように計算されます。この計算規則により、「レシーバ == other * 商 + 余り」という関係が常に成り立ちます。
例えば、10.divmod(3)は[3, 1]を返しますが、-10.divmod(3)は[-4, 2]を返します。これは、-10を3で割ると、商が-3で余りが-1となるのではなく、商が-4で余りが2となることを意味します。
数値の割り算において、商と余りの両方を効率的に取得したい場合に、このdivmodメソッドを活用することができます。
構文(syntax)
110.divmod(3) # => [3, 1]
引数(parameters)
req
- other: 割る数
戻り値(return)
Array
このメソッドは、被除数と除数による割り算の商と剰余を格納した配列を返します。配列の最初の要素が商、2番目の要素が剰余となります。