Факториал х 2: чему равен факториал (n-2)! — Школьные Знания.com

Содержание

Двойной факториал — это… Что такое Двойной факториал?

Факториа́л числа n (обозначается n!, произносится эн факториа́л) — произведение всех натуральных чисел до n включительно:

.

По определению полагают 0! = 1. Факториал определён только для целых неотрицательных чисел.

Эта функция часто используется в комбинаторике, теории чисел и функциональном анализе.

Иногда словом «факториал» неформально называют восклицательный знак.

Свойства

Комбинаторное определение

В комбинаторике факториал определяется как количество перестановок множества из n элементов. Например, элементы множества {A,B,C,D} можно линейно упорядочить 4!=24 способами:

ABCD  BACD  CABD  DABC
ABDC  BADC  CADB  DACB
ACBD  BCAD  CBAD  DBAC
ACDB  BCDA  CBDA  DBCA
ADBC  BDAC  CDAB  DCAB
ADCB  BDCA  CDBA  DCBA

Связь с гамма-функцией

Факториал связан с гамма-функцией от целочисленного аргумента соотношением:

n! = Γ(n + 1)

Таким образом, гамма-функцию рассматривают как обобщение факториала для положительных вещественных чисел. Путём аналитического продолжения её также расширяют и на всю комплексную плоскость, исключая особые точки при .

Формула Стирлинга

Формула Стирлинга — асимптотическая формула для вычисления факториала:

см. O-большое. Коэффициенты этого разложения дают последовательность A001163 в OEIS (числители) и последовательность A001164 в OEIS (знаменатели).

Во многих случаях для приближенного значения факториала достаточно рассматривать только главный член формулы Стирлинга:

При этом можно утверждать, что

Разложение на простые числа

Каждое простое число p входит в разложение n! на простые в степени

Таким образом,

,

где произведение берется по всем простым числам.

Другие свойства

  • x!2 > xx > x! > = x, при x>1

Обобщения

Двойной факториал

Двойной факториал числа n обозначается n!! и определяется как произведение всех натуральных чисел в отрезке [1,n], имеющих ту же чётность что и n. Таким образом,

По определению полагают 0!! = 1.

Убывающий факториал

Убывающим факториалом (или неполным факториалом) называется выражение

Убывающий факториал дает число размещений из n по k.

Возрастающий факториал

Возрастающим факториалом называется выражение

Праймориал или примориал

Примориал (англ. Primorial) числа n обозначается n# и определяется как произведение простых чисел, не превышающих n. Например,

Последовательность праймориалов начинается так:

2, 6, 30, 210, 2310, 30030, 510510, 9699690, … (последовательность A002110 в OEIS)

Суперфакториалы

Основная статья: Большие числа

Нейл Слоан и Саймон Плоуф (англ.) в 1995 году определили суперфакториал как произведение первых n факториалов. Согласно этому определению суперфакториал четырёх равен (поскольку устоявшегося обозначения нет, используется функциональное)

В общем

Последовательность суперфакториалов начинается (с n = 0) с

1, 1, 2, 12, 288, 34560, 24883200, … (последовательность A000178 в OEIS)

Идея была обобщена в 2000 Генри Боттомли (англ.), что привело к гиперфакториалам (англ. Super-duper-factorial), которые являются произведением первых n суперфакториалов. Первые члены (с n = 0) равны:

1, 1, 2, 24, 6912, 238878720, 5944066965504000, … (последовательность A055462 в OEIS)

Продолжая рекуррентно, можно определить

факториал кратного уровня, где m-уровневый факториал n — произведение первых n (m − 1)-уровневых факториалов, то есть

где для n > 0 и .

Субфакториал

Субфакториал определяется как количество беспорядков порядка , то есть перестановок -элементного множества без неподвижных точек.

Ссылки

См. также

Wikimedia Foundation. 2010.

Факториал натурального числа n: как вычислить, формула

Факториал натурального числа n пишется как n! и считается как произведение всех натуральных чисел от 1 до n (включительно).

Для n > 0:

n! = 1 ⋅ 2 ⋅ 3 ⋅ 4 … ⋅ n

Для n = 0:

0! = 1

Формула для определения факториала

Примеры:

  • 1! = 1
  • 2! = 1 ⋅ 2 = 2
  • 3! = 1 ⋅ 2 ⋅ 3 = 6
  • 4! = 1 ⋅ 2 ⋅ 3 ⋅4 = 24
  • 5! = 1 ⋅ 2 ⋅ 3 ⋅ 4 ⋅ 5 = 120

Рекуррентная формула факториала

Примеры:

  • 5! = 5 ⋅ (5 – 1)! = 5 ⋅ 4! = 5 ⋅ 24 = 120
  • 7! = 7⋅ (7 – 1)! = 7 ⋅ 6! = 5 ⋅ 720 = 5040

Формула Стирлинга

Используется для приблизительного нахождения факториала.

Пример:

Таблица факториалов

Число nФакториал n!
0
1
1 1
2 2
3
6
4 24
5 120
6
720
7 5040
8 40320
9
362880
10 3628800
11 3,991680×107
12
4,790016×108
13 6,227021×109
14 8,717829×1010
15 1,307674×1012
16 2,092279×1013
17 3,556874×1014
18 6,402374×1015
19 1,216451×1017
20 2,432902×1018

microexcel.ru

Калькулятор онлайн для расчета факториала числа

Факториал натурального числа n — произведение первых по счету,n натуральных чисел от 1 до n включительно, обозначается n!

n! = 1 • 2 • 3 • 4 • 5 • … • n

Факториа́л числа – это число, умноженное на «себя минус один», затем на «себя минус два» и так далее, до единицы.

n! = n • (n — 1) • (n — 2) • … • 1

Для приближённого вычисления факториала и гамма-функции используется формула Стирлинга . Названа в честь Джеймса Стирлинга и Абрахама де Муавра, последний считается автором формулы

Вычисление факториала числа (n!) по формуле в Стирлинга. Этот калькулятор может быть использован для вычисления значений n больше 100.

Расчет факториала по формуле Джеймса Стирлинга

Приближенное значение не ограничено по колличеству n

Расчет факториала от 0 до 100

Точное значение, ограниченное по колличеству n

Формула Джеймса Стирлинга для расчета факториала

n! ≈ √(2π) × n(n+1/2) × e -n

Примеры значений для разных n:

1! = 1
2! = 2 × 1 = 2
3! = 3 × 2 × 1 = 6
4! = 4 × 3 × 2 × 1 = 24
5! = 5 × 4 × 3 × 2 × 1 = 120

Не стоит забывать

По общепринятой договоренности 0! = 1 (факториал нуля равен единице). Этот факт важен, к примеру, для вычисления биномиальных коэффициентов.

Полезный факт

Факториал числа, функцию от натурального аргумента можно продолжить на все действительные числа с помощью т.н. Гамма-функции (важно отметить, что для этого требуется определенный математический аппарат). В таком случае, мы сможем посчитать факториал любого действительного числа. Например, факториал (или, Гамма-функция, что математически правильнее) числа Пи. π! приблизительно равен 2.28803779534. Факториал числа Эйлера, другого трансцендентного числа, Γ(e) ~ 1.567468255 (упрощенно, факториал числа e).

В вашем браузере отключен Javascript.
Чтобы произвести расчеты, необходимо разрешить элементы ActiveX!
Больше интересного в телеграм @calcsbox

Сколько нулей в конце факториала 100?

Факториал одной сотни записывается как 100! Это произведение всех натуральных чисел до ста включительно. Иногда запись факториала имеет такой вид:

100 х 99 х 98 х 97 х … х 4 х 3 х 2 х 1

Для ответа на вопрос задачи вам не обязательно находить результат умножения. От вас ждут, чтобы вы лишь определили число нулей в конце произведения, не зная, каким именно оно будет. Для решения этой задачи потребуется сформулировать несколько правил. Одно из них вы уже знаете. Взгляните на следующее выражение.

387 000 х 12 900 = 5 027 131 727

Вам не кажется, что здесь есть что-то забавное? Ведь при перемножении двух круглых чисел, то есть тех, которые оканчиваются на нули, невозможно получить некруглое число. Это нарушило бы закон сохранения конечных нулей (закон, который я только что вывел, но, тем не менее, он является верным). Произведение всегда унаследует нулевые окончания своих составляющих. Вот несколько верных примеров этого:

10 х 10 = 100
7 х 20 = 140
30 х 400 = 12 000

Из сомножителей факториала 100 десять заканчиваются на ноль: 10, 20, 30, 40, 50, 60, 70, 80, 90 и 100 (заканчивается на два 0). Это дает уже как минимум одиннадцать конечных нулей, которые 100! обязательно унаследует.
Предупреждение: следование только этому правилу иногда побуждает некоторых кандидатов в своем ответе заявить, что в конце факториала 100 стоят одиннадцать нулей. Такой ответ является неверным. Иногда можно умножить два числа, не заканчивающихся на ноль, и получить произведение, имеющее в конце один или несколько нулей. Вот несколько примеров этого рода:

2 х 5 = 10
5 х 8 = 40
6 х 15 = 90
8 х 125 = 1000

Все, кроме последней пары, входят в сотню составляющих факториала 100. Поэтому ваша работа не закончилась. Теперь мы подходим к закону «сосисок и булочек». Представьте себе ситуацию, когда на пикник одни люди приносят сосиски (в упаковках по десять штук), другие — булочки (упакованные по восемь штук), а некоторые — и то, и другое. Есть единственный способ, позволяющий определить, сколько хотдогов из этих продуктов можно приготовить. Сосчитайте сосиски, сосчитайте булочки и выберите меньшее число из двух.

