Факториал входа
f = factorial(
возвращает произведение всех положительных целых чисел, меньших или равных n
)n
, где n
является неотрицательным целым значением. Если n
является массивом, тогда f
содержит факториал каждого значения n
. Тип данных и размер f
является тем же самым, что и у n
.
Факториал n
обычно записывается в математическом обозначении с использованием восклицательной точки как n!. Обратите внимание, что n!
не является допустимым MATLAB® синтаксис для вычисления факториала n
.
Ограничения
Для входных параметров с двойной точностью входы точны, когда n
меньше или равно 21
. Большие значения n
получите результат, который имеет правильный порядок величины и точен для первых 15 цифр. Это связано с тем, что числа с двойной точностью точны только до 15 цифр.
Для входов с одной точностью результат точен, когда n
меньше или равно 13
. Большие значения n
получите результат, который имеет правильный порядок величины и точен для первых 8 цифр. Это связано с тем, что числа с одной точностью точны только до 8 цифр.
Насыщение
Таблица ниже описывает поведение насыщения каждого типа данных при использовании с factorial
функция. Значения в последнем столбце указывают точку насыщения; то есть первое положительное целое число, фактический факториал которого больше максимального представимого значения в среднем столбце. Для single
и double
все значения, большие, чем максимальное значение, возвращаются следующим Inf
. Для целочисленных типов данных значение насыщения равно максимальному значению в среднем столбце.
Тип данных | Максимальное значение | Порог факториального насыщения |
---|---|---|
double | realmax | factorial(171) |
single | realmax('single') | factorial(single(35)) |
uint64 | 264-1 | factorial(uint64(21)) |
int64 | 263-1 | factorial(int64(21)) |
uint32 | 232-1 | factorial(uint32(13)) |
int32 | 231-1 | factorial(int32(13)) |
uint16 | 216-1 | factorial(uint16(9)) |
int16 | 215-1 | factorial(int16(8)) |
uint8 | 28-1 | factorial(uint8(6)) |
int8 | 27-1 | factorial(int8(6)) |