А заметили - как только итория не про еврейский пиздунец, не о "бобаизбранном народе", так сразу интересно читать?
После того как количество желаний стало равно нулю, нужно вычесть ещё единицу за то желание, которое только что исполнилось, будет -1 (исполнил желание, чтоб был 0).
В компьютерных системах числа представлены в двоичном формате и имеют фиксированный диапазон значений.
Джин использовал 16-битное беззнаковое число.
Если вычесть 1 из 0 в системе с 16-битным беззнаковым целым числом, результатом будет 65535
Попросить увеличить количество желаний нельзя, но, может быть, можно попросить подогнать трех джиннов, каждого с тремя желаниями?
Повезло, что:
- столь древняя версия ПО матрицы не оперирует понятием signed integer.
- видимо столь же древний процессор не генерирует аппаратное прерывание integer overflow.
С джиннами оно ведь как? Цитата:
"...и сказал в своём сердце: «Всякого, кто освободит меня, я обогащу навеки». Но прошло сто лет, никто меня не освободил. И прошло ещё сто лет, и я сказал: «Всякому, кто освободит меня, я открою сокровища земли». Но и на этот раз никто не освободил меня. И надо мною прошло ещё четыреста лет, и я сказал: «Всякому, кто освободит меня, я исполню три желания». Но никто не освободил меня, и тогда я разгневался сильным гневом и сказал в душе своей: «Всякого, кто освободит меня сейчас, я убью, но предложу выбрать, какой смертью умереть»... "
Интересно как бы Линус выкрутился?
И уж. если Линус, то скорее нарвался бы он на демона, нет?
Ну, это вообще просто эксплойтнуть. Цитирую Тириона Ланнистера:
"How would you like to die, Tyrion son of Tywin?"
"In my own bed, with a belly full of wine and a maiden's mouth around my cock, at the age of eighty," he replied.
Mike Mihalych➦Obake• 21.02.25 12:28
Демоны у него в подчинении. Точнее, он умеет ими управлять. ;-)
Сейчас пришла в голову такая трактовка: это даже не развод джинна на количество желаний. Линус просто проверял, не находится ли он внутри компьютерной программы. Он же перед этим думал о матрице. И удостоверился, что счётчик желаний работает по принципу кода. То есть мы имеем дело с поставленным научным экспериментом.
andreydv1 ★★★➦Michael Ashnin• 19.02.25 23:43
Принцип такой: допустим переменная 3-хбитовая. Если с десятичной системой аналогию проводить, то на трёх позициях максимальное число при трёх разрядах будет 999 (и количество комбинаций 1000 - от 0 до 999). Если из 003 отнять 3 и ещё 1, то получится -1. Так вот, если система будет из трёх позиций, то машина, отнимая от 003 четвёрку, получит не минус один, а перещёлкнется на 999. Этот прикол и использовал Линус в данной байке.
Michael Ashnin ★★★➦andreydv1• 20.02.25 07:28
Спасибо, но я безнадёжен, самому иногда смешно — какой же я чайник!
Старый и ленивый, заточенный под одну функцию…
Спасибо ещё раз — я оценил вашу благожелательность.
Kelavrik_0➦Michael Ashnin• 20.02.25 10:29
Числа записывают как степени двойки. Пусть двух битовая переменная. Первый бит А, второй В. Число воспринимается А*2+В. Но В может быть только 0 или 1. Если А=1 и В=1, то имеем число 3. Допустим добавляем 1 как при сложении в столбик. В превращается в 0, единица переходит на нижний разряд, то есть к А. А+1 тоже ноль, но другого то разряда нет и получается А=0, В+0.
Pierre Valenkoff➦Michael Ashnin• 21.02.25 03:15
> заточенный под одну функцию…
В UNIXе (компьтерная операционная система) есть принцип: программа должна выполнять одну функцию, но делать это хорошо. Кратко: Делай одно, делай это хорошо :-)
Random➦Michael Ashnin• 21.02.25 03:37
Kelavrik_0, ну вот представьте, что вы анестезиолог и говорите про дыхательную функцию под опиатами.
Что будет понятнее среднестатистическому собеседнику без специальных знаний?
Вариант 1) «Опиаты повышают респираторную депрессию до летальных величин».
или
Вариант 2) «Дыхалка на герыче ваще в жопу братан, ты эта, не бухай особо».
Так вот, Миша, вот вам вариант #2 касательно данной истории. Есть ячейка. Хранит ровно одну цифру, от 0 до 9. Когда в ней ноль, и мы делаем -1, то получается 9. Было бы 9, сделали бы +1, получили бы 0. Всё.
Kelavrik_0➦Random• 21.02.25 10:55
Да тут знаний на уровне простейшей арифметики. В отличии от анестезии.
Mike Mihalych➦Michael Ashnin• 21.02.25 12:31
Представьте, что Вы скручиваете счетчик пробега на автомобиле. Старый, механический, как в "Жигулях" или "Москвичах". Если сильно перекрутить, то счетчик после 00000 покажет 99999. В байке описывается примерно такой же случай. 2 раза. ;-)
Random➦Mike Mihalych• 21.02.25 14:55
Браво! Реквестирую больше простых, понятных и правильных аналогий.
Random➦Kelavrik_0• 21.02.25 15:49
Да, это интуитивно для меня и вас, но отнюдь не для обычного человека :) Анестезия тоже в общем-то простейший ответ физиологии на уровне агонистов/антагонистов нескольких рецепторов, не сложнее разрядов имхо, а вот гляди ж ты как влияет на жизнь.
andreydv1 ★★★➦Mike Mihalych• 21.02.25 23:11
Вот это самое наглядное объяснение. И главное правильное.
Вот только тип не указал. Signed или unsigned. Кто его знает, что у них там по умолчанию декларируется...
Хренонимус ★➦Коммутатор• 20.02.25 12:21
Дык! От 16ти до 32х бит всего десяток лет прошел ;)
Random➦Хренонимус• 20.02.25 18:34
У Доктороу была прекрасная повесть на эту тему: https://craphound.com/walh/Cory_Doctorow_-_With_a_Little_Help.html
Random➦Хренонимус• 21.02.25 01:37
Epoch. Right.
На самом деле, 19 января 2038 наебнутся ооочень многие системы, от кассовых аппаратов до банкоматов (которые по слухам до сих пор на коболе, а по лично виденным примерам, от ХР до OS/2).
Хренонимус ★➦Random• 21.02.25 12:22
Вот за коболь и индустриалку - да. Невидимый ИТ он такой. Работает спокойно, никого не трогает, никто его не трогает, пока, внезапно, не работает.
И работать это будет до первого вселенского патча. А вот ЛЛео Каганов эту идею (бесконечные три желания) реализовал через методы социальных графов: https://lleo.me/arhive/fan2004/piramida.shtml
andreydv1 ★★★➦dobrovit• 20.02.25 08:40
Всякое в жизни случается. Ещё недавно куча народа слушало гречку.
Уже ниже я писал, что улыбнуло. Цитата из истории:
>ваши джинновые серверы записывают количество желаний в целочисленные переменные и не хранят информацию об отрицательных значениях
Вообще ЭВМ пофиг какое число - с минусом, или без. Если оно целое, то что -1, что 1 - это type integer. Диапазон целых чисел разный в разных ЯП, что то вроде от -32000 до 32000.
И
> переменная переполнится
- это лютый треш. Для тех кто в курсе.
Вспоминаем информатику: переменная - это зарезервированная область в оперативной памяти, в которой в которой хранятся данные какого либо типа. И ЭВМ пофигу с минусом, или без целочисленные переменные. Так то это дыра в безопасности, если программа отработает так, как написано в истории
kamakama ★➦proctoleha• 19.02.25 17:10
Ассемблерам пофиг на дыры. Сказали XOR - значит XOR. А то, что мы там не байты складываем, а числа - это его вааще не ебет.
perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
vap➦proctoleha• 19.02.25 17:16
Но на распространенных ныне архитектурах двоичное представление шестнадцатибитного беззнакового 65535 такое же, как и для шестнадцатибитного знакового -1. И, кстати, в большинстве языков ничего плохого не случается, если из беззнакового вычесть что-то, что дало бы отрицательный результат. В Си так, насколько помню, даже официально можно (в отличие от знаковых - там по стандарту будет неопределенное поведение).
Kelavrik_0➦proctoleha• 20.02.25 10:22
Уфф! Числа отрицательные и положительные складывают одинаково, это верно. Но разная интерпретация чисел.
Коммутатор➦vap• 20.02.25 10:46
Окромя включенных опций проверки современных компиляторов, которые вызовут SEH и, если он не перехвачен, оно приведет к terminate.
Анекдот - чушь, и Линуса приплели зря, он не такой дурак. Было же условие - нельзя больше желаний, поэтому все фокусы, в результате которых следующее количество больше предыдущего - невозможны.
По условию "нельзя желать больше желаний." То есть нельзя формулировать запрос вида "Wishes=Wishes++", "Wishes=Wishes+N", "Wishes=N*Wishes", где Wishes и N беззнаковые целые. А вот запрос вида "Wishes=Wishes-N" при таких же ограничениях на Wishes и N допустим: это желать МЕНЬШЕ желаний.
А то, что реализовано через задницу - так это нормально. Оно всегда так реализовано. Вон, Сухие из Питера вылететь не могли. Идиотизм? Конечно.
Анекдот не чушь, а очень реалистичная притча. Можно студентам рассказывать, например. Здесь обыгрывается реально существующая классическая компьютерная уязвимость. Очень, очень многие люди в истории именно такие условия в своей программе и поставили, и это было для них не к добру.
Я эту уязвимость году примерно в 1995 нащупал интуитивно :)
Была такая игра, Elite, векторная 3D-графика.
Стрелять по врагам нужно лазерам, судорожно совмещая прицел в трех координатах, а они обратно палят.
И были самонаводящиеся ракеты. Были они дорогие, в бей помещалось три штуки. Наводишь на цель и жмешь файр.
Не знаю каким чудом, но я навел ракету, затем задокился со станцией, продал ракету, вылетел со станции и выстрелил.
И хуяк! 255 ракет в бее.
До сих пор помню чувство абсолютного контроля над тканью бытия, испытанное в тот момент.
Kelavrik_0➦Random• 20.02.25 10:19
Одна девушка нашла эту же уязвимость в 3 героях на случайной карте. Там она оказалась изолирована и сидела ждала нужного артефакта, чтоб перелететь через горы. Ну и дождалась отрицательного числа алмазов.
Очень хорошо. С точки зрения самой идеи одна из самых смешных историй в рунете за последнее время.
Миндербиндер➦Awn• 19.02.25 16:28
Ну все сходится — Торвальдс думал, что нашёл бутылку с коньяком, а она оказалась с джином. Все остальное — пьяные галлюцинации Торвальдса, который перебрал можжевеловой водки.
Напомнило вопрос про чёрного кота:
удваивает он или отменяет дурность
предзнаменования, если дорогу вам
перейдёт, а потом вернётся назад?..
Все такие умные, про матрицу рассуждают, про переменные. Меня волнует более приземленный вопрос, про 72 девственниц! Где их содержать, в моей двухкомнатной брежневке? Значит надо и дворец, и миллион, чтоб содержать всё это. Проще сорвать джекпот в миллиард , в Столото.
Хренонимус ★➦demontag• 19.02.25 19:59
Так там стартовый пакет сразу предлагался: дворец, миллион динар и толпа девственниц ;)
Лишь бы прозекторы не стали тоже слать сюда профюмор.
Всё-таки раздел историй, а не басен.
Ну, это, конечно, в анекдотах должно было быть. А в остальном почему нет? Что, истории про вытащенную стрелу и подозрение на простатит сильно лучше?
Зачем равняться на придурка оби? Того всегда минусую. А "простатит" прям в точку лёг. Надеюсь, автор меня послушает и подстрахуется. Вдруг полное совпадение. Будет польза (афтырю) от неформата.
А к этому произведению в анекдотах не имел бы никаких претензий.
Генрих Монт ★➦MasterIvanov• 19.02.25 15:13
По данным опроса, более 90% людей убеждены, что слово «конгениально» является превосходной формой наречия «гениально». То есть если человек является даже более гениальным, чем гений, то он «конгениален». Но, к сожалению, это неправильно! Слово «конгениальный» пришло к нам из латыни и дословно обозначает «схожий по духу». Таким образом мы получаем, что «конгениально» - это близко по духу. Если вы назвали человека «конгениальным», значит, вы имели в виду то, что он схож с вами по образу мышления и ценностям.
Как только я захотел выпить, мне позвонил друг и позвал в бар: этот человек конгениален!
MasterIvanov ★★➦SV• 19.02.25 15:19
"Я ждал тебя, мой нежный критик!" Твою дружескую заботу, интерес к моему комменту и поддержание разговора.
Ваше обращение на Вы только наше состояние близости и атмосферы уважения на этом сайте! Если Вы, конечно, не людоед!
Yggaz➦Генрих Монт• 20.02.25 08:28
Нет в языке понятия "правильно/неправильно". Есть "принято". И увы, язык меняется. Мне тоже не нравится, что "нелицеприятный" используют как усиленный вариант "неприятный" (а не "беспристрастный", как было), а слово "довлеть" понимают как "оказывать давление" (а не "быть достаточным", как было). Но если 90% людей понимают "конгениальный" как "очень гениальный" - вероятно, это слово теперь принято использовать именно в этом значении. А я опасаюсь, что там уже не 90, а 97% :).
Ага, а если бы у Джина оказалась арифметика многократной точности, а не в виде двухбайтного слова типа Integer*2, то дырку от бублика он бы получил, а не переполнение массива.
AleM ★➦John Doe• 20.02.25 12:23
А я не про историю, я про арифметику многократной точности? Не приходилось с таким сталкиваться, когда нужно перемножить или сложить два десятичных числа с тысячью знаков в каждом?
А потом он сел повышать привилегии до Root, вышел за пределы защищенной памяти, и словил kernel panic. Поэтому, в нашей версии реальности эта история осталась только в виде данного лога.
kamakama ★➦2haw2• 19.02.25 17:11
А потом Линус сказал ему - просто повторяй, не думай
perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
На самом деле, требовать сделать переменную 16 битной не нужно, это лишняя работа и лишний шанс, что что-то пойдет не так.
Достаточно было загадать 2 желания, а на последнем попросить минус 1 желание и снова получить 3 желания. Повторять до бесконечности.
Random➦Пан хулиган• 19.02.25 15:34
Каганов нечто похожее реализовал, но не так прямолинейно.
https://lleo.me/arhive/fan2004/piramida.shtml
Хе хе ... А кто сказал, что там не вещественный тип данных? Матрица-то аналоговая )
2haw2 ★➦proctoleha• 19.02.25 13:24
65536, но 0 это тоже состояние. Так что всё правильно подсчитано.
Отличная идея, повеселили. Но если бы переменная была signed, а не unsigned?
karag0➦Kelavrik_0• 19.02.25 13:34
Если бы переменная, хранящая количество желаний, была знаковой, то результат зависел бы от того, как джин обрабатывает переполнение и отрицательные значения.
karag0➦Kelavrik_0• 19.02.25 13:38
Тем более джин работает с переменными напрямую, типа древний как ассемблер, и для него нет понятия signed/unsigned
2haw2 ★➦Kelavrik_0• 19.02.25 13:45
Тогда Линус бы с ок-фейсом пошёл исполнять желания джинна, разумеется!
Kelavrik_0➦karag0• 19.02.25 14:10
В шутящих физиках была история про -2 рыбы. https://www.anekdot.ru/id/271033/
Что я написал, к него нет понятий переменных он манипулирует битами на прямую
Коммутатор➦Kelavrik_0• 20.02.25 09:58
Очевидно в 900 годах до нашей эры не было понятия отрицательных чисел. Так что никаких signed. Правда и нуля тогда не было.
P.S. Могу ошибаться по эпохе, когда ввели понятие отрицательных чисел.
Коммутатор➦Коммутатор• 20.02.25 10:04
Вроде бы согласуется с Википедией:
Впервые отрицательные числа были частично узаконены в классическом китайском трактате «Математика в девяти книгах» (II в до н. э.), а затем (примерно с VII века) и в Индии,...
Коммутатор➦Kelavrik_0• 20.02.25 12:45
О чем нам и поведал автор в аватаре Линуса Торвальдса.
Идея текста - замечательная.
Исполнение подкачало.
И место для публикации - не соответствует совершенно.