Тот же самый закон следует использовать и отвечая на наш вопрос. Для этого надо заменить «сосиски» и «булочки» на «сомножители на 2» и «сомножители на 5».

В каждом из приведенных выше уравнений число, которое делится на 2, умножается на число, которое делится на 5. Сомножители на 2 и на 5 при их перемножении «совместно» дают идеальную десятку, что добавляет еще один ноль к общему произведению. Посмотрите на последний пример, где в конце, можно сказать, из воздуха возникает три нуля.

8 х 125 = (2 х 2 х 2) х (5 х 5 х 5)
= (2 х 5) х (2 х 5) х (2 х 5)
= 10 х 10 х 10
= 1000

Поэтому надо составить пары из двоек и пятерок. Возьмем, к примеру, число, равное 692 978 456 718 000 000.

Оно оканчивается на шесть нулей. Это означает, что его можно записать следующим образом:

692 978 456 718 х 10 х 10 х 10 х 10 х 10 х 10,

или так:

692 978 456 718 х (2 х 5) х (2 х 5) х (2 х 5) х (2 х 5) х (2 х 5) х (2 х 5).

Первая часть, 692 978 456 718, не делится на 10. В ином случае она бы оканчивалась на ноль, и можно было бы эту часть уменьшить еще в 10 раз. К тому же здесь есть шесть сомножителей, равных 10 (или 2 х 5), что соответствует шести нулям в конце числа 692 978 456 718 000 000. Ну как, убедительно?

Это дает нам надежную систему для определения количества нулей в конце любого большого числа. Выделите сомножители 2 и 5. Составьте из них пары и перемножьте их: (2 х 5) х (2 х 5) х (2 х 5) х … Число пар из двоек и пятерок равно количеству нулей в конце. Закройте глаза на все, что осталось слева.

В целом слева у вас останется двойка или пятерка, для которых не нашлось пары. Обычно это двойки. Более того, когда вы имеете дело с факториалом, это всегда двойки. (В факториалах имеется больше четных множителей, чем множителей, которые делятся на 5.) Поэтому узким местом является число пятерок. Из этого следует, что вопрос можно сформулировать по-другому: сколько раз 100! можно разделить без остатка на 5?

Эту арифметическую операцию можно легко проделать даже в голове. В диапазоне от 1 до 100 есть 20 чисел, которые делятся на пятерку: 5, 10, 15, …, 95, 100. Обратите внимание, что 25 дает 2 множителя, равные 5 (25 = 5 х 5), и к тому же в этой группе есть еще три числа, в состав которых входит 25: 50, 75 и 100. В совокупности это добавляет еще четыре пятерки, а всего их 24. 24 множителя на пять дают 24 пары с равным числом двоек, в результате чего получается 24 множителя на 10 (оставляя слева еще множество двоек, для которых не оказалось пары). Таким образом, в конце 100! будет 24 нуля.

Если вам любопытно узнать точный ответ, то значение факториала 100 равно:

93 326 215 443 944 152 681 699 238 856 266 700 490 715 968 264 381 621 468 592 963 895 217 599 993 229 915 608 941 463 976 156 518 286 253 697 920 827 223 758 251 185 210 916 864 000 000 000 000 000 000 000 000.

