Как найти сумму факториалов до 100

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

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

Ниже представлены таблицы с факториалами чисел от 1 до 20 (точные значения) и от 21 до 100 (приближенные значения).

  • 1. Факториалы чисел от 1 до 20

  • 2. Факториалы чисел от 21 до 100

1. Факториалы чисел от 1 до 20

Факториал числа n
(n!)
Значение
1! 1
2! 2
3! 6
4! 24
5! 120
6! 720
7! 5040
8! 40320
9! 362880
10! 3628800
11! 39916800
12! 479001600
13! 6227020800
14! 87178291200
15! 1307674368000
16! 20922789888000
17! 355687428096000
18! 6402373705728000
19! 121645100408832000
20! 2432902008176640000

microexcel.ru

2. Факториалы чисел от 21 до 100

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

Факториал числа n
(n!)
Приближенное значение
21! 5,10909 ⋅ 1019
22! 1,124 ⋅ 1021
23! 2,5852 ⋅ 1022
24! 6,20448 ⋅ 1023
25! 1,55112 ⋅ 1025
26! 4,03291 ⋅ 1026
27! 1,08889 ⋅ 1028
28! 3,04888 ⋅ 1029
29! 8,84176 ⋅ 1030
30! 2,65253 ⋅ 1032
31! 8,22284 ⋅ 1033
32! 2,63131 ⋅ 1035
33! 8,68332 ⋅ 1036
34! 2,95233 ⋅ 1038
35! 1,03331 ⋅ 1040
36! 3,71993 ⋅ 1041
37! 1,37638 ⋅ 1043
38! 5,23023 ⋅ 1044
39! 2,03979 ⋅ 1046
40! 8,15915 ⋅ 1047
41! 3,34525 ⋅ 1049
42! 1,40501 ⋅ 1051
43! 6,04153 ⋅ 1052
44! 2,65827 ⋅ 1054
45! 1,19622 ⋅ 1056
46! 5,50262 ⋅ 1057
47! 2,58623 ⋅ 1059
48! 1,24139 ⋅ 1061
49! 6,08282 ⋅ 1062
50! 3,04141 ⋅ 1064
51! 1,55112 ⋅ 1066
52! 8,06582 ⋅ 1067
53! 4,27488 ⋅ 1069
54! 2,30844 ⋅ 1071
55! 1,26964 ⋅ 1073
56! 7,10999 ⋅ 1074
57! 4,05269 ⋅ 1076
58! 2,35056 ⋅ 1078
59! 1,38683 ⋅ 1080
60! 8,32099 ⋅ 1081
61! 5,0758 ⋅ 1083
62! 3,147 ⋅ 1085
63! 1,98261 ⋅ 1087
64! 1,26887 ⋅ 1089
65! 8,24765 ⋅ 1090
66! 5,44345 ⋅ 1092
67! 3,64711 ⋅ 1094
68! 2,48004 ⋅ 1096
69! 1,71122 ⋅ 1098
70! 1,1979 ⋅ 10100
71! 8,5048 ⋅ 10101
72! 6,1234 ⋅ 10103
73! 4,4701 ⋅ 10105
74! 3,3079 ⋅ 10107
75! 2,4809 ⋅ 10109
76! 1,8855 ⋅ 10111
77! 1,4518 ⋅ 10113
78! 1,1324 ⋅ 10115
79! 8,9462 ⋅ 10116
80! 7,1569 ⋅ 10118
81! 5,7971 ⋅ 10120
82! 4,7536 ⋅ 10122
83! 3,9455 ⋅ 10124
84! 3,3142 ⋅ 10126
85! 2,8171 ⋅ 10128
86! 2,4227 ⋅ 10130
87! 2,1078 ⋅ 10132
88! 1,8548 ⋅ 10134
89! 1,6508 ⋅ 10136
90! 1,4857 ⋅ 10138
91! 1,352 ⋅ 10140
92! 1,2438 ⋅ 10142
93! 1,1568 ⋅ 10144
94! 1,0874 ⋅ 10146
95! 1,033 ⋅ 10148
96! 9,9168 ⋅ 10149
97! 9,6193 ⋅ 10151
98! 9,4269 ⋅ 10153
99! 9,3326 ⋅ 10155
100! 9,3326 ⋅ 10157

microexcel.ru

Онлайн калькуляторы

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

Справочник

Основные формулы, таблицы и теоремы для учащихся. Все что нужно, чтобы сделать домашнее задание!

Заказать решение

Не можете решить контрольную?!
Мы поможем! Более 20 000 авторов выполнят вашу работу от 100 руб!

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

Понятие факториала определено только для целых неотрицательных чисел.

Принято считать, что 0!=1.

Таблица факториалов натуральных чисел от 1 до 50

Приведем точные значения факториалов натуральных чисел от 1 до 50

Так как факториал является быстро растущей функцией, т.е его значения начиная с некоторого n очень велики, то в математических расчетах удобно пользоваться следующими значениями факториала, которые собраны в следующей таблице для чисел от 1 до 100:

Понравился сайт? Расскажи друзьям!

Таблица значений факториала от 0 до 100

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 39916800
12 479001600
13 6227020800
14 87178291200
15 1307674368000
16 20922789888000
17 355687428096000
18 6402373705728000
19 121645100408832000
20 2432902008176640000
21 51090942171709400000
22 1124000727777610000000
23 25852016738885000000000
24 620448401733239000000000
25 15511210043331000000000000
26 403291461126606000000000000
27 10888869450418400000000000000
28 304888344611714000000000000000
29 8841761993739700000000000000000
30 265252859812191000000000000000000
31 8222838654177920000000000000000000
32 263130836933694000000000000000000000
33 8683317618811890000000000000000000000
34 295232799039604000000000000000000000000
35 10333147966386100000000000000000000000000
36 371993326789901000000000000000000000000000
37 13763753091226300000000000000000000000000000
38 523022617466601000000000000000000000000000000
39 20397882081197400000000000000000000000000000000
40 815915283247898000000000000000000000000000000000
41 33452526613163800000000000000000000000000000000000
42 1405006117752880000000000000000000000000000000000000
43 60415263063373800000000000000000000000000000000000000
44 2658271574788450000000000000000000000000000000000000000
45 119622220865480000000000000000000000000000000000000000000
46 5502622159812090000000000000000000000000000000000000000000
47 258623241511168000000000000000000000000000000000000000000000
48 12413915592536100000000000000000000000000000000000000000000000
49 608281864034268000000000000000000000000000000000000000000000000
50 30414093201713400000000000000000000000000000000000000000000000000
51 1551118753287380000000000000000000000000000000000000000000000000000
52 80658175170943900000000000000000000000000000000000000000000000000000
53 4274883284060020000000000000000000000000000000000000000000000000000000
54 230843697339241000000000000000000000000000000000000000000000000000000000
55 12696403353658300000000000000000000000000000000000000000000000000000000000
56 710998587804863000000000000000000000000000000000000000000000000000000000000
57 40526919504877200000000000000000000000000000000000000000000000000000000000000
58 2350561331282880000000000000000000000000000000000000000000000000000000000000000
59 138683118545690000000000000000000000000000000000000000000000000000000000000000000
60 8320987112741390000000000000000000000000000000000000000000000000000000000000000000
61 507580213877225000000000000000000000000000000000000000000000000000000000000000000000
62 31469973260387900000000000000000000000000000000000000000000000000000000000000000000000
63 1982608315404440000000000000000000000000000000000000000000000000000000000000000000000000
64 126886932185884000000000000000000000000000000000000000000000000000000000000000000000000000
65 8247650592082470000000000000000000000000000000000000000000000000000000000000000000000000000
66 544344939077443000000000000000000000000000000000000000000000000000000000000000000000000000000
67 36471110918188700000000000000000000000000000000000000000000000000000000000000000000000000000000
68 2480035542436830000000000000000000000000000000000000000000000000000000000000000000000000000000000
69 171122452428141000000000000000000000000000000000000000000000000000000000000000000000000000000000000
70 11978571669969900000000000000000000000000000000000000000000000000000000000000000000000000000000000000
71 850478588567862000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
72 61234458376886100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
73 4470115461512690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
74 330788544151939000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
75 24809140811395400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
76 1885494701666050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
77 145183092028286000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
78 11324281178206300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
79 894618213078298000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
80 71569457046263800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
81 5797126020747370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
82 475364333701284000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
83 39455239697206600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
84 3314240134565350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
85 281710411438055000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
86 24227095383672700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
87 2107757298379530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
88 185482642257398000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
89 16507955160908500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
90 1485715964481760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
91 135200152767840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
92 12438414054641300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
93 1156772507081640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
94 108736615665674000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
95 10329978488239100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
96 991677934870949000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
97 96192759682482200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
98 9426890448883250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
99 933262154439442000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
100 93326215443944200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Хорошая задача. Сразу вспоминается, как учительница в 3 классе (!) задала задачу: «сколько цифр у числа, образованного произведением всех натуральных чисел от 1 до 100. Я решила эту задачу за одну минуту. » Я эту задачу решил только спустя 5 лет, когда открыл для себя логарифмы и таблицу Брадиса =) (тогда еще не было у простых смертных персональных компьютеров) . Но не суть.
Начну со второго вопроса, т. к. он попроще.

