文档

的阶乘

阶乘的输入

语法

f =阶乘(n)

描述

例子

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

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

例子

全部折叠

f =阶乘(10)
f = 3628800
格式f =阶乘(22)
f = 1.124000727777608 e + 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 (15 20 [10])

数据类型:||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++代码。

另请参阅

之前介绍过的R2006a

这个话题有用吗?