Разбор по книге «Действительно ли Вы достаточно умны, чтобы работать в Google?»

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Подготовка школьников к ЕГЭ и ОГЭ (Справочник по математике — Алгебра

      При решении задач по комбинаторике используют следующие важные понятия

Факториалы

      Для произвольного натурального числа   n   формула

определяет факториал числа   n   ( n !   читается, как   n   – факториал).

      Например,

      Считается, что

0 ! = 1 ,     1 ! = 1.

Перестановки

      Рассмотрим следующую задачу.

      Задача.   6   карточек пронумерованы числами   1, 2, 3, 4, 5, 6.   Карточки наугад выкладываем в ряд. Сколько при этом можно получить различных шестизначных чисел?

      Решение. Сначала слева направо пронумеруем места в ряду, куда выкладываем карточки: первое место, второе, третье, четвертое, пятое, шестое. На первое место можно положить одну из 6 карточек. Для этого есть   6   способов. В каждом из этих 6 способов на второе место можно положить одну из оставшихся   5   карточек. Таким образом, существует

способов, чтобы положить карточки на первое и второе места. В каждом из этих   30   способов на третье место можно положить одну из оставшихся   4   карточек. Следовательно, существует

способов, чтобы положить карточки на первое, второе и третье места. В каждом из этих   120   способов на четвертое место можно положить одну из оставшихся   3   карточек. Отсюда вытекает, что существует

способов, чтобы положить карточки на первое, второе, третье и четвертое места. В каждом из этих   360   способов на пятое место можно положить одну из оставшихся   2   карточек. Следовательно, существует

способов, чтобы положить карточки на первое, второе, третье, четвертое и пятое места. После этого у нас остается одна единственная карточка, которую мы и кладем на шестое место. Таким образом, при выкладывании карточек можно получить   720   различных шестизначных чисел.

      Ответ: 720.

      Замечание 1. В задаче мы рассмотрели   6   пронумерованных карточек и установили, что количество способов выкладывания этих карточек в ряд равно   6!

      Если бы у нас было n пронумерованных карточек, то количество способов выкладывания их в ряд равнялось бы   n ! .

      Замечание 2. Каждое расположение   n   пронумерованных карточек в ряд является перестановкой из n элементов, к изучению которых мы сейчас и переходим.

      Определение 1. Пусть   n   – натуральное число. Рассмотрим произвольное множество, содержащее n элементов. Говорят, что на этом множестве задано упорядочение (отношение порядка), если его элементы пронумерованы числами   1, 2, 3, … , n.

      Множество с заданным упорядочением называют упорядоченным множеством.

      Определение 2. Рассмотрим множество, содержащее n элементов. Перестановкой из n элементов называют любое упорядочение этого множества.

      Число перестановок из   n   элементов обозначают символом   Pn.

      В соответствии с Замечанием 1, справедлива формула:

Pn = n !

      В частности,

P6 = 6! = 720 .

      Замечание 3. Введенные в данном разделе перестановки называют также перестановками без повторений.

   С понятиями размещений из   n   элементов по   m   элементов и сочетаний из   n   элементов по   m   элементов можно познакомиться в разделе «Комбинаторика: размещения и сочетания» нашего справочника.

 

      На нашем сайте можно также ознакомиться нашими учебными материалами для подготовки к ЕГЭ и ОГЭ по математике.

Таблица факториалов

Таблица факториалов
1!1
2!2
3!6
4!24
5!120
6!720
7!5 040
8!40 320
9!362 880
10!3 628 800
11!39 916 800
12!479 001 600
13!6 227 020 800
14!87 178 291 200
15!1 307 674 368 000
16!20 922 789 888 000
17!355 687 428 096 000
18!6 402 373 705 728 000
19!121 645 100 408 832 000
20!2 432 902 008 176 640 000
21!51 090 942 171 709 440 000
22!1 124 000 727 777 607 680 000
23!25 852 016 738
884 976 640 000
24!620 448 401 733
239 439 360 000
25!15 511 210 043
330 985 984 000 000
26!403 291 461 126
605 635 584 000 000
27!10 888 869 450 418
352 160 768 000 000
28!304 888 344 611 713
860 501 504 000 000
29!8 841 761 993 739 701
954 543 616 000 000
30!265 252 859 812 191 058
636 308 480 000 000

— версия для печати
Определение (что такое факториал)
Факториал числа — результат последовательного умножения числа на все натуральные числа меньшие данного числа и большие единицы. Обозначается факториал восклицательным знаком после числа — «n!».
Факториал натурального числа n можно также определить как рекуррентную функцию F (n). Определяется она следующим образом: F (0) = F (1) = 1; F (n) = n * F (n-1).
Пример:
7! = 7×6×5×4×3×2×1 = 5040
Не стоит забывать
По общепринятой договоренности 0! = 1 (факториал нуля равен единице). Этот факт важен, к примеру, для вычисления биномиальных коэффициентов.
Полезный факт
Факториал числа, функцию от натурального аргумента можно продолжить на все действительные числа с помощью т.н. Гамма-функции (важно отметить, что для этого требуется определенный математический аппарат). В таком случае, мы сможем посчитать факториал любого действительного числа. Например, факториал (или, Гамма-функция, что математически правильнее) числа Пи Π! приблизительно равен 2.28803779534. Факториал числа Эйлера, другого трансцендентного числа, Γ(e) ~ 1.567468255 (упрощенно, факториал числа e).
Если у вас есть мысли по поводу данной страницы или предложение по созданию математической (см. раздел «Математика») вспомогательной памятки, мы обязательно рассмотрим ваше предложение. Просто воспользуйтесь обратной связью.

© Школяр. Математика (при поддержке «Ветвистого древа») 2009—2016

Интерактивный учебник языка Python

1. Функции

Напомним, что в математике факториал числа n определяется как n! = 1 ⋅ 2 ⋅ … ⋅ n. Например, 5! = 1 ⋅ 2 ⋅ 3 ⋅ 4 ⋅ 5 = 120. Ясно, что факториал можно легко посчитать, воспользовавшись циклом for. Представим, что нам нужно в нашей программе вычислять факториал разных чисел несколько раз (или в разных местах кода). Конечно, можно написать вычисление факториала один раз, а затем используя Copy-Paste вставить его везде, где это будет нужно.

	
# вычислим 3!
res = 1
for i in range(1, 4):
    res *= i
print(res)

# вычислим 5!
res = 1
for i in range(1, 6):
    res *= i
print(res)

Однако, если мы ошибёмся один раз в начальном коде, то потом эта ошибка попадёт в код во все места, куда мы скопировали вычисление факториала. Да и вообще, код занимает больше места, чем мог бы. Чтобы избежать повторного написания одной и той же логики, в языках программирования существуют функции.

Функции — это такие участки кода, которые изолированы от остальный программы и выполняются только тогда, когда вызываются. Вы уже встречались с функциями sqrt(), len() и print(). Они все обладают общим свойством: они могут принимать параметры (ноль, один или несколько), и они могут возвращать значение (хотя могут и не возвращать). Например, функция sqrt() принимает один параметр и возвращает значение (корень числа). Функция print() принимает переменное число параметров и ничего не возвращает.

Покажем, как написать функцию factorial(), которая принимает один параметр — число, и возвращает значение — факториал этого числа.

	
def factorial(n):
    res = 1
    for i in range(1, n + 1):
        res *= i
    return res

print(factorial(3))
print(factorial(5))

Дадим несколько объяснений. Во-первых, код функции должен размещаться в начале программы, вернее, до того места, где мы захотим воспользоваться функцией factorial(). Первая строчка этого примера является описанием нашей функции. factorial — идентификатор, то есть имя нашей функции. После идентификатора в круглых скобках идет список параметров, которые получает наша функция. Список состоит из перечисленных через запятую идентификаторов параметров. В нашем случае список состоит из одной величины n. В конце строки ставится двоеточие.

Далее идет тело функции, оформленное в виде блока, то есть с отступом. Внутри функции вычисляется значение факториала числа n и оно сохраняется в переменной res. Функция завершается инструкцией return res, которая завершает работу функции и возвращает значение переменной res.

Инструкция return может встречаться в произвольном месте функции, ее исполнение завершает работу функции и возвращает указанное значение в место вызова. Если функция не возвращает значения, то инструкция return используется без возвращаемого значения. В функциях, которым не нужно возвращать значения, инструкция return может отсутствовать.

Приведём ещё один пример. Напишем функцию max(), которая принимает два числа и возвращает максимальное из них (на самом деле, такая функция уже встроена в Питон).

10
20
def max(a, b):
    if a > b:
        return a
    else:
        return b

print(max(3, 5))
print(max(5, 3))
print(max(int(input()), int(input())))

Теперь можно написать функцию max3(), которая принимает три числа и возвращает максимальное их них.

	
def max(a, b):
    if a > b:
        return a
    else:
        return b

def max3(a, b, c):
    return max(max(a, b), c)

print(max3(3, 5, 4))
Встроенная функция max() в Питоне может принимать переменное число аргументов и возвращать максимум из них. Приведём пример того, как такая функция может быть написана.
	
def max(*a):
    res = a[0]
    for val in a[1:]:
        if val > res:
            res = val
    return res

print(max(3, 5, 4))
Все переданные в эту функцию параметры соберутся в один кортеж с именем a, на что указывает звёздочка в строке объявления функции.

2. Локальные и глобальные переменные

Внутри функции можно использовать переменные, объявленные вне этой функции

	
def f():
    print(a)

a = 1
f()

Здесь переменной a присваивается значение 1, и функция f() печатает это значение, несмотря на то, что до объявления функции f эта переменная не инициализируется. В момент вызова функции f() переменной a уже присвоено значение, поэтому функция f() может вывести его на экран.

Такие переменные (объявленные вне функции, но доступные внутри функции) называются глобальными.

Но если инициализировать какую-то переменную внутри функции, использовать эту переменную вне функции не удастся. Например:

	
def f():
    a = 1

f()
print(a)

Получим ошибку NameError: name 'a' is not defined. Такие переменные, объявленные внутри функции, называются локальными. Эти переменные становятся недоступными после выхода из функции.

Интересным получится результат, если попробовать изменить значение глобальной переменной внутри функции:

	
def f():
    a = 1
    print(a)

a = 0
f()
print(a)

Будут выведены числа 1 и 0. Несмотря на то, что значение переменной a изменилось внутри функции, вне функции оно осталось прежним! Это сделано в целях “защиты” глобальных переменных от случайного изменения из функции. Например, если функция будет вызвана из цикла по переменной i, а в этой функции будет использована переменная i также для организации цикла, то эти переменные должны быть различными. Если вы не поняли последнее предложение, то посмотрите на следующий код и подумайте, как бы он работал, если бы внутри функции изменялась переменная i.

	
def factorial(n):
    res = 1
    for i in range(1, n + 1):
        res *= i
    return res

for i in range(1, 6):
    print(i, '! = ', factorial(i), sep='')
Если бы глобальная переменная i изменялась внутри функции, то мы бы получили вот что:
5! = 1
5! = 2
5! = 6
5! = 24
5! = 120
Итак, если внутри функции модифицируется значение некоторой переменной, то переменная с таким именем становится локальной переменной, и ее модификация не приведет к изменению глобальной переменной с таким же именем.

Более формально: интерпретатор Питон считает переменную локальной для данной функции, если в её коде есть хотя бы одна инструкция, модифицирующая значение переменной, то эта переменная считается локальной и не может быть использована до инициализации. Инструкция, модифицирующая значение переменной — это операторы =, +=, а также использование переменной в качестве параметра цикла for. При этом даже если инструкция, модицифицирующая переменную никогда не будет выполнена, интерпретатор это проверить не может, и переменная все равно считается локальной. Пример:

	
def f():
    print(a)
    if False:
        a = 0

a = 1
f()

Возникает ошибка: UnboundLocalError: local variable 'a' referenced before assignment. А именно, в функции f() идентификатор a становится локальной переменной, т.к. в функции есть команда, модифицирующая переменную a, пусть даже никогда и не выполняющийся (но интерпретатор не может это отследить). Поэтому вывод переменной a приводит к обращению к неинициализированной локальной переменной.

Чтобы функция могла изменить значение глобальной переменной, необходимо объявить эту переменную внутри функции, как глобальную, при помощи ключевого слова global:

	
def f():
    global a
    a = 1
    print(a)

a = 0
f()
print(a)

В этом примере на экран будет выведено 1 1, так как переменная a объявлена, как глобальная, и ее изменение внутри функции приводит к тому, что и вне функции переменная будет доступна.

Тем не менее, лучше не изменять значения глобальных переменных внутри функции. Если ваша функция должна поменять какую-то переменную, пусть лучше она вернёт это значением, и вы сами при вызове функции явно присвоите в переменную это значение. Если следовать этим правилам, то функции получаются независимыми от кода, и их можно легко копировать из одной программы в другую.

Например, пусть ваша программа должна посчитать факториал вводимого числа, который вы потом захотите сохранить в переменной f. Вот как это не стоит делать:

5
def factorial(n):
    global f
    res = 1
    for i in range(2, n + 1):
        res *= i
    f = res

n = int(input())
factorial(n)
# дальше всякие действия с переменной f

Этот код написан плохо, потому что его трудно использовать ещё один раз. Если вам завтра понадобится в другой программе использовать функцию «факториал», то вы не сможете просто скопировать эту функцию отсюда и вставить в вашу новую программу. Вам придётся поменять то, как она возвращает посчитанное значение.

Гораздо лучше переписать этот пример так:

5
# начало куска кода, который можно копировать из программы в программу
def factorial(n):
    res = 1
    for i in range(2, n + 1):
        res *= i
    return res
# конец куска кода

n = int(input())
f = factorial(n)
# дальше всякие действия с переменной f

Если нужно, чтобы функция вернула не одно значение, а два или более, то для этого функция может вернуть список из двух или нескольких значений:

Тогда результат вызова функции можно будет использовать во множественном присваивании:

3. Рекурсия

def short_story():
    print("У попа была собака, он ее любил.")
    print("Она съела кусок мяса, он ее убил,")
    print("В землю закопал и надпись написал:")
    short_story()

Как мы видели выше, функция может вызывать другую функцию. Но функция также может вызывать и саму себя! Рассмотрим это на примере функции вычисления факториала. Хорошо известно, что 0!=1, 1!=1. А как вычислить величину n! для большого n? Если бы мы могли вычислить величину (n-1)!, то тогда мы легко вычислим n!, поскольку n!=n⋅(n-1)!. Но как вычислить (n-1)!? Если бы мы вычислили (n-2)!, то мы сможем вычисли и (n-1)!=(n-1)⋅(n-2)!. А как вычислить (n-2)!? Если бы… В конце концов, мы дойдем до величины 0!, которая равна 1. Таким образом, для вычисления факториала мы можем использовать значение факториала для меньшего числа. Это можно сделать и в программе на Питоне:

	
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))

Подобный прием (вызов функцией самой себя) называется рекурсией, а сама функция называется рекурсивной.

Рекурсивные функции являются мощным механизмом в программировании. К сожалению, они не всегда эффективны. Также часто использование рекурсии приводит к ошибкам. Наиболее распространенная из таких ошибок – бесконечная рекурсия, когда цепочка вызовов функций никогда не завершается и продолжается, пока не кончится свободная память в компьютере. Пример бесконечной рекурсии приведен в эпиграфе к этому разделу. Две наиболее распространенные причины для бесконечной рекурсии:

  1. Неправильное оформление выхода из рекурсии. Например, если мы в программе вычисления факториала забудем поставить проверку if n == 0, то factorial(0) вызовет factorial(-1), тот вызовет factorial(-2) и т. д.
  2. Рекурсивный вызов с неправильными параметрами. Например, если функция factorial(n) будет вызывать factorial(n), то также получится бесконечная цепочка.

