Main Content

factorial

説明

f = factorial(n) は、n 以下であるすべての正の整数の積を返します。n は非負の整数値です。n が配列の場合、fn の各値の階乗を含みます。f のデータ型およびサイズは、n と同じです。

n の階乗は一般的に、感嘆符を使用する数学的表記で n! のように記述します。n! は、MATLAB®n の階乗を計算する有効な構文ではありません。

すべて折りたたむ

f = factorial(10)
f = 3628800
format long
f = factorial(22)
f = 
     1.124000727777608e+21

この場合、f は 15 桁の 1.12400072777760e+21 まで正確です。倍精度数では正確に表現できるのは 15 桁までだからです。

出力形式を既定にリセットします。

format
n = [0 1 2; 3 4 5];
f = factorial(n)
f = 2×3

     1     1     2
     6    24   120

n = uint64([5 10 15 20]);
f = factorial(n)
f = 1x4 uint64 row vector

                   120               3628800         1307674368000   2432902008176640000

入力引数

すべて折りたたむ

入力値。実数で非負の整数である、スカラー、ベクトルまたは配列として指定します。

例: 5

例: [0 1 2 3 4]

例: int16([10 15 20])

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

ヒント

制限

  • 倍精度の入力に対して、n21 以下の場合、結果は正確になります。n の値が大きい場合、桁数が同じで、最初の 15 桁が正確である結果が生成されます。倍精度数では正確に表現できるのは 15 桁までだからです。

  • 単精度の入力に対して、n13 以下の場合、結果は正確になります。n の値が大きい場合、桁数が同じで、最初の 8 桁が正確である結果が生成されます。単精度数では正確に表現できるのは 8 桁までだからです。

飽和

  • 次の表では、関数 factorial で使用したときの、それぞれのデータ型の飽和の動作について説明します。最後の列の値は飽和点を示します。つまり、中央の列にある表現可能な最大値より大きい実際の階乗をもつ最初の正の整数です。single および double では、この最大値より大きな値はすべて Inf として返されます。整数データ型では、飽和値は中央の列にある最大値に等しくなります。

    データ型最大値階乗の飽和のしきい値
    doublerealmaxfactorial(171)
    singlerealmax('single')factorial(single(35))
    uint64264-1factorial(uint64(21))
    int64263-1factorial(int64(21))
    uint32232-1factorial(uint32(13))
    int32231-1factorial(int32(13))
    uint16216-1factorial(uint16(9))
    int16215-1factorial(int16(8))
    uint828-1factorial(uint8(6))
    int827-1factorial(int8(6))

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

参考