文档

的阶乘

输入的阶乘

语法

描述

例子

F = factorial(n返回所有小于或等于的正整数的乘积n,在那里n是非负整数值。如果n是数组吗f的每个值的阶乘n.的数据类型和大小f和的一样吗n

的阶乘n通常在数学符号中使用感叹号字符asn !.请注意,n !是不是一个有效的MATLAB®的阶乘运算语法n

例子

全部折叠

F =阶乘(10)
F = 3628800
格式F =阶乘(22)
F = 1.124000727777608e+21

在这种情况下,f精确到15位,1.12400072777760 e + 21,因为双精度数字只能精确到15位。

将输出格式重置为默认值。

格式
N = [0 1 2;3 4 5];F =阶乘(n)
f =2×31 12 6 24 120
N = uint64([5 10 15 20]);F =阶乘(n)
f =1x4 uint64行向量120 3628800 1307674368000 2432902008176640000

输入参数

全部折叠

输入值,指定为标量、向量或实非负整数数组。

例子:5

例子:[0 1 2 3 4]

例子:Int16 ([10 15 20])

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

提示

限制

  • 对于双精度输入,当n是否小于等于21.的较大值n生成的结果具有正确的数量级,并且对前15位数字是准确的。这是因为双精度数字只能精确到15位。

  • 对于单精度输入,当n是否小于等于13.的较大值n生成的结果具有正确的数量级,并且对前8位数字是准确的。这是因为单精度数字只能精确到8位。

饱和

  • 方法使用时,下表描述了每种数据类型的饱和行为的阶乘函数。最后一列的值表示饱和点;也就是说,其实际阶乘大于中间列的最大可表示值的第一个正整数。为而且,所有大于最大值的值都返回为.对于整数数据类型,饱和值等于中间列中的最大值。

    数据类型 最大值 析因饱和阈值
    最大浮点数 阶乘(171)
    最大浮点数(单) 阶乘(单(35)
    uint64 264-1 阶乘(uint64 (21))
    int64 263-1 阶乘(int64 (21))
    uint32 232-1 阶乘(uint32 (13))
    int32 231-1 阶乘(int32 (13))
    uint16 216-1 阶乘(uint16 (9))
    int16 215-1 阶乘(int16 (8))
    uint8 28-1 阶乘(uint8 (6))
    int8 27-1 阶乘(int8 (6))

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

GPU代码生成
使用GPU Coder™为NVIDIA GPU生成CUDA®代码。

另请参阅

R2006a之前介绍过