Поэтому при разработке рекурсивной функции необходимо прежде всего оформлять условия завершения рекурсии и думать, почему рекурсия когда-либо завершит работу.

Ссылки на задачи доступны в меню слева. Эталонные решения теперь доступны на странице самой задачи.

Факториалы

Факториалы


Факториалы очень простые вещи. Это просто продукты, обозначенные восклицательным знаком. Например, «четырехфакториал» записывается как «4!» и означает 1234 = 24. В общем, n ! («энн факториал») означает произведение всех целых чисел. от 1 до ; то есть n ! = 123… .

(Для различных причин, 0! определяется равным 1, не 0. Запомните это сейчас: 0! = 1.)

Многие (большинство?) Калькуляторов может оценить факториалы для вас. Например, команда факториала доступно в меню «вероятность» на одном из моих калькуляторов:

Ищите «!» кнопку или обратитесь к руководству пользователя.

  • Упростить 12! Авторские права Элизабет Стапель 2004-2011 Все права защищены
  • 12! = 1234… О, черт возьми с этим. Где мой калькулятор …?

      12! = 4700

Когда начинаешь делать комбинации, перестановок и вероятностей, вы будете упрощать выражения, которые имеют факториалы в числителях и знаменателях. Например:

  • Упростите следующее:

    Я могу сделать это в своем калькуляторе:


    Я также могу работать с определение факториала:

      В любом случае 6! 4! = 30

Обратите внимание, как я смог отмените кучу цифр в предыдущей задаче.Это потому что того, как определяются факториалы, и это свойство может упростить вашу работу много.

  • Упростите следующее:

    Сразу могу отменить от факторов 1 через 14 это будет общим для обоих 17! и 14 !. Тогда я могу упростить то, что осталось, чтобы получить:

Обратите внимание, как я сократил то, что я должен был написать, оставив пробел («многоточие» или тройной период) в центре.Этот процесс отмены и пропуска станет удобен позже. (как в исчислении, где вы будете часто использовать эту технику), особенно когда вы имеете дело с выражениями, которые ваш калькулятор не может обработать. Например:

  • Упростите следующее:

    Мой калькулятор не умеет оценивать это для меня, поскольку я имею дело с переменными, а не числами. Больной придется упростить это вручную.Для этого я выпишу факториалы, используя достаточное количество факторов, чтобы получить то, что можно компенсировать. Мышление назад к «числам» задачи со словами, последовательные целые числа разделены на одну единицу, поэтому множители в произведении ( n + 2)! имеют вид:

    Вернувшись перечень факторов до « n 1 «, я создал список факторов, которые можно свести на нет:

Обратите внимание на то, как я обращался что отмена.Я достаточно расширил факториальные выражения, чтобы мог бы увидеть, где я мог бы отменить повторяющиеся факторы. Хотя у меня было понятия не имею, что n может быть, я все еще могу отменить. Сохраните эту технику в своем мозгу, потому что даже если он вам сейчас не нужен, вам почти наверняка понадобится это позже.


Для информации о поиске количество нулей в конце факториала (например, «Сколько нулей находятся в конце 23! после того, как вы умножите его? »), посмотрите на эту заметку.

Вверх | Вернуться к индексу

Цитируйте эту статью как:

Стапель, Елизавета. «Факториалы». Purplemath . Доступно по номеру
https://www.purplemath.com/modules/factorial.htm . Дата обращения [Дата] [Месяц] 2016 г.

Факториал: простое определение, примеры и распространение

Распределения вероятностей>

Состав:

  1. Что такое факториал?
  2. Что такое факторное распределение?

См. Также: Superfactorial: Определение (Sloane, Pickover’s)

Посмотрите видео, чтобы узнать, как вычислить факториалы.


Не можете посмотреть видео? Кликните сюда.

Факториалы (!) — это произведения всех целых чисел от 1 до n. Другими словами, возьмите число и умножьте на 1.

Например:

  • Если n равно 3, то 3! равно 3 x 2 x 1 = 6.
  • Если n равно 5, то 5! равно 5 x 4 x 3 x 2 x 1 = 120.

Это сокращенный способ записи чисел. Например, вместо 4700 вы можете написать 12! вместо этого (что составляет 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1).

Для чего в статистике используется факториал?

В алгебре вы, вероятно, встречали уродливые факториалы вроде (x — 10!) / (X + 9!). Не волнуйтесь; Вы не увидите ничего из этого в своем начальном классе статистики. Уф! только раз, когда вы их увидите, это для задач перестановки и комбинирования.

Уравнения выглядят так:

И это то, что вы можете ввести в свой калькулятор (или в Google!).

Статья по теме (из CalculusHowTo.com): Почему нулевой фактор равен единице?

Факторное распределение происходит, когда набор переменных является независимыми событиями. Другими словами, переменные вообще не взаимодействуют; Учитывая два события x и y, вероятность x не меняется при учете y. Следовательно, вероятность x при условии, что y произошло — P (x | y) — будет такой же, как P (x).

Факториальное распределение можно записать разными способами (Hinton, 2013; Olshausen, 2004):

  • р (х, у) = р (х) р (у)
  • p (x, y, z) = p (x) p (y) p (z)
  • p (x 1 , x 2 , x 3 , x 4 ) = p (x 1 ) P (x 2 ) p (x 3 ) p (x 4 )

В случае вектора вероятности значение точно такое же.То есть вектор вероятности из факторного распределения — это произведение вероятностей отдельных членов вектора.

Вы можете заметить отсутствие символа факториала (!) В любом из определений. Это потому, что распределение названо потому, что последовательные частоты являются факторными величинами, а не сами термины, являющиеся факториалами.

Определение факторного распределения

Для факторного распределения P (x, y) = P (x) P (y). Мы можем обобщить это более чем для двух переменных (Olshausen, 2004) и записать:

