Факториал входа
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)) |