20 чисел из первых 100 чисел делятся на 5, но из них четыре числа, а именно 25, 50, 75 и 100 содержат по два множителя 5. Итак, 100! будет оканчиваться на 24 нуля. Тут все понятно.

Теперь как найти Факториал 100!
Задача решения факториала оказалась настолько сложной, что точной формулы его нахождения нет до сих пор, но можно привести формулу Стирлинга для приблизительного вычисления факториала:

Она дает результат: 100! ≈ 9,33×10157

Факториал

Факториал

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

Факториал обозначается символом «!»

4! = 4 · 3 · 2 · 1 = 24
5! = 5 · 4 · 3 · 2 · 1 = 120

Обычно говорят 4! как «факториал четырех».

ВЫЧИСЛЕНИЕ ФАКТОРИАЛА

Можно легко рассчитать факториал, зная значение факториала предыдущего числа:

Как найти факториал

Можно это записать в виде таблицы:

n n!
1 1 1 1
2 2 x 1 = 2 x 1! = 2
3 3 x 2 x 1 = 3 x 2! = 6
4 4 x 3 x 2 x 1 = 4 x 3! = 24
5 5 x 4 x 3 x 2 x 1 = 5 x 4! = 120
6 и так далее и так далее

Для точного определения факториала любого числа следует воспользоваться таблицей факториалов

  • Чтобы вычислить 6!, нужно 5!=120 умножить на 6, получается 720
  • Чтобы вычислить 8!, нужно 7!=5040 умножить на 8, получается 40.320

9! равно 362.880. Попробуйте посчитать 10!
10! = 9!х10
10! = 362.880 х 10 = 3.628.800

ФОРМУЛА ФАКТОРИАЛА

Существует правило как найти n факториал:

Которое означает:
«факториал любого числа — это число, умноженное на факториал предыдущего целого числа»
Итак, 12! = 12 × 11!, . и 100! = 100 × 99!, и т. д.

ФАКТОРИАЛ 0

Это очень интересная тема. Принято, что 0! = 1. А почему?

Никакое умножение чисел не приводит к 1, но давайте проследим факториалы в обратном порядке, скажем, от 4!:

Факториал нуля

И во многих задачах 0! = 1 просто имеет смысл.

ФАКТОРИАЛ ОТРИЦАТЕЛЬНОГО ЧИСЛА