P (x 1 , x 2 ,…, x n ) = P (x 1 ) · P (x 2 ·… · P (x n ).

Это выражение можно также записать более кратко:

P (x 1 , x 2 ,… x n ) = Π i P (x i ).


Примеры факторного распределения

Нам нравится работать с факторными распределениями, потому что их статистику легко вычислить. В некоторых областях, таких как неврология, ситуации, лучше всего представленные сложными, трудноразрешимыми распределениями вероятностей, аппроксимируются факторными распределениями, чтобы воспользоваться этой простотой манипуляции.

Одним из примеров часто встречающегося факторного распределения является p-обобщенное нормальное распределение , представленное уравнением


Я не буду здесь вдаваться в значение этой формулы; Если вы хотите углубиться, не стесняйтесь читать об этом здесь. Но обратите внимание, что когда p = 2, это в точности нормальное распределение. Таким образом, нормальное распределение также является факториальным.

Гамма-функция (иногда называемая гамма-функцией Эйлера ) связана с факториалами по следующей формуле:

Γ (n) = (x — 1) !.

Другими словами, гамма-функция равна факториальной функции . Однако, хотя факториальная функция определена только для неотрицательных целых чисел, гамма может обрабатывать дроби, а также комплексные числа.

Многомерная гамма-функция (MGF) является расширением гамма-функции для нескольких переменных. В то время как гамма-функция может обрабатывать только один вход («x»), многомерная версия может обрабатывать многие. Обычно определяется как:

Список литературы

Абрамовиц, М.и Стегун, И. А. (ред.). «Гамма (факторная) функция» и «Неполная гамма-функция». §6.1 и 6.5 в Справочнике по математическим функциям с формулами, графиками и математическими таблицами, 9-е издание. New York: Dover, pp. 255-258 и 260-263, 1972.
Grötschel, M. et al. (Ред.) (2013). Онлайн-оптимизация крупномасштабных систем. Springer Science & Business Media.
Хинтон, Г. (2013). Лекция 1: Введение в машинное обучение и графические модели. Получено 28 декабря 2017 г. из: https: // www.cs.toronto.edu/~hinton/csc2535/notes/lec1new.pdf
Jordan, I. et al. (2001). Графические модели: основы нейронных вычислений. MIT Press.
Ольсхаузен, Б. (2004). Вероятностный букварь. Получено 27 декабря 2017 г. по адресу:
Получено с http://redwood.berkeley.edu/bruno/npb163/probability.pdf
Sinz, F. (2008). Характеристика p-обобщенного нормального распределения. Получено 27 декабря 2017 г. с сайта http://www.orga.cvss.cc/media/publications/SinzGerwinnBethge_2008.pdf, 27 декабря 2017 г.

. ————————————————— —————————-

Нужна помощь с домашним заданием или контрольным вопросом? С помощью Chegg Study вы можете получить пошаговые ответы на свои вопросы от эксперта в данной области.Ваши первые 30 минут с репетитором Chegg бесплатны!

Комментарии? Нужно опубликовать исправление? Пожалуйста, оставьте комментарий на нашей странице в Facebook .


Факториал (!) В математике и статистике

В математике символы, которые имеют определенное значение на английском языке, могут означать очень специализированные и разные вещи. Например, рассмотрим следующее выражение:

3!

Нет, мы не использовали восклицательный знак, чтобы показать, что нас волнуют три, и не следует читать последнее предложение с ударением.В математике выражение 3! читается как «трехфакториал» и на самом деле является сокращенным способом обозначить умножение нескольких последовательных целых чисел.

Поскольку в математике и статистике есть много мест, где нам нужно перемножать числа, факториал весьма полезен. Некоторые из основных мест, где он появляется, — это комбинаторика и исчисление вероятностей.

Определение

Определение факториала таково, что для любого положительного целого числа n факториал:

н ! = П Икс (П -1) Икс (П — 2) Икс.. . х 2 х 1

Примеры малых значений

Сначала мы рассмотрим несколько примеров факториала с небольшими значениями n :

  • 1! = 1
  • 2! = 2 х 1 = 2
  • 3! = 3 х 2 х 1 = 6
  • 4! = 4 х 3 х 2 х 1 = 24
  • 5! = 5 х 4 х 3 х 2 х 1 = 120
  • 6! = 6 х 5 х 4 х 3 х 2 х 1 = 720
  • 7! = 7 х 6 х 5 х 4 х 3 х 2 х 1 = 5040
  • 8! = 8 х 7 х 6 х 5 х 4 х 3 х 2 х 1 = 40320
  • 9! = 9 х 8 х 7 х 6 х 5 х 4 х 3 х 2 х 1 = 362880
  • 10! = 10 х 9 х 8 х 7 х 6 х 5 х 4 х 3 х 2 х 1 = 3628800

Как мы видим, факториал очень быстро становится очень большим.Что-то, что может показаться маленьким, например 20! на самом деле имеет 19 цифр.

Факториалы легко вычислить, но вычислить их может быть довольно утомительно. К счастью, во многих калькуляторах есть факторный ключ (ищите символ!). Эта функция калькулятора автоматизирует умножение.

Особый случай

Еще одно значение факториала, для которого стандартное определение выше не выполняется, — это нулевое значение факториала. Если мы будем следовать формуле, мы не получим никакого значения для 0 !.Не существует положительных целых чисел меньше 0. По нескольким причинам целесообразно определять 0! = 1. Факториал для этого значения особенно заметен в формулах для комбинаций и перестановок.

Более сложные вычисления

Имея дело с вычислениями, важно подумать, прежде чем мы нажимаем клавишу факториала на нашем калькуляторе. Чтобы вычислить такое выражение, как 100! / 98! Есть несколько способов сделать это.

Один из способов — использовать калькулятор, чтобы найти и 100! и 98 !, затем разделите одно на другое.Хотя это прямой способ расчета, с ним связаны некоторые трудности. Некоторые калькуляторы не могут обрабатывать выражения размером до 100! = 9,33262154 x 10 157 . (Выражение 10 157 — это научная запись, означающая, что мы умножаем на 1, а затем на 157 нулей.) Это число не только массивно, но и является лишь оценкой действительного значения 100!

Другой способ упростить выражение с помощью факториалов, подобных показанному здесь, вообще не требует калькулятора.Чтобы подойти к этой проблеме, нужно признать, что мы можем переписать 100! не как 100 х 99 х 98 х 97 х. . . x 2 x 1, но вместо этого как 100 x 99 x 98! Выражение 100! / 98! теперь становится (100 х 99 х 98!) / 98! = 100 х 99 = 9900.

Дизайн и обоснование CURRENT-OASIS 7: рандомизированное факторное исследование 2 x 2 по оценке оптимальных стратегий дозирования клопидогрела и аспирина у пациентов с острыми коронарными синдромами ST и без подъема сегмента ST, леченных с помощью стратегии ранней инвазии

Фон: Антитромбоцитарная терапия клопидогрелом и ацетилсалициловой кислотой (АСК) снижает частоту сердечно-сосудистых событий у пациентов с острыми коронарными синдромами (ОКС) ST и без подъема сегмента ST.Последние механистические и клинические данные показывают, что более высокие нагрузочные и поддерживающие дозы клопидогреля могут привести к более быстрому и большему подавлению тромбоцитов, что приводит к улучшению клинических результатов, но это еще предстоит официально оценить в рандомизированном исследовании с достаточной мощностью.

Цели: Оценить эффективность и безопасность (1) более высокой нагрузочной и начальной поддерживающей дозы клопидогреля по сравнению со стандартной схемой дозирования и (2) высокой дозы АСК по сравнению с низкой дозой АСК у пациентов с ST или без сегмента ST. -elevation ACS управляется с помощью стратегии ранней инвазии.

Дизайн: Многоцентровое, международное, рандомизированное, факторное исследование 2 x 2, в котором оценивается режим высоких доз клопидогрела (ударная доза 600 мг в 1-й день, затем 150 мг один раз в день в дни 2-7, а затем 75 мг один раз в день в дни 8-30. ) по сравнению со стандартной схемой приема (ударная доза 300 мг в день 1, затем 75 мг один раз в день в дни 2-30) и высокой дозой АСК (300-325 мг в день) по сравнению с низкой дозой АСК (75-100 мг в сутки). мг в день) у пациентов с ОКС ST или без подъема сегмента ST, которым назначена ранняя инвазивная стратегия.Сравнение доз клопидогрела проводится двойным слепым методом, а сравнение доз АСК — открытым. Первичный исход — это совокупность смерти от сердечно-сосудистых причин, (повторного) инфаркта миокарда или инсульта до 30-го дня. Первичным исходом безопасности является сильное кровотечение. Размер выборки составляет от 18 000 до 20 000 пациентов.

Выводы: Исследование CURRENT-OASIS 7 поможет определить оптимальные режимы дозирования клопидогреля и АСК у пациентов с ОКС ST и без подъема сегмента ST, получающих лечение с использованием стратегии ранней инвазии.

факторных дизайнов, основных эффектов и взаимодействий

факторных дизайнов, основных эффектов и взаимодействий Факториальные дизайны Введение

Схема:

— зачем мы их делаем
— язык
— Основные эффекты и взаимодействия
— Определения
— Графики
— Математический (ANOVA) подход
— Когда математика и график не совпадают


Факториальные планы — это планы, в которых задействовано более одного фактора (IV).В этом курсе мы будем иметь дело только с двумя факторами одновременно — так называемыми 2-ходовые конструкции.

— почему мы их делаем

— t-критерий позволяет сравнивать две группы — 2 разных уровня одного ИВ
— односторонний ANOVA позволяет сравнить несколько уровней одного IV
Проблема в том, что до сих пор мы застряли в использовании только одного IV.Это проблема, потому что мы редко думаем, что различия в DV просто связаны только одно. Обычно мы думаем, что все немного сложнее, что есть несколько вещей, связанных с любым человеческим поведением.


Есть три основных причины для использования 2-ходового дизайна.

— 2 процентных IV
— Для управления
— Критические эксперименты


2 представляющих интерес IV (факторов)

Это тот случай, если мы думаем, что есть две или более переменных, связанных к явлению, и мы хотим рассмотреть и то, и другое одновременно.Сюда мы можем увидеть, как все работает вместе, чтобы вызвать изменения. Возьмем к примеру мой интерес к тому, как общие знания влияют на запоминание. Общие знания состоит из 1) знания запоминаемого материала и 2) предыстории знания (знакомство с партнером). Я начал с одной проблемы и предложил для нашего одностороннего дизайна, который мы смотрим на знакомство. Как насчет того, если мы хотим изучать оба ИВ одновременно?

Рисуем в виде коробки

IV A : Общие знания из материала
IV B : Знакомство собеседников Знание того же материала Не разделяемые знания
Чужой человек Незнакомцы, вспоминающие общий материал Незнакомцы, вспоминающие разные материалы
Соседи по комнате Соседи по комнате запоминают общий материал Соседи по комнате запоминают другой материал

Для управления

Иногда нас действительно интересует один IV, но мы знаем, что другой IV (на основе теорий или предыдущих исследований) также имеет отношение к DV.Иногда мы включаем этот другой IV для контроля — 1) он обычно будет уменьшаться наш MSE и упростить поиск эффектов интересующего IV, и 2) мы можем быть уверены, что интересующий IV работает одинаково во всех ситуациях. представляет интерес.

1. Например, на основе работы Деборы Таннен и предыдущих работ у меня есть покончили с некоторыми студентами, у меня есть основания полагать, что мужчины и женщины может по-разному говорить о прошлом.Просто провожу эксперимент без внимание к полу может увеличить мою внутригрупповую изменчивость. Если некоторые мужчины и женщины разговаривают с незнакомцами, а мужчины и женщины различаются, тогда У меня будет большая изменчивость в этой группе. Если некоторые мужчины и некоторые женщины поговорить с их соседями по комнате, а мужчины и женщины отличаются, тогда у меня будет высокий изменчивость в этой группе. Однако, если я группирую по полу, я имеют меньшую внутригрупповую изменчивость. Мужчинам, разговаривающим с незнакомцем, придется низкая изменчивость внутри групп и т. д.Это упростит поиск эффект знакомства.

2. Кроме того, я могу быть уверен, что мужчины и женщины будут вести себя одинаково. в ответ на интересующую переменную.

Рисуем в виде коробки

IV A : Пол
IV B : Знакомство собеседников Самцы Самки
Чужой человек Незнакомцы мужского пола вспоминают Незнакомцы вспоминают
Соседи по комнате Соседи мужского пола вспоминают Соседи по комнате вспоминают

Критические эксперименты

Иногда нам везет, и мы достаточно сообразительны, чтобы сравнивать с теориями. в одном эксперименте, используя каждую теорию, чтобы предложить одну IV.Пример — Чи работа над развитием памяти. Когда дети становятся старше, они могут помнить более. Теория созревания говорит, что это связано с развитием мозг и способность обрабатывать информацию. Это напрямую связано с возраст. Теория расширения базы знаний предполагает, что, как вы знаете, вы можете узнать больше. Обычно это связано с возрастом. Но поскольку это не прямо привязанный к возрасту, это говорит о том, что у вас могут быть маленькие дети, которые являются экспертами в данной области и некоторых взрослых, которые не являются экспертами в этой области.Этот это то, что Чи сделал в области шахмат.

Рисуем в виде коробки

IV A : Возраст
IV B : Шахматная экспертиза Молодой Студенты
Новички Молодые новички Новички студенческого возраста
Эксперты Молодые специалисты Эксперты студенческого возраста

Для DV, Чи измерил способность запоминать расположение шахмат. фигуры на шахматной доске и способность выполнять простые задания на память.

Это хорошо противопоставляет теории друг другу, и одна из них, скорее всего, будет быть отклоненным.

— язык

IV (независимая переменная) = фактор = лечение (может быть два или больше в факторном дизайне)

уровней (каждый IV имеет два или более уровней)

Ячейки (специфическое слияние уровней всех IV)

Самый простой случай — это конструкция 2 x 2.

Рисуем в виде коробки

IV А
IV B А = 1 А = 2
A1, B1 A2, B1
A1, B2 A2, B2

Это простейший вариант двухсторонней конструкции,
каждый IV имеет два уровня.
IV A имеет 1 и 2.
IVB имеет 1 и 2.
Есть 4 ячейки: A1B1, A1B2, A2B1, A2B2

Это дизайн 2 x 2. 2×2 многое расскажет о дизайне:
есть два числа, поэтому есть 2 IV
первое число — 2, поэтому первый IV имеет 2 уровня
второе число — 2, поэтому второй IV имеет 2 уровня
2 x 2 = 4, и это количество ячеек
Дизайн 2×3
есть два числа, поэтому есть 2 IV
первое число — 2, поэтому первый IV имеет 2 уровня
второе число — 3, поэтому второй IV имеет 3 уровня
2 x3 = 6, а это количество ячеек
Дизайн 2x2x3
есть три числа, поэтому есть 3 IV
первое число — 2, поэтому первый IV имеет 2 уровня
второе число — 2, поэтому второй IV имеет 2 уровня
третье число — 3, поэтому третий IV имеет 3 уровня
2 x 2 x 3 = 12, и это количество ячеек


— Основные эффекты и взаимодействия

При факторном дизайне существует два класса эффектов, которые мы интересуются: Основные эффекты и взаимодействия

— Существует возможность основного эффекта, связанного с каждым фактором.

— Существует возможность взаимодействия, связанного с каждым отношением среди факторов. (В двухстороннем дизайне существует только одно отношение: A х Б)

В двухстороннем исполнении

— Основной эффект фактора А (1-й IV): общая разница между уровнями из A, который согласуется на всех уровнях B. (Разница здесь в основном относится к направлению, а не к размеру разницы).

— Основной эффект фактора B (2-й IV): общая разница между уровнями B, который согласуется на всех уровнях A.(Разница здесь в основном относится к направлению).

— Взаимодействие AxB: различия между уровнями одного фактора зависят на уровнях на другом Факторе. (Разница здесь относится к направлению и размер эффекта). Это означает, например, что некоторая разница между уровнями фактора A может выполняться на одном уровне B, но не на другом уровне B; или что разница между двумя уровнями А может быть намного сильнее на одном уровне B, чем на другом уровне B, даже если это в том же направлении.

Самый простой способ найти основные эффекты и взаимодействия — это построить график. Сотовые средства.

В каждой ячейке я дал вам ячейку Среднее = M A, B

IV А
IV B А = 1 А = 2
M 1,1 = 10 M 2,1 = 15
M 1,2 = 15 M 2,2 = 20


— Определения

— Основной эффект фактора А (1-й IV): общая разница между уровнями A, который согласуется на всех уровнях B.(Разница здесь в основном относится к направлению).

— Основной эффект фактора B (2-й IV): общая разница между уровнями B, что согласуется на всех уровнях A. (Разница здесь в основном относится к направлению).

— Взаимодействие AxB: различия между уровнями одного фактора зависят на уровнях на другом Факторе. (Разница здесь относится к направлению и размер эффекта).

— Графики Посмотрите на примеры, выполненные в классе

ME из A: разница между A1 и A2 в одном направлении для обоих уровни B.

ME из B: разница между B1 и B2 в одном направлении для обоих уровни А.

Взаимодействие: наклоны линий не параллельны.

— Математический подход (ANOVA) Определения

— Основной эффект фактора А (1-й IV): общая разница между уровнями из А

— Основной эффект фактора B (2-й IV): общая разница между уровнями из B

— Взаимодействие AxB: различия между уровнями одного фактора зависят на уровнях на другом Факторе.

** Обратите внимание на то, чего не хватает: нет никаких сомнений в том, что ME являются Согласованными .

** Обратите внимание, что не меняется: определение взаимодействия является постоянным.

Новые условия

Для вынесения суждений, необходимых для определения МЕ и взаимодействий со стороны математика, я должен ввести еще несколько языков.

Первая информация: Предельные средства : Предельные средства — это средние значения для одного уровня независимой переменной, усредненные по всему уровню другой IV.Таким образом, у вас есть предельное среднее значение с A = 1, которое является средним для всех, кто получил оценку A на первом уровне, независимо от того, испытал B на 1 или 2. В дополнение к предельным средним для каждого уровня обоих значений IV у вас также есть общее среднее значение, которое является средним по весь эксперимент.

IV А .
IV B А = 1 А = 2 маргинальные средства
M 1,1 = 10 M 2,1 = 15 M B = 1 = 12.5
M 1,2 = 15 M 2,2 = 20 M B = 2 = 17,5
маржинальное Средство M A = 1 = 12,5 M A = 2 = 17,5 М Т = 15.0

Теперь рассмотрим три вещи, которые мы ищем:

ME of A: есть ли большая разница (по сравнению с групповой изменчивостью) среди маргинальных средств?

ME of B: есть ли большая разница (по сравнению с групповой изменчивостью) среди маргинальных средств B?

Взаимодействие: выбирая взаимодействие, вы должны знать, факторы аддитивны. Если добавка, никакого взаимодействия; если неаддитивный, взаимодействие.

Аддитив означает, что вы можете предсказать средние значения ячейки на основе предельного значения. средства. Вот простой способ сделать это: посмотрите на 3 значения ячейки. Крышка четвертая ячейка означает. в приведенном выше примере крышка M 2,2 = 20. Теперь попробуйте предсказать это на основе других трех ячеек. На уровне B = 1, переход от A = 1 к A = 2 добавляет 5 к среднему значению ячейки. Таким образом, мы должны добавить 5 к среднее значение ячейки для B = 2, A = 1, чтобы получить среднее значение ячейки для B = 2, A = 2. Оказывается работать на этот раз.Вы можете предсказать, и, таким образом, вещи складываются, и есть нет взаимодействия.

— Когда математика и график не согласуются

Как правило, верьте тому, что говорит нет .

Если график выглядит так, будто что-то происходит, но математика (ANOVA) говорит «нет», тогда верьте математике. ANOVA проверяет не только посмотреть, есть ли разница, но разница большая по сравнению с к ж / я групповой изменчивости.

Если математика показывает, что есть главный эффект, но глядя на график, что не существует последовательного основного эффекта , тогда ваш главный эффект это артефакт взаимодействия. (Обратите внимание, чтобы это произошло, взаимодействие должно и будет.) Артефакт: нечто созданное. В этот случай, созданный взаимодействием. Это означает, что он создан, потому что эффекты одного Фактора идут в разных направлениях на разных уровнях другого фактора — но один из них больше другого и раздвигает среднее (крайнее среднее) в одном направлении.В этом случае, когда вы смотрите на предельные средние, есть общая разница, но если вы посмотрите на ячейки, это не согласуется. Истинное определение основной эффект — постоянная общая разница, но ANOVA только выглядит в общей части. Вы, исследователь, должны быть обеспокоены тем, что основной эффект последователен. Вы получаете артефакты только при взаимодействии.

Упражнение на Python: вычислите факториал числа

Функции Python: Упражнение 5 с решением

Напишите функцию Python для вычисления факториала числа (неотрицательное целое число).Функция принимает число в качестве аргумента.

Пример раствора-1:

Код Python:

  def factorial (n):
    если n == 0:
        возврат 1
    еще:
        вернуть n * факториал (n-1)
n = int (input ("Введите число для вычисления факториала:"))
печать (факториал (n))
 
 

Пример вывода:

 Введите число для вычисления факториала: 4
24
 

Изображение:

Схема:


Визуализировать выполнение кода Python:

Следующий инструмент визуализирует, что делает компьютер, шаг за шагом, когда он выполняет указанную программу:

Пример раствора-2:

  • Использовать рекурсию.
  • Если n меньше или равно 1, вернуть 1.
  • В противном случае верните произведение n на факториал n — 1.
  • Вывести сообщение об ошибке, если n — отрицательное число или число с плавающей запятой.

Код Python:

  def factorial (n):
  если нет ((n> = 0) и (n% 1 == 0)):
    return ("Число не может быть отрицательным или с плавающей запятой!")
  вернуть 1, если n == 0, иначе n * факториал (n - 1)

print ("\ nФакториал 5:", факториал (5))
print ("\ nФакториал -12:", факториал (-12))
print ("\ nФакториал 1.22: ", факториал (1.22))
print ("\ nFactorial of 100:", factorial (100))
 
 

Пример вывода:

 Факториал 5: 120

