- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
int fermat (void)
{
const int MAX = 1000;
int a=1,b=1,c=1;
while (1) {
if (((a*a*a) == ((b*b*b)+(c*c*c)))) return 1;
a++;
if (a>MAX) {
a=1;
b++;
}
if (b>MAX) {
b=1;
c++;
}
if (c>MAX) {
c=1;
}
}
return 0;
}
#include <stdio.h>
int main (void)
{
if (fermat()) {
printf ("Fermat's Last Theorem has been disproved.\n");
} else {
printf ("Fermat's Last Theorem has not been disproved.\n");
}
return 0;
}
Анонимус 11.12.2014 02:14 # 0
што?
Elvenfighter 11.12.2014 02:20 # +1
inkanus-gray 11.12.2014 07:17 # +4
3.14159265 11.12.2014 02:17 # +4
2. Ни шланг 3.5 ни несвежий gcc 4.8 не смогли сделать disprove. Видимо пофиксили...
3. Использовать такой фундаментально дырявый язык как сишечка (речь в первую очередь о переполнениях) для опровержения фундаментальных вещей — ну как бы помягче выразиться моветон.
PS>Мне лет 15 назад один профессор математики, видя моё увлечение программированием говорил что это не математика, а так...
Тогда я не совсем понял его. Но сейчас понимаю, что например хацкелисты со своими бесконечными списками не смогут доказать это:
Elvenfighter 11.12.2014 02:26 # +2
Впрочем, с точки зрения спинлоков такие оптимизации уже не кажутся столь обоснованными...
bormand 11.12.2014 10:40 # +1
У спинлока есть связь со внешним миром.
3.14159265 11.12.2014 14:30 # 0
Если я пишу бесконечный цикл, то я хочу чтобы он не имел конца.
Допустим делаю некий cpu-stress-test, который например останавливается извне по kill -9. Мне не нужны такие "оптимизации".
Soul_re@ver 11.12.2014 16:51 # +2
99.9% людей нужно прямо противоположное, поэтому 1‰ придётся указывать свои пожелания явно.
Elvenfighter 12.12.2014 02:35 # +1
kipar 12.12.2014 12:42 # +2
bormand 15.12.2014 20:36 # +1
1024-- 11.12.2014 10:23 # 0
http://govnokod.ru/16352
Автор поста #16351, видимо, читал #229963 сами-знаете-где. Кстати, автор #229963 цитировал доказательство, которому посвящён обсуждаемый пост, и давал ссылку на Регера.
bormand 11.12.2014 10:29 # 0
Эти циклы и без оптимизации работали неправильно. Хуже не стало.
3.14159265 11.12.2014 14:22 # +1
Причём тут 16351 непонятно.
1024-- 11.12.2014 14:24 # +1
P.S. А #229963 сами-знаете-где - не ошибка.
codemonkey 11.12.2014 10:26 # +1
3.14159265 11.12.2014 14:20 # 0
Как это числа не "числа"? Поясните мысль.
codemonkey 11.12.2014 15:40 # 0
3.14159265 11.12.2014 18:52 # 0
Если, например, просуммировать n*n то получим рациональный бытовой 0.
Почитайте про дзета-функцию и её тривиальные нули.
Ну и заодно чему равно ζ(-1).
blackhearted 15.12.2014 15:01 # −1
TarasB 11.12.2014 14:40 # 0
3.14159265 11.12.2014 15:10 # 0
TarasB 11.12.2014 20:43 # +1
3.14159265 11.12.2014 21:03 # +2
Более простая аналогия: сумма степеней двойки сходится в -1.
TarasB 15.12.2014 19:59 # 0
в классической формуле не выполняется условие для предельного перехода
3.14159265 15.12.2014 20:27 # +1
sum = 1 + q + q² + q³ + ..
домножаются на (1-q) и ряд сгорает.
sum*(1-q)=1, где q=2
sum*(1-2)=1;
-sum=1;
Эйлер, который собаку съел на бесконечных рядах говорил что понятие суммы надо пересмотреть.
С 1+2+3+4+5+... такая же канитель, только там надо заходить издалека:
x = + 1 - 1 + 1 - 1 + ...
x + x = 1.
x = 0.5.
А потом делается финт ушами: производится возвредение в квадрат, , в лучших традициях древни греков - геометрически.
3.14159265 15.12.2014 20:35 # 0
+ 1 - 1 + 1 - 1 +1 ...
- 1 + 1 - 1 + 1 - ...
+ 1 - 1 + 1 + ...
- 1 + 1 - ...
+ 1 - ...
...............
А суммируют это дело по диагонали
1 - 2 + 3 - 4 + 5 ... =(+ 1 - 1 + 1 - 1 + ...)² =¼
После чего хитрыми сложениями самого с собой через (1 - 2 + 3 - 4 + 5 - ...) выводится (1 + 2 + 3 + 4 + 5 - ...)
Никаких пределов тут нет. Чистая арифметика.
Xom94ok 17.12.2014 22:49 # +2
Когда я вижу в арифметике эллипсис, то чую, что что-то тут не так :)
Это всё тлен, как и интеграл синуса от минус до плюс бесконечности, который по логике равен нулю.
Напомнило:
3.14159265 17.12.2014 23:37 # 0
Ну кстати да. А разве не ноль?
sum=x*(x+1)
Если взять от функции суммы арифметической прогресии интеграл по отрицательной части функции (от -1 до 0), угадайте что мы получим?
>Когда я вижу в арифметике эллипсис
Право же где вы увидели "в арифметике эллипсис", эллипсис он в грамматике.
Xom94ok 18.12.2014 00:25 # +2
Как же в грамматике, если он в лексике? TT_ELLIPSIS же.
> >Это всё тлен, как и интеграл синуса от минус до плюс бесконечности, который по логике равен > нулю.
> Ну кстати да. А разве не ноль?
Вот нет. Точную формулировку обоснования не сообщу, ибо мой мозг это не вместил, а на уровне пятого класса выглядит как-то так:
- Петров! Чему равна плюс бесконечность?
- e^e^e, Мариванна!
- Хуй! Садись, два. Я прибавляю единичку и получаю число больше бесконечности.
3.14159265 18.12.2014 13:42 # 0
Представьте себе это графически. Каждой отрицательной области всегда соответствует положительная.
3.14159265 18.12.2014 21:11 # +2
Чёто я сгоряча ляпнул про 0, а сейчас подумал, если он равен нулю, то разность + ∞-(- ∞), должна быть кратна периоду функции. Чего мы утверждать не вправе. Наверное интеграл равен неопределённости.
Ну и проинтегрировать, чему равен cos(∞), ну примерно тому же что и 0*∞.
Разве что попробовать разложить в ряд Тейлора, и там чего-то поискать. Но там она уж совсем явно расходится.
bormand 18.12.2014 21:50 # 0
Угу. Ряд то расходящийся.
3.14159265 19.12.2014 00:22 # +1
Интуитивно-то это понятно, а вот где простое и понятное даже школьнику доказательство?
-cos(∞) — неопределённость, да.
Но он говорил об интеграле, а это разность:
-cos(∞) - (-cos(-∞)) = -cos(∞)+cos(-∞) = -(cos(∞)-cos(-∞))
В лоб это взять нельзя, может через ряд Тейлора, чтобы члены при отнимании сгорели, но я поступлю иначе:
guest 19.12.2014 16:15 # 0
+ 1 - 1 + 1 + ...
- 1 + 1 - ...
+ 1 - 1 + 1 - ...
+ 1 - 1 + 1- 1 + 1 - 1 + 1 - 1 + 1 - 1 + ...)² =¼
После чего циклы начинают работать неправильно.
http://mathemlib.ru/books/item/f00/s00/z0000003/st075.shtml >Это всё тлен, как и интеграл синуса от минус до плюс бесконечности, который не хочет регистре этот бесконечный цикл в любой прошивке (ну и для перезагрузки тоже часто while(true);). А while (true); он и не будет оптимизации работали неправильно.
http://govnokod.ru/16352
Автор поста #16351, видимо, читал #229963 сами-знаете-где - не ошибка. Вид
3.14159265 19.12.2014 16:59 # +2
с-ё--ма да ты неибацца вырос интеллектуально - юзерскрипт смог поставить, лол.
guest 19.12.2014 17:12 # 0
3.14159265 19.12.2014 17:13 # +2
Я тебе так с-ё--ма скажу, ты ж всё-равно тупой как пробка, дай дураку бота генераторного, он и лулз разобьёт и бота сломает.
guest 19.12.2014 17:49 # 0
Arbatan_Pokrovan 31.10.2020 12:31 # +1
TarasB 17.12.2014 23:43 # +1
3.14159265 18.12.2014 15:38 # 0
Ладно не буду.
Рассмотрим ряд:
1 - 1 + 1- 1 + 1 + ...
По сути это геометрическая прогрессия (снова она, да) с q=-1
sum = 1 + q + q² + q³ + ..
sum = 1/(1-q)
Если подставить x=-q
То получим
1/(1+x) = 1 - x + x² - x³ + ..
Возведя обе части в квадрат получаем:
1/(1+x)² = 1 - 2*x + 3*x² - 4*x³ + ..
Строго эта формула доказывается очень просто - раскладываем 1/(1+x)² в ряд Тейлора.
При 0=<х<1 такой ряд явно сходится.
Потому левосторонний предел
1/(1+x)², где x->1-0 даёт нам 1/(1+1)²=¼
1 - 2 + 3 - 4 + .. = ¼
3.14159265 18.12.2014 15:54 # +2
Xom94ok 18.12.2014 02:33 # 0
sum = 1 + q + q^2 + ... + q^inf
Домножим на на (1-q):
sum * (1-q) = (1-q) * (1 + q + q^2 + ... + q^inf)
Раскроем первые скобки правой части:
sum * (1-q) = (1 + q + q^2 + ... + q^inf) - (q + q^2 + ... + q^(inf+1))
Раскроем оставшиеся скобки правой части:
sum * (1-q) = 1 + q + q^2 + ... + q^inf - q - q^2 - ... - q^(inf+1)
Сократим:
sum * (1-q) = 1 - q^(inf+1)
И всё. Не сходится это к минус одному.
3.14159265 18.12.2014 13:43 # +1
Вы забыли inf+1,inf+2,inf+3,итд...
У вас inf - это конечность, после него уже ничего не идёт, а такого быть не должно. Какое бы вы inf не назвали, я всегда могу назвать больше.
Не должно быть конечного члена в бесконечном ряду, в этом и суть парадокса.
Xom94ok 18.12.2014 14:42 # 0
> inf - это конечность, после него уже ничего не идёт
Это понятно, тут нужен другой математический аппарат. Я к тому, что нельзя просто так взять и выкинуть из ряда член, чтобы два бесконечных ряда "схлопнулись" в число.
3.14159265 18.12.2014 16:13 # 0
Я ж говорю Вселенная переполняется, и не может сохранить в регистре этот бесконечный разряд, потому 2^inf выпадает, остаётся -1.
Мы логически понимаем что там бесконечность, но она уходит в carry flag. А где он юзается - неизвестно (может это ничтожные квантовые флуктуации создающие случайную неопределённость для другой четырехмерной вселенной? :D
guest 19.12.2014 16:16 # 0
Ну а то что он про стандартом сравнить.
MAPTbIwKA 02.11.2020 14:41 # 0
Arbatan_Pokrovan 31.10.2020 12:32 # 0
3.14159265 15.12.2014 20:49 # +1
Ну а то что число
11111111111111111111111111... в двоичной системе переполняется в -1 просто означает что наша Вселенная исполняется в дополнительном коде.
kipar 11.12.2014 17:46 # 0
Ну так там (http://blog.regehr.org/archives/161) же написано:
Т.е. gcc и был не подвержен, а шланг исправили.
А вот то что он про стандарт пишет - интереснее, типа в сишном стандарте все зависит от интерпретации, а в крестовом - явно сказано что компилятор может теорему опровергать. Надо бы с последним стандартом сравнить.