Можем ли мы найти факториалы для чисел меньших нуля?

Нет. Факториалы для таких чисел не определены.

Почему? Легко объяснить на примере.

Начнем с 3! = 3 × 2 × 1 = 6 и спускаемся вниз:
2! = 3! / 3 = 6 / 3 = 2
1! = 2! / 2 = 2 / 2 = 1
0! = 1! / 1 = 1 / 1 = 1
(поэтому 0! = 1)
(−1)! = 0! / 0 = 1 / 0 = ой, деление на ноль не определено

И с этого момента все целочисленные факториалы не определены.

ФАКТОРИАЛ ДРОБНОГО ЧИСЛА

Можем ли мы найти факториалы для таких чисел, как 0,4 или −8,116?

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

И они могут быть отрицательными (кроме целых чисел).

Вот несколько значений дробных факториалов:

(-1/2)! √π
(1/2)! (1/2)√π
(3/2)! (3/4)√π
(5/2)! (15/8)√π

ПРИМЕНЕНИЕ ФАКТОРИАЛА

Факториалы незаменимы для вычисления количества перестановок, сочетаний и размещений.

Сколько существует разных способов, с помощью которых 7 человек могут прийти первым, вторым и третьим ?
Список довольно длинный, если 7 человек обозначим как a, b, c, d, e, f и g, то список включает:
abc, abd, abe, abf, abg, acb, acd, ace, acf, . и т. д.
Формула для расчета: 7!/(7−3)! = 7!/4!
Выпишем умножение полностью:
(7 × 6 × 5 × 4 × 3 × 2 × 1)/(4 × 3 × 2 × 1) = 7 × 6 × 5
Пояснение: 4 × 3 × 2 × 1 сокращено, т.к. они встречаются в числителе и знаменателе, и осталось только 7 × 6 × 5 . получаем:
7 × 6 × 5 = 210
Итак, есть 210 различных способов, которыми 7 человек могут прийти первым, вторым и третьим.

Что такое 100! / 98!
Используя наши знания из предыдущего примера, мы можем сразу перейти к следующему:
100!/98! = 100 × 99 = 9900

Другие примеры задач с факториалом и их решение на странице решение факториалов.

ИНТЕРЕСНЫЕ ФАКТЫ

70! приблизительно 1,197857 . x 10 100 , что чуть больше, чем в Googol (цифра 1, за которой следует сотня нулей).

100 факториал: 100! приблизительно 9,3326215443944152681699238856 x 10 157

200 факториал: 200! приблизительно 7,8865786736479050355236321393 x 10 374

Алгоритмы быстрого вычисления факториала

Понятие факториала известно всем. Это функция, вычисляющая произведение последовательных натуральных чисел от 1 до N включительно: N! = 1 * 2 * 3 *… * N. Факториал — быстрорастущая функция, уже для небольших значений N значение N! имеет много значащих цифр.

Попробуем реализовать эту функцию на языке программирования. Очевидно, нам понадобиться язык, поддерживающий длинную арифметику. Я воспользуюсь C#, но с таким же успехом можно взять Java или Python.

Наивный алгоритм

Итак, простейшая реализация (назовем ее наивной) получается прямо из определения факториала:

На моей машине эта реализация работает примерно 1,6 секунд для N=50 000.

Далее рассмотрим алгоритмы, которые работают намного быстрее наивной реализации.

Алгоритм вычисления деревом

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

Пусть нам нужно найти произведение последовательных чисел от L до R, обозначим его как P(L, R). Разделим интервал от L до R пополам и посчитаем P(L, R) как P(L, M) * P(M + 1, R), где M находится посередине между L и R, M = (L + R) / 2. Заметим, что множители будут примерно одинаковой длины. Аналогично разобьем P(L, M) и P(M + 1, R). Будем производить эту операцию, пока в каждом интервале останется не более двух множителей. Очевидно, что P(L, R) = L, если L и R равны, и P(L, R) = L * R, если L и R отличаются на единицу. Чтобы найти N! нужно посчитать P(2, N).

