Прочитав на Храбре статью «Неопределённое поведение и теорема Ферма», я тоже твердо решил получить свои 100 000 DM по завещанию математика Вольфскеля.
Задача в общем-топроста:
Для любого натурального числа уравнение a^n = b^n + c^n, где n>2 не имеет решений в целых ненулевых числах a, b, c.
Честно скопировав алгоритм из вышеприведенного поста:
(a, b, c – соответствующие теореме переменные. step – степень, в которую возведены переменные. rez – результат вычисления формулы «a^n – (b^n + c^n)». count – счетчик кол-ва попыток), я запустил скрипт с параметром степени равным 2. Ответ не заставил себя долго ждать: 25 = 16 + 9. Ну это-то понятно.
Далее добавил в код дополнительное условие — увеличение параметра step (степень) при достижении переменной c значения больше $MAX (принятым за 1000 для каждой переменной теоремы).
И, о чудо, сев утром за компьютер, увидел такую картинку:

Т.е. 512^6 = 512^6 + 1^6.
Perl встал в очередь за C++ за Нобилевской премией и вожделенными 100 000 DM.
В Perl есть инструкции для произведения инженерных расчетов правильного округления и т.д., но к сожалению, теорема тогда не решается.
Задача в общем-то
Для любого натурального числа уравнение a^n = b^n + c^n, где n>2 не имеет решений в целых ненулевых числах a, b, c.
Честно скопировав алгоритм из вышеприведенного поста:
while ($suc){
$rez1=($a**$step) - (($b**$step)+($c**$step));
if ((($a**$step) == (($b**$step)+($c**$step)))) {$suc=0}
$a++;
if ($a>$MAX) {
$a=1;
$b++;
}
if ($b>$MAX) {
$b=1;
$c++;
}
if ($c>$MAX) {
$c=1;
;}
$count++;}
(a, b, c – соответствующие теореме переменные. step – степень, в которую возведены переменные. rez – результат вычисления формулы «a^n – (b^n + c^n)». count – счетчик кол-ва попыток), я запустил скрипт с параметром степени равным 2. Ответ не заставил себя долго ждать: 25 = 16 + 9. Ну это-то понятно.
Далее добавил в код дополнительное условие — увеличение параметра step (степень) при достижении переменной c значения больше $MAX (принятым за 1000 для каждой переменной теоремы).
if ($c>$MAX) {
$c=1;
$step++;}И, о чудо, сев утром за компьютер, увидел такую картинку:
Т.е. 512^6 = 512^6 + 1^6.
Perl встал в очередь за C++ за Нобилевской премией и вожделенными 100 000 DM.
В Perl есть инструкции для произведения инженерных расчетов правильного округления и т.д., но к сожалению, теорема тогда не решается.