Метод факторизации Ферма — Википедия

Метод факторизации Ферма — алгоритм факторизации (разложения на множители) нечётного целого числа n{\displaystyle n}, предложенный Пьером Ферма (1601—1665) в 1643 году.
Метод основан на поиске таких целых чисел x{\displaystyle x} и y{\displaystyle y}, которые удовлетворяют соотношению x2−y2=n{\displaystyle x^{2}-y^{2}=n}, что ведёт к разложению n=(x−y)⋅(x+y){\displaystyle n=(x-y)\cdot (x+y)}.
В начале XVII века во Франции математические идеи начали активно распространяться между учёными посредством переписки. В 1638 году к кругу переписывающихся учёных присоединился Пьер Ферма. Переписка была удобным способом общения, так как Ферма жил в Тулузе, а многие его знакомые учёные жили в Париже. Одним из таких учёных был Марен Мерсенн, занимавшийся распространением писем, пересылкой и связью многих учёных между собой. 26 декабря 1638 года в письме Мерсенну Ферма упомянул, что нашёл метод, с помощью которого можно находить делители положительных чисел, но какие-либо подробности и описание метода он опустил. На тот момент Мерсенн также вёл переписку с французским математиком Бернаром Френиклем де Бесси, занимавшимся, как и Ферма, теорией чисел, в частности, делителями натуральных чисел и совершенными числами. В начале 1640 года, узнав о том, что Ферма получил метод нахождения делителей, Френикль пишет Мерсенну, и тот пересылает письмо Ферма. Мерсенн долгое время был связующим звеном между двумя математиками в их переписке. Именно в письмах Френиклю Ферма смог доказать корректность метода факторизации, а также впервые сформулировать и обосновать основные положения теоремы, которая позже была названа Малой теоремой Ферма
Метод Ферма основан на теореме о представлении числа в виде разности двух квадратов:
Доказательство
Если задана факторизация n=a⋅b{\displaystyle n=a\cdot b}, то имеет место соотношение: n=a⋅b=(a+b2)2−(a−b2)2{\displaystyle n=a\cdot b=({\tfrac {a+b}{2}})^{2}-({\tfrac {a-b}{2}})^{2}}. Таким образом получается представление в виде разности двух квадратов.
Обратно, если дано, что n=x2−y2{\displaystyle n=x^{2}-y^{2}}, то правую часть можно разложить на множители: (x−y)(x+y){\displaystyle (x-y)(x+y)}[3].
Для разложения на множители нечётного числа n{\displaystyle n} ищется пара чисел (x,y){\displaystyle (x,y)} таких, что x2−y2=n{\displaystyle x^{2}-y^{2}=n}, или (x−y)⋅(x+y)=n{\displaystyle (x-y)\cdot (x+y)=n}. При этом числа (x+y){\displaystyle (x+y)} и (x−y){\displaystyle (x-y)} являются множителями n{\displaystyle n}, возможно, тривиальными (то есть одно из них равно 1, а другое — n{\displaystyle n}.)
В нетривиальном случае, равенство x2−y2=n{\displaystyle x^{2}-y^{2}=n} равносильно x2−n=y2{\displaystyle x^{2}-n=y^{2}}, то есть тому, что x2−n{\displaystyle x^{2}-n} является квадратом.
Поиск квадрата такого вида начинается с x=⌈n⌉{\displaystyle x=\left\lceil {\sqrt {n}}\right\rceil } — наименьшего числа, при котором разность x2−n{\displaystyle x^{2}-n} неотрицательна.
Для каждого значения k∈N,{\displaystyle k\in \mathbb {N} ,} начиная с k=1{\displaystyle k=1}, вычисляют (⌈n⌉+k)2−n{\displaystyle (\left\lceil {\sqrt {n}}\right\rceil +k)^{2}-n} и проверяют, не является ли это число точным квадратом. Если не является, то k{\displaystyle k} увеличивают на единицу и переходят на следующую итерацию.
Если (⌈n⌉+k)2−n{\displaystyle (\left\lceil {\sqrt {n}}\right\rceil +k)^{2}-n} является точным квадратом, то есть x2−n=(⌈n⌉+k)2−n=y2,{\displaystyle x^{2}-n=(\left\lceil {\sqrt {n}}\right\rceil +k)^{2}-n=y^{2},} то получено разложение:
- n=x2−y2=(x+y)(x−y)=a⋅b,{\displaystyle n=x^{2}-y^{2}=(x+y)(x-y)=a\cdot b,} в котором x=(⌈n⌉+k){\displaystyle x=(\left\lceil {\sqrt {n}}\right\rceil +k)}
Если оно является тривиальным и единственным, то n{\displaystyle n} — простое.
На практике значение выражения на (k+1){\displaystyle (k+1)}-ом шаге вычисляется с учётом значения на k{\displaystyle k}-ом шаге:
- (s+1)2−n=s2+2s+1−n,{\displaystyle \left(s+1\right)^{2}-n=s^{2}+2s+1-n,} где s=⌈n⌉+k.{\displaystyle s=\left\lceil {\sqrt {n}}\right\rceil +k.}
Пример с малым числом итераций[править | править код]
Возьмём число n=10873{\displaystyle n=10873}. Вычислим s=⌈n⌉=105.{\displaystyle s=\left\lceil {\sqrt {n}}\right\rceil =105.} Для k=0,1,2,…{\displaystyle k=0,1,2,…} будем вычислять значения функции s+k{\displaystyle s+k}. Для дальнейшей простоты построим таблицу, которая будет содержать значения y=(s+k)2−n{\displaystyle y=(s+k)^{2}-n} и y{\displaystyle {\sqrt {y}}} на каждом шаге итерации. Получим:
k{\displaystyle k} | y{\displaystyle y} | y{\displaystyle {\sqrt {y}}} |
---|---|---|
1 | 363 | 19,052 |
2 | 576 | 24 |
Как видно из таблицы, уже на втором шаге итерации было получено целое значение y{\displaystyle {\sqrt {y}}}.
Таким образом имеет место следующее выражение: (105+2)2−n=242{\displaystyle (105+2)^{2}-n=24^{2}}. Отсюда следует, что n=1072−242=131⋅83=10873.{\displaystyle n=107^{2}-24^{2}=131\cdot 83=10873.}
Пример с большим числом итераций[править | править код]
Пусть n=89755.{\displaystyle n=89755.} Тогда n≈299,591{\displaystyle {\sqrt {n}}\approx 299,591} или s=⌈n⌉=300.{\displaystyle s=\left\lceil {\sqrt {n}}\right\rceil =300.}
k{\displaystyle k} | y{\displaystyle y} | y{\displaystyle {\sqrt {y}}} |
---|---|---|
77 | 52374 | 228,854 |
78 | 53129 | 230,497 |
79 | 53886 | 232,134 |
80 | 54645 | 233,763 |
81 | 55406 | 235,385 |
82 | 56169 | 237 |
- y=237{\displaystyle {\sqrt {y}}=237}
- a=s+k+y=300+82+237=619{\displaystyle a=s+k+{\sqrt {y}}=300+82+237=619}
- b=s+k−y=300+82−237=145{\displaystyle b=s+k-{\sqrt {y}}=300+82-237=145}
Данное разложение является не конечным, так как, очевидно, что число 145{\displaystyle 145} не является простым: 145=29⋅5.{\displaystyle 145=29\cdot 5.}
В итоге, конечное разложение исходного числа n{\displaystyle n} на произведение простых множителей 89755=5⋅29⋅619.{\displaystyle 89755=5\cdot 29\cdot 619.}
Наибольшая эффективность расчета методом факторизации Ферма достигается в случае, когда множители числа n{\displaystyle n} примерно равны между собой. Это обеспечивает относительно короткий поиск последовательности[4]
s2−n, (s+1)2−n, (s+2)2−n … (s+k)2−n.{\displaystyle s^{2}-n,\ (s+1)^{2}-n,\ (s+2)^{2}-n\ …\ (s+k)^{2}-n.}
В наихудшем варианте, когда, к примеру, a{\displaystyle a} близко к n,{\displaystyle n,} а b{\displaystyle b} близко к 1, алгоритм Ферма работает хуже по сравнению с методом перебора делителей. Число итераций для данного случая:
Iter(n)=a+b2−⌈n1/2⌉≈n2−⌈n1/2⌉,{\displaystyle \operatorname {Iter} (n)={\tfrac {a+b}{2}}-\left\lceil {n}^{1/2}\right\rceil \thickapprox {\tfrac {n}{2}}-\left\lceil {n}^{1/2}\right\rceil ,} то есть, очевидно, что оно имеет порядок O(n).{\displaystyle O(n).}
Метод факторизации Ферма будет работать не хуже метода перебора делителей, если Iter(n)<n1/2,{\displaystyle \operatorname {Iter} (n)<{n}^{1/2},} отсюда можно получить оценку для большего делителя a<4n1/2.{\displaystyle a<4{n}^{1/2}.} Следовательно, метод Ферма имеет экспоненциальную оценку и, как метод пробного деления, не подходит для разложения больших чисел. Можно повысить эффективность, если выполнить сначала пробное деление числа n{\displaystyle n} на числа от 2 до некоторой константы B, а затем выполнить поиск делителей методом Ферма. Такой поход помогает избавиться от малых делителей числа n{\displaystyle n}[5].
Оптимизация методом перебора делителей[править | править код]
Предположим, что мы пытаемся разложить на множители число n = 2345678917 методом Ферма, но кроме b вычисляем также и a − b. Начиная с n{\displaystyle {\sqrt {n}}}, можно записать:
a | 48 433 | 48 434 | 48 435 | 48 436 |
---|---|---|---|---|
b2 | 76 572 | 173 439 | 270 308 | 367 179 |
b | 276,7 | 416,5 | 519,9 | 605,9 |
a − b | 48 156,3 | 48 017,5 | 47 915,1 | 47 830,1 |
Если бы теперь для разложения числа n{\displaystyle n} стали использовать метод перебора делителей, то имело бы смысл проверять делители n{\displaystyle n} только до 47 830, а не до 48 432, так как если бы существовал делитель больше, то он был бы найден методом Ферма. Итак, всего за четыре этапа методом Ферма были проверены все делители n{\displaystyle n} от 47 830 до 48 432.
Таким образом, можно комбинировать метод Ферма с методом перебора делителей. Достаточно выбрать число c>n{\displaystyle c>{\sqrt {n}}} и использовать метод Ферма для проверки делителей между c{\displaystyle c} и n{\displaystyle {\sqrt {n}}}, а оставшиеся делители можно проверить методом перебора делителей, причём проверять делители нужно только до числа c−c2−n{\displaystyle c-{\sqrt {c^{2}-n}}}[6].
В примере выше, когда c=48436{\displaystyle c=48436}, делители необходимо перебирать до числа 47830. Также, к примеру, можно выбрать число c=55000{\displaystyle c=55000}, дающее границу 28937.
Комбинация методов хороша, так как при достаточной разнице между делителями числа n{\displaystyle n} метод перебора делителей эффективнее метода Ферма[5]. Это иллюстрирует следующий пример:
a | 60 001 | 60 002 |
---|---|---|
b2 | 1 254 441 084 | 1 254 561 087 |
b | 35 418,1 | 35 419,8 |
a − b | 24 582,9 | 24 582,2 |
При поиске квадрата натурального числа в последовательности чисел a2−n{\displaystyle a^{2}-n} можно не вычислять квадратный корень из каждого значения этой последовательности, и даже не проверять все возможные значения для a. Для примера рассмотрим число n=2345678917{\displaystyle n=2345678917}:
a | 48 433 | 48 434 | 48 435 | 48 436 |
---|---|---|---|---|
b2 | 76 572 | 173 439 | 270 308 | 367 179 |
b | 276,7 | 416,5 | 519,9 | 605,9 |
Можно сразу, не вычисляя квадратного корня, сказать, что ни одно из значений b2{\displaystyle b^{2}} в таблице не является квадратом. Достаточно, например, воспользоваться тем, что все квадраты натуральных чисел, взятые по модулю 20, равны одному из следующих значений: 0, 1, 4, 5, 9, 16. Эти значения повторяются при каждом увеличении a на 10. В примере n=17{\displaystyle n=17} по модулю 20, поэтому отнимая 17 (или добавляя 3), получаем, что число b2{\displaystyle b^{2}} по модулю 20 равно одному из следующих: 3, 4, 7, 8, 12, 19. Но так как b{\displaystyle b} — натуральное число, то отсюда получаем, что b2{\displaystyle b^{2}} по модулю 20 может быть равно только 4. Следовательно, a2=1{\displaystyle a^{2}=1} по модулю 20 и a=1{\displaystyle a=1} или a=9{\displaystyle a=9} по модулю 10. Таким образом, можно проверять корень выражения a2−n{\displaystyle a^{2}-n} не для всех a{\displaystyle a}, а только для тех, которые оканчиваются на 1 или 9[6].
Аналогично в качестве модуля можно использовать любые степени различных простых чисел. Например, взяв то же число n=2345678917{\displaystyle n=2345678917}, находим
По модулю 16: | Квадраты равны | 0, 1, 4 или 9 |
n mod 16 равно | 5 | |
следовательно, a2{\displaystyle a^{2}} равно | 9 | |
и a равно | 3, 5, 11 или 13 по модулю 16 | |
По модулю 9: | Квадраты равны | 0, 1, 4, или 7 |
n mod 9 равно | 7 | |
следовательно, a2{\displaystyle a^{2}} равно | 7 | |
и a равно | 4 или 5 по модулю 9 |
Метод Ферма хорошо работает в случае, когда у числа n{\displaystyle n} есть множитель, приблизительно равный квадратному корню из n{\displaystyle n}[5].
Если известно примерное соотношение d/c{\displaystyle d/c} между множителями числа n{\displaystyle n}, то можно выбрать рациональное число u/v{\displaystyle u/v}, приблизительно равное этому соотношению. Тогда можно записать следующее равенство: nuv=cv⋅du{\displaystyle nuv=cv\cdot du}, где множители cv{\displaystyle cv} и du{\displaystyle du} близки в силу сделанных предположений. Поэтому применив метод Ферма для разложения числа nuv{\displaystyle nuv}, их можно быстро найти. Далее для нахождения c{\displaystyle c} и d{\displaystyle d} можно использовать равенства gcd(n,cv)=c{\displaystyle \gcd(n,cv)=c} и gcd(n,du)=d{\displaystyle \gcd(n,du)=d} (в случае, если u{\displaystyle u} не делится на c{\displaystyle c} и v{\displaystyle v} не делится на d{\displaystyle d}
Метод факторизации Ферма онлайн
Данный онлайн калькулятор производит разложение чисел (факторизация) методом Ферма. Для разложении числа на множители методом Ферма, введите в калькулятор факторизируемое число, количество шагов и нажмите на кнопку «Решить». Подробнее о методе разложения Ферма посмотрите ниже.

Метод Ферма − теория
Метод Ферма для разложения числа на множители основывается на следующем утверждении:
Утверждение 1. (метод факторизации Ферма). Пусть n>1 нечетное число1) и пусть оно представлено в виде произведения двух натуральных множителей:
1) В данной статье под словом число будем понимать натуральное (целое положительное) число.
Тогда n может быть представлен в виде разности квадратов двух чисел:
Обратно. Пусть
Доказательство. Пусть n представлен в виде (1). Произведение ab можно представить в следующем виде:
Тогда
где
Пусть теперь n представлен в виде разности квадратов двух чисел, т.е. в виде (2). Тогда можно записать
где
Данное утверждение дает возможность разложить нечетное число на два множителя. Отметим, что множители могут быть как простыми, так и составными.
Для разложения числа n на множители (факторизации) методом Ферма, нужно вычислить квадратный корень от n
Метод факторизации Ферма − алгоритм
- Вход: Натуральное нечетное число n>1
- Вычислить наименьшее целое число s такое, что s2≥ √n, т.е. s=⌈√n⌉.
- Если s2=n, то a=s и завершить алгоритм.
- Взять x=s, l=x2−n и счетчик шагов k=0.
- Если l является полным квадратом, то вычислить y=√l , a=x+y и закончить алгоритм.
- Вычислить k=k+1, x=x+1, l=x2−n. Перейти к пункту 4.
Другой делитель числа n равно b=n/a.
Покажем, что количество шагов алгоритма не превосходит величины
Следовательно
Отметим, что процедуру разложения можно оптимизировать. Вместо вычисления на каждом шаге квадрат x2 в выражении l=x2−n, можно вычислить в начале процедуры x0=s, , а на следующих шагах
Рассмотрим метод Ферма на конкретных примерах.
Метод факторизации Ферма − примеры и решения
Пример 1. Разложить число n=517 на множители.
Решение. Находим наименьшее целое число s такое, что , то есть
. Далее задавая k=0,1,… вычисляем l=(s+k)2−n. Если на каком то шаге l является квадратом натурального числа, то процедуру останавливаем:
При k=6 получили l=324, который является квадратом числа 18. Останавливаем процедуру и вычисляем множители a=x+y=29+18=47 и b=x−y=29−18=11. Таким образом разложение числа 517 имеет следующий вид: 517=47·11.
Ответ. 517=47·11.
Пример 2. Разложить число
Решение. Находим наименьшее целое число s такое, что , то есть
. Далее задавая k=0,1,… вычисляем l=(s+k)2−n. Если на каком то шаге l является квадратом натурального числа, то процедуру останавливаем:
При k=15 получили l=441, который является квадратом числа 21. Останавливаем процедуру и вычисляем множители a=x+y=22+21=43 и b=x-y=22-21=1. Таким образом разложение числа 43 имеет следующий вид: 43=43·1. Это значит, что число 43 является простым числом.
Ответ. Число 43 простое.
Отметим, что метод Ферма эффективно работает, когда множители близки к числу s=√n.
При проверке, является ли число l полным квадратом необходимо вычислить квадратный корень из большого целого числа. Мы могли бы использовать для этого алгоритм Нютона. Но это очень медленная операция. Поэтому для повышения производительности алгоритма мы рассмотрим алгоритм вычисления целозначного квадратного корня от натурального числа.
Алгоритм вычисления целозначного квадратного корня от натурального числа
- Вход: Натуральное число n>0
- Выход: Натуральное число q, удовлетворяющее неравенству q2≤n<(q+1)
- Взять x=n
- Вычислить
.
- Если y<x, то положить x=y и перейти к шагу 2.
- Положить q=x и завершить алгоритм.
Докажем, что приведенный алгоритм находит целое число q такое, что q2≤n<(q+1)2, т.е. q=⌊√n⌋.
Пусть x, n>0. Из неравенства следует, что
или
Тогда . Отсюда следует:
или
Таким образом, на каждом шаге алгоритма x≥q (так как ). Третий шаг алгоритма показывает, что последваптельность значений x убывает. Покажем, что алгоритм остановится тольно при x=q.
Предположим, что это не так и что на некотором шаге y≥x алгоритм остановлен, но x≠q, т.е. x>q.
Вычислим
Так как x>q, то x2>q2. Поскольку x целое число, то x2≥(q+1)2. Но (q+1)2>n. Следовательно x2>n. Тогда из уравнения (6) следует, что
Пример. Найти целозначный корень числа n=129.
Решение.
Присвоим x=n=129. Вычислим
Так как y<x, то присвоим x=65. Вычисляем:
Так как y<x, то присвоим x=33. Вычисляем:
y<x. Присвоим x=18. Вычисляем:
y<x. Присвоим x=11. Вычисляем:
y=x. Останавливаем алгоритм. x=11 целозначный корень от числа 129, квадрат которого не превосходит 129.
Ответ..
Метод Ферма разложения на множители
Общий смысл
Метод факторизации (разложения на множители) Ферма состоит в вычислении квадратов по модулю n для целых x, чуть больших
, в надежде встретить полный квадрат y2. Метод быстро работает, если n = p * q и числа p и q близки друг к другу. (Вот почему в p, q.)
Метод
Пусть надо разложить на множители число n. Если удастся найти два числа x и y такие, что
Числа (x + y) и (x − y) являются множителями n, возможно, тривиальными (т.е. одно из этих чисел 1, а другое n.)
Эти два числа x и y, дающие x2 − y2 = n, найдутся, если найдётся такое целое x, что x2 − n является квадратом. Тогда x2 − (x2 − n) — разность квадратов, равная n.
Поиск начинают с
— наименьшего возможного числа, при котором разность x2 − n положительна. Увеличивают x на 1 и вычисляют x2 − n, пока x2 − n не окажется точным квадратом. Если это произошло, пытаются разложить n как
. Если это разложение тривиально, продолжают увеличивать x.
См. также
Wikimedia Foundation. 2010.
- Метод Трахтенберга
- Метод Циля — Нельсена
Смотреть что такое «Метод Ферма разложения на множители» в других словарях:
Метод квадратичного решета — (Quadratic sieve algorithm, сокр. QS) метод факторизации больших чисел, разработанный Померанцем в 1981 году. Долгое время превосходил другие методы факторизации целых чисел общего вида, не имеющих простых делителей, порядок которых… … Википедия
Метод факторизации Ферма — Пьер Ферма Метод факторизации Ферма алгоритм факторизации нечётного целого числа , предложенный … Википедия
Ρ-алгоритм Полларда — Эта статья о факторизации чисел. О методе дискретного логарифмирования см. Ρ метод Полларда дискретного логарифмирования. Числовая последовательность зацикливается, начиная с неко … Википедия
Алгоритм Шенкса — (англ. Baby step giant step; также называемый алгоритм больших и малых шагов) в теории групп, детерминированный алгоритм дискретного логарифмирования в кольце вычетов по модулю простого числа. Для модулей специального вида данный… … Википедия
ЧИСЕЛ ТЕОРИЯ — раздел чистой математики, занимающийся изучением целых чисел 0, ±1, ±2,… и соотношений между ними. Иногда теорию чисел называют высшей арифметикой. Отдельные вычисления, производимые над конкретными числами, например, 9 + 16 = 25, не… … Энциклопедия Кольера
Теория чисел — Теория чисел, или высшая арифметика раздел математики, изучающий целые числа и сходные объекты. В теории чисел в широком смысле рассматриваются как алгебраические, так и трансцендентные числа, а также функции различного происхождения, которые… … Википедия
Математика — I. Определение предмета математики, связь с другими науками и техникой. Математика (греч. mathematike, от máthema знание, наука), наука о количественных отношениях и пространственных формах действительного мира. «Чистая … Большая советская энциклопедия
Чисел теория — наука о целых числах. Понятие целого числа (См. Число), а также арифметических операций над числами известно с древних времён и является одной из первых математических абстракций. Особое место среди целых чисел, т. е. чисел…, 3 … Большая советская энциклопедия
История арифметики — Арифметика. Роспись Пинтуриккьо. Апартаменты Борджиа. 1492 1495. Рим, Ватиканские дворцы … Википедия
Криптосистема Ривеста-Шамира-Адельмана — RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) криптографический алгоритм с открытым ключом. RSA стал первым алгоритмом такого типа, пригодным и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе… … Википедия
Метод Ферми: как научиться измерять неизвестное
В чём заключается метод
По мнению Энрико Ферми, известного физика и мастера догадок, каждый человек способен за 60 секунд оценить что угодно. Найти ответ можно на самый необычный вопрос. Например, каков размер рынка бритв в Китае или сколько мячей для гольфа заполнят школьный автобус.
Суть его метода решения подобных задач состоит в том, чтобы за очень короткое время провести быстрые приблизительные расчёты, не имея при этом никаких точных данных. Его способ вычисления предполагает не проведение новых измерений, а работу с тем, что уже известно о проблеме.
В основе метода лежит убеждение, что все знания, которыми мы обладаем, взаимосвязаны и на самом деле не существует вопроса, по которому бы у нас не было вообще никакой информации. Поэтому, располагая всего несколькими фактами и имея способность к логическому мышлению, можно найти ответ на любую, даже на первый взгляд совершенно нерешаемую задачу.
Как это работает на практике
Сколько настройщиков пианино в Чикаго — самый известный вопрос, который Ферми часто задавал своим студентам.
Поначалу кажется, что ответить на него невозможно. Но метод Ферми и не предполагает получения точного результата. Самое большее, что можно и нужно сделать, — дать разумную оценку на основе рациональных предположений. То есть указать примерное значение или диапазон значений, обозначив при этом возможные погрешности и отклонения.
Вот решение задачи, приведённой выше.
- Оцениваем население Чикаго: это около 2,7 миллиона человек.
- Прикидываем, сколько всего семей живёт в городе. Для этого грубо предположим, что в каждой семье 2–3 человека. Тогда делим всё население на среднее 2,5 и в итоге получаем около миллиона семей.
- Как узнать, у скольких из них есть пианино? Это самые сложные цифры, определить их точно без исследования невозможно. Поэтому остаётся лишь предположить, руководствуясь здравым смыслом и жизненным опытом. Возьмём пять процентов от всех семей — это будет около 50 000.
- Допустим, что в среднем пианино настраивают раз в год — получается, что за год в Чикаго нужно обслужить 50 000 инструментов.
- Сколько дней в году работает настройщик? Из 365 дней вычтем 52 субботы, 52 воскресенья и несколько дней праздников. Выходит около 250 рабочих дней.
- За день настройщик может приехать к четырём семьям — это тоже примерное число. Оно зависит от времени, затраченного на дорогу, и каждого конкретного случая. Зато оно говорит нам о том, что в год один человек может произвести около 1 000 настроек: мы умножили четыре инструмента в день на 250 рабочих дней.
- Разделив 50 000 настроек в год на 1 000 настроек, производимых за этот год одним человеком, получаем 50 настройщиков в Чикаго.
Понятно, что в итоге мы имеем приблизительное число. Но это сужает интервал значений, в рамках которых предстоит работать. По мнению Ферми, величину, которая кажется наиболее неопределённой (например, у скольких семей может стоять дома пианино), нужно измерить в первую очередь, чтобы получить более точные данные.
Единого алгоритма для решения всех задач Ферми не существует, но есть несколько правил, которым нужно следовать:
- Даже если кажется, что вы абсолютно не смыслите в тематике вопроса, поверьте, что нужно просто найти свой подход. Вы наверняка обладаете информацией, которая так или иначе приблизит вас к верному ответу.
- Задействуйте имеющиеся у вас знания из различных сфер и областей, чтобы найти собственный алгоритм решения.
- Проведите все необходимые оценки и предварительные расчёты.
- Назовите конкретный ответ, расскажите, какие отклонения от реального результата могут быть и почему.
- Не прибегайте к помощи сторонних источников.
- Не бойтесь ошибиться.
Зачем вообще нужен метод
Метод Ферми применим в тех случаях, когда нужно быстро дать приблизительный ответ и уже потом решить, целесообразно ли проводить дальнейшие вычисления для нахождения точных данных.
С его помощью можно опровергнуть полученную информацию, быстро принять решение, понять, в каком направлении двигаться и каких данных недостаточно.
Главное, чему учит метод Ферми, — лучше получить приблизительные результаты, чем вообще ничего.
Например, бизнесмен хочет вывести на рынок новый продукт, но сомневается, будет ли на него спрос. Провести дорогостоящее исследование? А что, если деньги, потраченные на него, уйдут впустую, и товар окажется никому не нужен? В итоге человек может долго колебаться, теряя время, или вообще отказаться от своей идеи, боясь неизвестности.
Используя метод Ферми, предприниматель может самостоятельно оценить, например, изменения в покупательской способности, популярных трендах, провести быстрый анализ потребностей населения и грубые расчёты.
На основе приблизительных результатов он уже сможет решить, стоит ли инвестировать в дальнейшее исследование. И в конечном итоге даже небольшое снижение неопределённости может принести компании миллионы или сохранить их.
Умение использовать метод может пригодиться и тем людям, которым не приходится принимать сложные решения, связанные с большими затратами и рисками.
Вопросы Ферми могут встретиться на собеседовании в крупной компании.
Специалисты по подбору персонала используют задачи, решаемые методом Ферми, для того чтобы узнать, как соискатель сможет применить свои знания на практике. При этом для них не так важно услышать правильный ответ, как проследить за ходом размышлений.
А ещё у вопросов Ферми есть важное преимущество: их можно очень легко изобретать в разных вариациях, а знать при этом верное решение совсем не обязательно.
Например:
- Сколько кусочков попкорна нужно, чтобы заполнить ими комнату?
- Какова площадь поверхности тела всех людей на Земле?
- Сколько нужно написать страниц текста, чтобы читать его вслух в течение одного часа?
- Оцените количество такси в вашем городе.
- Сколько книг печатается в год в мире?
Подобные задачи помогают объективно оценить реальные знания. Поэтому придётся напрячь мозги и задействовать логическое мышление.
Читайте также 🧐
Метод факторизации Ферма Википедия