Факториал -12: Число не может быть отрицательным или с плавающей запятой!

Факториал 1,22: Число не может быть отрицательным или с плавающей запятой!

Факториал 100: 9332621544394415268169562667004
9682643816214685929638952175999932298941463976156518286253697

72237582511852104000000000000000000000000

Схема:


Визуализировать выполнение кода Python:

Следующий инструмент визуализирует, что делает компьютер, шаг за шагом, когда он выполняет указанную программу:

Редактор кода Python:

Есть другой способ решить эту проблему? Разместите свой код (и комментарии) через Disqus.

Предыдущая: Напишите программу Python для переворота строки.
Далее: Напишите функцию Python, чтобы проверить, попадает ли число в заданный диапазон.

Из-за определенных проблем с обслуживанием наших серверов и финансовых ограничений мы временно закрываем нашу систему комментариев. Мы можем возобновить это в ближайшем будущем.

math — Математические функции — документация Python 3.9.7


Этот модуль обеспечивает доступ к математическим функциям, определенным C стандарт.

Эти функции нельзя использовать с комплексными числами; использовать функции то же имя из модуля cmath , если вам требуется поддержка сложных числа. Различие между функциями, поддерживающими комплексные числа, и те, которые не делаются, поскольку большинство пользователей не хотят учиться так много математика, необходимая для понимания комплексных чисел. Получение исключения вместо сложного результата позволяет раньше обнаруживать неожиданный комплекс число, используемое в качестве параметра, чтобы программист мог определить, как и почему он был создан в первую очередь.

Этот модуль предоставляет следующие функции. За исключением случаев, когда явно в противном случае все возвращаемые значения являются числами с плавающей запятой.

Теоретико-числовые функции и функции представлений

математика. потолок ( x )

Вернуть потолок x , наименьшее целое число, большее или равное x . Если x не является плавающим, делегирует x .__ ceil __ () , который должен вернуть Интегральное значение .

математика. гребень ( n , k )

Вернуть количество способов выбора k элементов из n элементов без повторения и без заказа.

Оценивается как n! / (k! * (n - k)!) , когда k <= n и вычисляет к нулю, когда k> n .

Также называется биномиальным коэффициентом, потому что он эквивалентен к коэффициенту k-го члена в полиномиальном разложении выражение (1 + x) ** n .

Вызывает ошибку TypeError , если какой-либо из аргументов не является целым числом. Вызывает ValueError , если любой из аргументов отрицательный.

математика. копия ( x , y )

Вернуть число с плавающей запятой с величиной (абсолютным значением) x , но со знаком л . На платформах, поддерживающих нули со знаком, copysign (1.0, -0.0) возвращает -1,0 .

математика. фабрики ( x )

Вернуть абсолютное значение x .

математика. факториал ( x )

Вернуть факториал x как целое число. Вызывает ошибку ValueError , если x не является целым или отрицательный.

Не рекомендуется, начиная с версии 3.9: прием чисел с плавающей запятой с целыми значениями (например, 5.0 ) устарел.

математика. пол ( x )

Возвращает нижний предел x , наибольшее целое число, меньшее или равное x . Если x не является плавающим, делегирует x .__ floor __ () , который должен вернуть Интегральное значение .

математика. fmod ( x , y )

Вернуть fmod (x, y) , как определено библиотекой платформы C.Обратите внимание, что Выражение Python x% y может не возвращать тот же результат. Намерение C стандартным является то, что fmod (x, y) должно быть точно (математически; до бесконечности точности) равный x - n * y для некоторого целого числа n , так что результат имеет тот же знак, что и x , и величина меньше абс (y) . Python x% y вместо этого возвращает результат со знаком y и может быть неточно вычислимым для аргументов с плавающей запятой.Например, fmod (-1e-100, 1e100) это -1e-100 , но результат Python -1e-100% 1e100 будет 1e100-1e-100 , что не может быть представлен в точности как поплавок и округляется до удивительного 1e100 . Для по этой причине функция fmod () обычно предпочтительнее при работе с float, тогда как Python x% y предпочтительнее при работе с целыми числами.

математика. frexp ( x )

Вернуть мантиссу и показатель степени x как пару (m, e) . м - поплавок и e - целое число, такое что x == m * 2 ** e точно. Если x равно нулю, возвращает (0,0, 0) , иначе 0,5 <= abs (m) <1 . Это используется, чтобы «выбрать отдельно »внутреннее представление поплавка портативным способом.

математика. fsum ( итерация )

