ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

構文

  • f = factorial(n)

説明

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

すべて展開する

10!

f = factorial(10)
f =

     3628800

22!

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 =

     1     1     2
     6    24   120

符号なしの整数値の階乗

n = uint64([5 10 15 20]);
f = factorial(n)
f =

   120    3628800   1307674368000   2432902008176640000

入力引数

すべて展開する

n — 入力値実数で非負の整数値のスカラー、ベクトル、または配列

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

例: 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))

参考

この情報は役に立ちましたか?