Метод факторизации Ферма — алгоритм факторизации (разложения на множители) нечётного целого числа n{\displaystyle n}, предложенный Пьером Ферма (1601—1665) в 1643 году.
Метод основан на поиске таких целых чисел x{\displaystyle x} и y{\displaystyle y}, которые удовлетворяют соотношению x2−y2=n{\displaystyle x^{2}-y^{2}=n}, что ведёт к разложению n=(x−y)⋅(x+y){\displaystyle n=(x-y)\cdot (x+y)}.
История[ | ]
В начале XVII века во Франции математические идеи начали активно распространяться между учёными посредством переписки. В 1638 году к кругу переписывающихся учёных присоединился Пьер Ферма. Переписка была удобным способом общения, так как Ферма жил в Тулузе, а многие его знакомые учёные жили в Париже. Одним из таких учёных был Марен Мерсенн, занимавшийся распространением писем, пересылкой и связью многих учёных между собой. 26 декабря 1638 года в письме Мерсенну Ферма упомянул, что нашёл метод, с помощью которого можно находить делители положительных чисел, но какие-либо подробности и описание метода он опустил. На тот момент Мерсенн также вёл переписку с французским математиком Бернаром Френиклем де Бесси, занимавшимся, как и Ферма, теорией чисел, в частности, делителями натуральных чисел и совершенными числами. В начале 1640 года, узнав о том,
3.8.2. Метод Ферма
Метод Ферма основан
на формуле разности квадратов: если
нечётное ,
то
,
где
.
Если множители
нетривиальны (отличны от
и
),
то дальнейшая факторизация сводится к
работе с меньшими числами. При этом
является полным квадратом:
.
Поиск такого
можно начинать с проверки наименьшего
значения, при котором
,
то есть с
.
Если
не является квадратом, то
далее проверяются
.Если при всех
разность
не является квадратом, то
— простое(см. [1]).
Пример. Факторизация числа .
Имеем
;
;
—не является
квадратом;
—не является
квадратом;
.
Итак, .
Дальнейшая
факторизация осуществляется просто: ,
и
.В итоге
.
3.8.3. Метод Крайчика
В этом методе
нетривиальный делитель числа
ищется как НОД числа
и числа
:
;
при этом
и
подбираются так, чтобы заведомо
выполнялось условие
.
Имеет место
Теорема. Пусть выполняются три условия:
1) и
лежат в разных классах вычетов по модулю
;
2) и
,
лежат в разных классах вычетов по модулю
;
3) .
Тогда .
Пусть, .
Численные эксперименты показывают, что
в разложении на множители чисел
(остатков от деления
на
,
так что
)
довольно часто участвуют только небольшие
простые множители (такие числа называютгладкими).
Путём перемножения некоторых из сравнений
,
… ,
,
в правой части
удаётся получить полный квадрат:.
Тогда в левой части сравнения квадрат
получается автоматически:
,
где
.
Если при этом для и
оказываются выполненными первые два
условия теоремы, то наибольший общий
делитель
(то есть нетривиальный делитель
)
находится с помощью алгоритма Евклида
или каким-нибудь другим методом (см.
п. 3.7).
Пример. Рассмотрим факторизацию числа .
Здесь
.
Для чисел
при
последовательно
получаем:
;
;
;
;
;
.
Полным квадратом оказывается произведение
.
Теперь
,
,
и полагаем заново
.
Проверяем: .
80
Метод Ферма разложения на множители Википедия