Вернуть точную сумму значений с плавающей запятой в итерируемом объекте. Избегает потеря точности из-за отслеживания нескольких промежуточных частичных сумм:

 >>> сумма ([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
0,9999999999999999
>>> fsum ([. 1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
1.0
 

Точность алгоритма зависит от арифметических гарантий IEEE-754 и типичный случай, когда режим округления половинный. На некоторых не-Windows сборки, базовая библиотека C использует сложение с расширенной точностью и может иногда дважды округляют промежуточную сумму, в результате чего она младший значащий бит.

Для дальнейшего обсуждения и двух альтернативных подходов см. Поваренную книгу ASPN. рецепты точного суммирования с плавающей запятой.

математика. gcd ( * целые числа )

Возвращает наибольший общий делитель указанных целочисленных аргументов. Если какой-либо из аргументов отличен от нуля, то возвращаемое значение является наибольшим. положительное целое число, которое является делителем всех аргументов. Если все аргументы равны нулю, то возвращается значение 0 . gcd () без аргументов возвращает 0 .

Изменено в версии 3.9: Добавлена ​​поддержка произвольного количества аргументов.Раньше всего два аргументы были поддержаны.

математика. isclose ( a , b , * , rel_tol = 1e-09 , abs_tol = 0,0 )

Вернуть Истина , если значения a и b близки друг к другу и Неверно иначе.

Считаются ли два значения близкими или нет, определяется в соответствии с даны абсолютные и относительные допуски.

rel_tol - относительный допуск - это максимально допустимая разница. между a и b относительно большего абсолютного значения a или b . Например, чтобы установить допуск в 5%, передайте rel_tol = 0,05 . По умолчанию допуск - 1e-09 , что гарантирует, что два значения совпадают. с точностью до 9 десятичных цифр. rel_tol должен быть больше нуля.

abs_tol - минимальный абсолютный допуск - полезен для сравнений рядом с нуль. abs_tol должен быть не меньше нуля.

Если ошибок не возникает, результатом будет: абс (a-b) <= max (rel_tol * max (abs (a), abs (b)), abs_tol) .

Специальные значения IEEE 754: NaN , inf и -inf будут обрабатывается в соответствии с правилами IEEE. В частности, NaN не считается близко к любому другому значению, включая NaN . inf и -inf только считается близким к себе.

См. Также

PEP 485 - Функция проверки примерного равенства

математика. исфинит ( x )

Возврат Истина , если x не является ни бесконечностью, ни NaN, и Неверно иначе. (Обратите внимание, что 0,0 - это , считающееся конечным.)

математика. isinf ( x )

Вернуть Истинно , если x - положительная или отрицательная бесконечность, и Неверно иначе.

математика. иснан ( x )

Вернуть Истина , если x - NaN (не число), и Ложь в противном случае.

математика. isqrt ( n )

Вернуть квадратный корень целого неотрицательного целого числа n . Это пол из точного квадратного корня из n или, что эквивалентно, наибольшего целого числа a таким образом, что a ² ≤ n .

Для некоторых приложений может быть удобнее иметь наименьшее целое число a таким образом, что n a ², или, другими словами, потолок точный квадратный корень из n . Для положительного n это можно вычислить, используя a = 1 + isqrt (n - 1) .

математика. lcm ( * целые числа )

Возвращает наименьшее общее кратное указанных целочисленных аргументов.Если все аргументы отличны от нуля, то возвращаемое значение является наименьшим. положительное целое число, кратное всем аргументам. Если какой-либо из аргументов равно нулю, то возвращается значение 0 . lcm () без аргументов возвращает 1 .

математика. ldexp ( x , и )

Возврат x * (2 ** i) . По сути, это обратная функция frexp () .

математика. мод ( x )

Вернуть дробную и целую части x . Оба результата несут знак размером x и являются плавающими.

математика. далее после ( x , y )

Возвращает следующее значение с плавающей запятой после x по направлению к y .

Если x равно y , вернуть y .

Примеры:

  • математ.nextafter (x, math.inf) идет вверх: в сторону положительной бесконечности.

  • math.nextafter (x, -math.inf) идет вниз: в сторону минус бесконечности.

  • math.nextafter (x, 0.0) стремится к нулю.

  • math.nextafter (x, math.copysign (math.inf, x)) уходит от нуля.

См. Также math.ulp () .

математика. пермь ( n , k = нет )

Вернуть количество способов выбора k элементов из n элементов без повторов и по порядку.

Оценивается как n! / (п - к)! , когда k <= n и оценивает к нулю, когда k> n .

Если k не указан или None, то k по умолчанию n и функция возвращает n! .

Вызывает ошибку TypeError , если какой-либо из аргументов не является целым числом. Вызывает ValueError , если любой из аргументов отрицательный.

математика. prod ( итеративный , * , start = 1 )

Вычислить произведение всех элементов на входе итерация . По умолчанию начальное значение для продукта - 1 .

Когда итерация пуста, вернуть начальное значение. Эта функция предназначен специально для использования с числовыми значениями и может отклонять нечисловые типы.

математика. остаток ( x , y )

Вернуть остаток в стиле IEEE 754 x относительно y .Для конечное x и конечное ненулевое y , это разница x - n * y , где n - ближайшее целое число к точному значению частного x / y . Если x / y находится точно посередине между двумя последовательными целыми числами, ближайшее , четное целое число используется для n . Остаток r = остаток (x, y) , таким образом, всегда удовлетворяет условию abs (r) <= 0,5 * abs (y) .

Особые случаи соответствуют IEEE 754: в частности, остаток (x, math.inf) является x для любых конечных x и остатка (x, 0) и остаток (math.inf, x) вызывает ValueError для любых не-NaN x . Если результат операции с остатком равен нулю, этот ноль будет иметь тот же знак, что и x .

На платформах, использующих двоичные числа с плавающей запятой IEEE 754, результат этого операция всегда точно представима: ошибка округления не вводится.

математика. усечение ( x )

Вернуть Действительное значение x , усеченное до Целое число (обычно целое). Делегаты x .__ trunc __ () .

математика. ulp ( x )

Вернуть значение младшего бита числа с плавающей запятой x :

  • Если x - NaN (не число), верните x .

  • Если x отрицательное, вернуть ulp (-x) .

  • Если x является положительной бесконечностью, верните x .

  • Если x равно нулю, вернуть наименьшее положительное значение. денормализованное представимое число с плавающей запятой (меньше минимального положительного нормализованное с плавающей запятой, sys.float_info.min ).

  • Если x равно наибольшему положительному представимому веществу с плавающей запятой, вернуть значение младшего бита x , так что первый float меньше x составляет x - ulp (x) .

  • В противном случае ( x - положительное конечное число) вернуть значение наименьшего значащий бит x , так что первое число с плавающей запятой больше x равно x + ulp (x) .

ULP означает «Единица на последнем месте».

См. Также math.nextafter () и sys.float_info.epsilon .

Обратите внимание, что frexp () и modf () имеют другой шаблон вызова / возврата чем их эквиваленты в C: они принимают единственный аргумент и возвращают пару значения, вместо того, чтобы возвращать их второе возвращаемое значение через "output" параметр ’(в Python такого нет).

Для функций ceil () , floor () и modf () обратите внимание, что все числа с плавающей запятой достаточно большой величины являются точными целыми числами. Поплавки Python обычно несут не более 53 бита точности (такая же, как у платформа C двойного типа), в этом случае любой поплавок x с abs (x)> = 2 ** 52 обязательно не имеет дробных битов.

Степенные и логарифмические функции

математика. эксп. ( x )

Возврат e в степени x , где e = 2,718281… это база натуральных логарифмов. Обычно это более точно, чем математика . E ** x или pow (math.e, x) .

математика. экспм1 ( x )

Возврат e в степени x , минус 1. Здесь e - основание натурального логарифмы.Для маленьких поплавков x вычитание в exp (x) - 1 может привести к значительной потере точности; expm1 () функция предоставляет способ вычислить это количество с полной точностью:

 >>> из математического импорта exp, expm1
>>> exp (1e-5) - 1 # дает результат с точностью до 11 разряда
1.0000050000069649e-05
>>> expm1 (1e-5) # результат с полной точностью
1.0000050000166668e-05
 
математика. журнал ( x [, основание ])

С одним аргументом верните натуральный логарифм x (с основанием e ).

С двумя аргументами вернуть логарифм x к заданному основанию , рассчитывается как log (x) / log (base) .

математика. log1p ( x )

Вернуть натуральный логарифм 1 + x (основание e ).В результат рассчитывается с точностью до x , близких к нулю.

математика. log2 ( x )

Вернуть логарифм по основанию 2 x . Обычно это более точно, чем журнал (x, 2) .

См. Также

int.bit_length () возвращает количество битов, необходимых для представления целое число в двоичном формате, исключая знак и ведущие нули.

математика. лог10 ( x )

Вернуть десятичный логарифм x . Обычно это более точно чем log (x, 10) .

математика. pow ( x , y )

Возврат x в степени y . Далее следуют исключительные случаи Приложение «F» стандарта C99, насколько это возможно. Особенно, pow (1.0, x) и pow (x, 0.0) всегда возвращать 1.0 , даже когда x - это ноль или NaN. Если и x , и y конечны, x отрицательно, а y не является целым числом, тогда pow (x, y) не определено, и вызывает ValueError .

В отличие от встроенного оператора ** , math.pow () преобразует оба его аргументы для типа float . Используйте ** или встроенный pow () функция для вычисления точных целочисленных степеней.

математика. sqrt ( x )

Возвратите квадратный корень из x .

Тригонометрические функции

математика. acos ( x )

Вернуть арккосинус x в радианах. Результат находится между 0 и пи .

математика. asin ( x )

Вернуть арксинус x в радианах.Результат находится между -pi / 2 и пи / 2 .

математика. атан ( x )

Вернуть арктангенс x в радианах. Результат находится между -pi / 2 и пи / 2 .

математика. atan2 ( y , x )

Вернуть atan (y / x) в радианах. Результат находится между -pi и pi .Вектор в плоскости от начала координат до точки (x, y) составляет этот угол с положительной осью X. Смысл atan2 () в том, что признаки обоих ему известны входные данные, поэтому он может вычислить правильный квадрант для угла. Например, atan (1) и atan2 (1, 1) оба равны pi / 4 , но atan2 (-1, -1) равно -3 * pi / 4 .

математика. cos ( x )

Вернуть косинус x радиан.

математика. расстояние ( p , q )

Вернуть евклидово расстояние между двумя точками p и q , каждая заданная как последовательность (или итерация) координат. Две точки должен иметь такой же размер.

Примерно эквивалентно:

 sqrt (сумма ((px - qx) ** 2,0 для px, qx в zip (p, q)))
 
математика. гипотеза ( * координаты )

Вернуть евклидову норму, sqrt (сумма (x ** 2 для x в координатах)) .Это длина вектора от начала координат до точки задается координатами.

Для двумерной точки (x, y) это эквивалентно вычислению гипотенуза прямоугольного треугольника по теореме Пифагора, sqrt (x * x + y * y) .

Изменено в версии 3.8: Добавлена ​​поддержка n-мерных точек. Раньше только двое размерный случай был поддержан.

математика. sin ( x )

Вернуть синус x радиан.

математика. желто-коричневый ( x )

Вернуть тангенс x радиан.

Угловое преобразование

математика. градуса ( x )

Преобразование угла x из радианов в градусы.

математика. радианы ( x )

Преобразование угла x из градусов в радианы.

Гиперболические функции

Гиперболические функции являются аналогами тригонометрических функций, основанных на гиперболах вместо кружков.

математика. acosh ( x )

Вернуть обратный гиперболический косинус x .

математика. asinh ( x )

Вернуть обратный гиперболический синус x .

математика. атан ( x )

Вернуть арктангенс гиперболического значения x .

математика. cosh ( x )

Вернуть гиперболический косинус x .

математика. sinh ( x )

Вернуть гиперболический синус x .

математика. коричневый ( x )

Вернуть гиперболический тангенс x .

Специальные функции

математика. erf ( x )

Вернуть функцию ошибки в х .

Функцию erf () можно использовать для вычисления традиционных статистических такие функции, как кумулятивное стандартное нормальное распределение:

 def phi (x):
    'Кумулятивная функция распределения для стандартного нормального распределения'
    return (1.0 + erf (x / sqrt (2.0))) / 2.0
 
математика. erfc ( x )

Вернуть дополнительную функцию ошибок при x . Дополнительная ошибка функция определяется как 1.0 - erf (x) . Он используется для больших значений x , где вычитание от одного вызовет потерю значимости.

математика. гамма ( x )

Вернуть функцию гаммы в х .

математика. lgamma ( x )

Вернуть натуральный логарифм абсолютного значения гаммы. функция x .

Константы

математика. пи

Математическая константа π = 3,141592…, с доступной точностью.

математика. e

Математическая константа e = 2,718281…, с доступной точностью.

математика. тау

Математическая константа τ = 6,283185…, с доступной точностью. Тау - это постоянная окружности, равная 2 π , отношение длины окружности к его радиус. Чтобы узнать больше о Тау, посмотрите видео Ви Харта Pi is (still) Неправильно, и начни праздновать Тау день, съев в два раза больше пирога!

математика. инф

Положительная бесконечность с плавающей запятой.(Для отрицательной бесконечности используйте -math.inf .) Эквивалент вывода float ('inf') .

математика. нан

Значение с плавающей запятой, «не число» (NaN). Эквивалентно выходу поплавок ('nan') .

Детали реализации CPython: Модуль math состоит в основном из тонких оберток вокруг платформы C. математические библиотечные функции. Поведение в исключительных случаях соответствует Приложению F к стандарт C99, где это необходимо.Текущая реализация повысит ValueError для недопустимых операций, таких как sqrt (-1.0) или log (0.0) (где Приложение F C99 рекомендует сигнализировать о недопустимой операции или делении на ноль), и OverflowError для результатов, которые переполняются (например, эксп. (1000,0) ). NaN не будет возвращено ни одной из функций. выше, если только один или несколько входных аргументов не были NaN; в этом случае, большинство функций вернут NaN, но (опять же после приложения F C99) там есть некоторые исключения из этого правила, например pow (float ('nan'), 0.0) или гипотеза (float ('nan'), float ('inf')) .

Обратите внимание, что Python не пытается отличить сигнальные NaN от тихие NaN, и поведение для передачи сигналов NaN остается неопределенным. Типичное поведение - рассматривать все NaN, как если бы они были тихими.

Author: alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *