gamma(x) -> FloatRuby 1.9.3 から[permalink][rdoc][edit]-
xのガンマ関数の値を返します。- [PARAM]
x: - 実数
- [EXCEPTION]
TypeError: -
xに数値以外を指定した場合に発生します。 - [EXCEPTION]
Math::DomainError: -
xに負の整数、もしくは -∞ を渡した場合に発生します。 - [EXCEPTION]
RangeError: -
xに実数以外の数値を指定した場合に発生します。
def fact(n) = (1..n).inject(1, :*) # 階乗 1.upto(18) { |n| p [n, Math.gamma(n), fact(n - 1)] } # => [1, 1.0, 1] # [2, 1.0, 1] # [3, 2.0, 2] # [4, 6.0, 6] # [5, 24.0, 24] # [6, 120.0, 120] # [7, 720.0, 720] # [8, 5040.0, 5040] # [9, 40320.0, 40320] # [10, 362880.0, 362880] # [11, 3628800.0, 3628800] # [12, 39916800.0, 39916800] # [13, 479001600.0, 479001600] # [14, 6227020800.0, 6227020800] # [15, 87178291200.0, 87178291200] # [16, 1307674368000.0, 1307674368000] # [17, 20922789888000.0, 20922789888000] # [18, 355687428096000.0, 355687428096000]
例: 符号付きゼロxに符号付きゼロを渡した場合も+0.0と-0.0は区別され、符号付きの無限大を返します。これはxに負の整数を渡した場合に Math::DomainError が発生するのとは別の挙動です。p Math.gamma(0.0) # => Infinity p Math.gamma(-0.0) # => -Infinity[SEE_ALSO] Math?.lgamma
- [PARAM]