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