Посмотрим, как будет работать наш алгоритм для N=10, найдем P(2, 10):

P(2, 10)
P(2, 6) * P(7, 10)
( P(2, 4) * P(5, 6) ) * ( P(7, 8) * P(9, 10) )
( (P(2, 3) * P(4) ) * P(5, 6) ) * ( P(7, 8) * P(9, 10) )
( ( (2 * 3) * (4) ) * (5 * 6) ) * ( (7 * 8) * (9 * 10) )
( ( 6 * 4 ) * 30 ) * ( 56 * 90 )
( 24 * 30 ) * ( 5 040 )
720 * 5 040
3 628 800

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

Реализуем описанный алгоритм:

Для N=50 000 факториал вычисляется за 0,9 секунд, что почти вдвое быстрее, чем в наивной реализации.

Алгоритм вычисления факторизацией

Второй алгоритм быстрого вычисления использует разложение факториала на простые множители (факторизацию). Очевидно, что в разложении N! участвуют только простые множители от 2 до N. Попробуем посчитать, сколько раз простой множитель K содержится в N!, то есть узнаем степень множителя K в разложении. Каждый K-ый член произведения 1 * 2 * 3 *… * N увеличивает показатель на единицу, то есть показатель степени будет равен N / K. Но каждый K 2 -ый член увеличивает степень еще на единицу, то есть показатель становится N / K + N / K 2 . Аналогично для K 3 , K 4 и так далее. В итоге получим, что показатель степени при простом множителе K будет равен N / K + N / K 2 + N / K 3 + N / K 4 +…

Для наглядности посчитаем, сколько раз двойка содержится в 10! Двойку дает каждый второй множитель (2, 4, 6, 8 и 10), всего таких множителей 10 / 2 = 5. Каждый четвертый дает четверку (2 2 ), всего таких множителей 10 / 4 = 2 (4 и 8). Каждый восьмой дает восьмерку (2 3 ), такой множитель всего один 10 / 8 = 1 (8). Шестнадцать (2 4 ) и более уже не дает ни один множитель, значит, подсчет можно завершать. Суммируя, получим, что показатель степени при двойке в разложении 10! на простые множители будет равен 10 / 2 + 10 / 4 + 10 / 8 = 5 + 2 + 1 = 8.

Если действовать таким же образом, можно найти показатели при 3, 5 и 7 в разложении 10!, после чего остается только вычислить значение произведения:

10! = 2 8 * 3 4 * 5 2 * 7 1 = 3 628 800

Осталось найти простые числа от 2 до N, для этого можно использовать решето Эратосфена:

Эта реализация также тратит примерно 0,9 секунд на вычисление 50 000!

Библиотека GMP

Как справедливо отметил pomme скорость вычисления факториала на 98% зависит от скорости умножения. Попробуем протестировать наши алгоритмы, реализовав их на C++ с использованием библиотеки GMP. Результаты тестирования приведены ниже, по ним получается что алгоритм умножения в C# имеет довольно странную асимптотику, поэтому оптимизация дает относительно небольшой выигрыш в C# и огромный в C++ с GMP. Однако этому вопросу вероятно стоит посвятить отдельную статью.

Сравнение производительности

Все алгоритмы тестировались для N равном 1 000, 2 000, 5 000, 10 000, 20 000, 50 000 и 100 000 десятью итерациями. В таблице указано среднее значение времени работы в миллисекундах.
Таблица результатов

График с линейной шкалой
График с линейной шкалой

График с логарифмической шкалой
График с логарифмической шкалой

Идеи и алгоритмы из комментариев

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

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

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

Понравилась статья? Поделить с друзьями:
  • Как найти рыночную долю рынка
  • Как найти номер инн свой по фамилии
  • Потеряла телефон как его найти по спутнику
  • Как найти название блютуз колонки
  • Как найти стороны многоугольника зная градус угла