10

Теорема Ферма для четвертой степени1

Только сразу предупреждаю, что мне хорошо известно, что эта теорема была доказана аж в 1994 г. сэром Эндрю Уайлсом с коллегами, но только лишь с третьей попытки. По разным источникам это его доказательство занимает от 150 до 300 страниц печатного текста. И при таком объеме вполне вероятно какое-либо упущение по мнению профессиональных математиков. Но в данном случае речь не об этой особенности.

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

Для нахождения решения уравнения A^4 + B^4 = C^4 достаточным условием является существование тройки чисел x, y и z, когда 2*z^4 = (x^8 + y^8). Казалось бы на первый взгляд, в чем тут смысл и зачем перебирать на компе числа x, y и z вместо A, B и C. А вы только посмотрите на степени этих чисел и какие величины они представляют. Короче говоря, числа x, y в восьмых степенях сразу же выводят нас в какие-то невероятные космические масштабы. Да и z в четвертой степен при этом не намного хуже.. Ну и при их определенных значениях даже в пределах 16-разрядной компьютерной арифметики получаются величины, возможно превосходящие количество элементарных частиц во вселенной. Короче говоря. это не тупой перебор, а вполне осмысленный и выборочный.

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

A = x * y * z;

B = (x^4 - y^4) / 2;

C = (x^4 + y^4) / 2;

Лично я для отладки своего софта разок прокрутил этот перебор в пределах 64К, но так и не получил этим самым какого-нибудь положительного результата. Впрочем, если бы и получил, то очень удивился бы этому. Конечно же я после этого попытался увеличить диапазон от 64К до 128К, но процесс длился настолько медленно на компе, что моего терпения хватило лишь на 20К свыше 64К, после чего я это дело прервал.

Популярная наука

1.4K постов6.1K подписчиков

Правила сообщества

Уважительно относитесь ко всем участников группы вне зависимости: от пола, возраста, религии, расы. В группе не приветствуется политика и спам.
7
Автор поста оценил этот комментарий
ответный пост

Я недавно просмотрел видео, где один преподаватель математики доказывал теорему Ферма для четвертой степени: уравнение A^4 + B^4 = C^4 не имеет решений на множестве натуральных чисел, больших 0. И буквально в самом начале он привел там уравнение A^4 +- B^4 = C^2, для которого доказано еще хрен знает когда (кажется Эйлером), что оно тоже не имеет решений в том же множестве чисел. Признаться, я тогда подумал, что на этом доказательство завершено. Просто всмотритесь внимательнее - вполне очевидно, что формула Ферма является частным случаем формулы Эйлера. Ведь, если нет решения для C^2, то тем более не может его существовать для C^4. Однако лектор затянул доказательство еще часа на 2, использую разные формулы и умозаключения. И уже буквально в середине лекции ему не хватало латинских букв для обозначения разных переменных.

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

Добавлю только напоследок, что этим Эйлером была доказана теорема Ферма не только для четвертой степени, но также и для всех степеней свыше, кратных 4.

комментарии (6)
0
Автор поста оценил этот комментарий

То, что x+x=2*x, абсолютно не означает, что расчеты верные.

Например для unsigned int64

2^63+2^63=2*2^63, но сами вычисления будут неверные. В компьютере используется модульная арифметика.


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


Если вы взяли диапазон до 64000, то в нем нет уж очень больших чисел это все входит в 2 байта.

О какой разрядности у вас идёт речь?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Уважаемый, вы очень уж далеки от математики и информатики. Просто при возведение числа 64к в восьмую степень получается:

(64 * 1024)^ 8 = 340282366920938463463374607431768211456


Ну и попробуйте впихнуть это в 2 байта.


Очень интересно, а что лично вы называете разрядностью? Вероятно мы с вами говорим на каких-то совершенно разных языках.

показать ответы
0
Автор поста оценил этот комментарий

Если это нужно для тестирования, то выглядит очень странно. Для тестирования нужны данные с известным ответом.

А тут смысла нет. Ну ваши вычисления дают ответ "нет решения". А где гарантия, что сами вычисления без ошибок?


64к это числа длиной 64000 цифр?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Многоуважаемый Becouse1977! Сразу вижу, что у вас слишком уж маловато опыта для отладки некоторых систем. Неужели вы и в самом деле всерьез думали, что мы с самого начала не проводили проверки типа __assert(X + X == X * 2), __assert(X + X == X << 1) и т.п. Просто жизненный опыт показывает, что для надежной отладки в таких случаях необходимо даже не миллионы проверок, а миллиарды, если даже не больше. И теорема Ферма - один из наилучших способов для таких проверок. И, если бы приложение выдало положительный результат, то это была бы очевидная ошибка в каком-либо из методов С++ класса.


Я тут в посте не написал, что на самом деле равенство 2 * z^4 == x^8 + y^8 не и имеет ни одного решения в допустимых для теоремы Ферма диапазонах. Строго говоря, это было кем-то и когда-то доказано для случая 2 * z^2 == x^4 + y^4. Ну, а верхняя формула, как это очевидно, является частным случаем второй.


И еще странный вопрос. Просто для программистов 64К == 64 * 1024.

показать ответы
1
Автор поста оценил этот комментарий

Так доказано, что решения в натуральных числах у уравнения X^4 + Y^4 = Z^4 нет, зачем тогда пытаться его искать перебором

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества