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