factorial

Синтаксис

Описание

пример

f = factorial(n) возвращает произведение всех положительных целых чисел, меньших или равных n, где n является неотрицательным целым значением. Если n является массивом, тогда f содержит факториал каждого значения n. Тип данных и размер f является тем же самым, что и у n.

Факториал n обычно записывается в математическом обозначении с использованием восклицательной точки как n!. Обратите внимание, что n! не является допустимым MATLAB® синтаксис для вычисления факториала n.

Примеры

свернуть все

f = factorial(10)
f = 3628800
format long
f = factorial(22)
f = 
     1.124000727777608e+21

В этом случае f точность до 15 цифр, 1.12400072777760e+21, потому что числа двойной точности являются точными только до 15 цифр.

Обнулите выход по умолчанию.

format
n = [0 1 2; 3 4 5];
f = factorial(n)
f = 2×3

     1     1     2
     6    24   120

n = uint64([5 10 15 20]);
f = factorial(n)
f = 1x4 uint64 row vector

                   120               3628800         1307674368000   2432902008176640000

Входные параметры

свернуть все

Входные значения, заданные как скаляр, вектор или массив вещественных, неотрицательных целых чисел.

Пример: 5

Пример: [0 1 2 3 4]

Пример: int16([10 15 20])

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Совет

Ограничения

  • Для входных параметров с двойной точностью входы точны, когда n меньше или равно 21. Большие значения n получите результат, который имеет правильный порядок величины и точен для первых 15 цифр. Это связано с тем, что числа с двойной точностью точны только до 15 цифр.

  • Для входов с одной точностью результат точен, когда n меньше или равно 13. Большие значения n получите результат, который имеет правильный порядок величины и точен для первых 8 цифр. Это связано с тем, что числа с одной точностью точны только до 8 цифр.

Насыщение

  • Таблица ниже описывает поведение насыщения каждого типа данных при использовании с factorial функция. Значения в последнем столбце указывают точку насыщения; то есть первое положительное целое число, фактический факториал которого больше максимального представимого значения в среднем столбце. Для single и doubleвсе значения, большие, чем максимальное значение, возвращаются следующим Inf. Для целочисленных типов данных значение насыщения равно максимальному значению в среднем столбце.

    Тип данныхМаксимальное значениеПорог факториального насыщения
    doublerealmaxfactorial(171)
    singlerealmax('single')factorial(single(35))
    uint64264-1factorial(uint64(21))
    int64263-1factorial(int64(21))
    uint32232-1factorial(uint32(13))
    int32231-1factorial(int32(13))
    uint16216-1factorial(uint16(9))
    int16215-1factorial(int16(8))
    uint828-1factorial(uint8(6))
    int827-1factorial(int8(6))

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

Генерация кода GPU
Сгенерируйте код CUDA ® для графических процессоров NVIDIA ® с помощью GPU Coder™

.

См. также

Представлено до R2006a