Метод факторизации Ферма — алгоритм факторизации (разложения на множители) нечётного целого числа n{\displaystyle n}, предложенный Пьером Ферма (1601—1665) в 1643 году.
Метод основан на поиске таких целых чисел x{\displaystyle x} и y{\displaystyle y}, которые удовлетворяют соотношению x2−y2=n{\displaystyle x^{2}-y^{2}=n}, что ведёт к разложению n=(x−y)⋅(x+y){\displaystyle n=(x-y)\cdot (x+y)}.
История[ | ]
В начале XVII века во Франции математические идеи начали активно распространяться между учёными посредством переписки. В 1638 году к кругу переписывающихся учёных присоединился Пьер Ферма. Переписка была удобным способом общения, так как Ферма жил в Тулузе, а многие его знакомые учёные жили в Париже. Одним из таких учёных был Марен Мерсенн, занимавшийся распространением писем, пересылкой и связью многих учёных между собой. 26 декабря 1638 года в письме Мерсенну Ферма упомянул, что нашёл метод, с помощью которого можно находить делители положительных чисел, но какие-либо подробности и описание метода он опустил. На тот момент Мерсенн также вёл переписку с французским математиком Бернаром Френиклем де Бесси, занимавшимся, как и Ферма, теорией чисел, в частности, делителями натуральных чисел и совершенными числами. В начале 1