Мозговые Разливы: Восстановление Функции на C из Ассемблера | 09 ноября 2023 года, 08:49

Помните, я в прошлый раз писал про “домашку” Лизе по битовым операциям по какому-то курсу Computer Science, которая взорвала мне мозг? Через неделю Лиза поделилась новой “домашкой”, и она взорвала мне мозг вдвойне. Дан код на ассемблере, нужно восстановить функцию на C, которая генерит такой код, на определенной архитектуре (доступ к gcc и as туда дается).

В общем, из Лизы получается довольно многогранный архитектор.

A Flicker of Genius | 08 ноября 2023 года, 16:02

my 30th painting. some random guy

дяденька какой-то смотрит вдаль. Тридцатая попытка что-то сделать маслом

#еще10000ведеризолотойключикунасвкармане

Slacks Lazy AI Assistant? | 08 ноября 2023 года, 13:11

Забавное с презентации OpenAI: если дообучить модель на сообщениях из Slack стартапа, то ассистент может отказаться что-то делать сейчас и ответит что сделает это завтра

Проваливший транзит: Загадки и ловушки при перелёте через Турцию | 08 ноября 2023 года, 08:23

(Спасибо всем, разобрались, что не вариант. После невыполнения первого сегмента (или его части) второй отменяется – и это делает всю затею невыгодной)

Нужно в Турцию. Билет до Будапешта через Турцию стоит $680, билет тупо до Турции в те де самые сроки и той же Turkish Airline стоит $1100. Разница на двоих больше 700 долл с налогами. Понятно, что можно купить до Будапешта и выйти просто в Турции. Но как сказать багажу не ехать в Будапешт?

А что с обратным билетом? Можно ли сесть посередине маршрута?

Unlikely Connection: Gloria Jeans Coffee and the Russian Retail Giant | 07 ноября 2023 года, 10:44

Интересно, но кофейня Gloria Jeans не имеет вообще никакого отношения к магазинам Gloria Jeans в России, Казахстане, Беларуси. Кофейня — американская, существует с 1979 года и называется так по имени освновательницы Gloria Jean Kvetko. То есть, джинсы тут не при чем. А компания Глория Джинс ведет историю от кооператива Глория, основанного в 1988, и да, они шьют джинсы, и даже, молодцы, много шьют на своих фабриках, а не в Китае. Это как раз про них история была, что владелец Владимир Мельников принял решение выплатить по миллиону рублей всем сотрудникам, проработавшим в компании от 10 лет.

Битовая бомба: тайный код на чистом С | 06 ноября 2023 года, 10:47

У Лизы в институте курс программирования на чистом С, по сути первый семестр. На третьем месяце обучения им приходится делать вот такие домашки:

нужно написать функцию int isLess(int a, int b) исключительно на операторах ! ~ & ^ | + <> и константах 0-255 включительно без использования больших констант типа 0xffffffff, без использования условных конструкций и циклов (if, do, while, for, switch, и т.д.), без макросов, без вызовов любых функций, никаких &&, ||, -, ? никаких других типов данных кроме int.

Есть очевидный ответ y + (~x + 1) >> 31) & 1, то есть вычитается y из x и дальше смотрим на знак. но для пары чисел -2147483648 [0x80000000] и 2147483647[0x7fffffff] алгоритм сбоит – он возвращает ноль, а тесты ожидают единицу. Это потому, что идет выход за 32 бита int при вычислении разницы.

Разумеется, я спросил и у ChatGPT, и у Google Bard. От них помощи ноль. Они не понимают проблемы из предыдущего параграфа. А если и понимают, предлагают тупое решение, которое видно невооруженным глазом, что не работает.

Мы в итоге после часа ковыряния нашли правильное решение в четыре руки. Лиза молодец, практически весь путь сама прошла, плюс гугл поиск. Решение вышло очень сложное, но работает. Там около 15 bitwise операций в итоге. После свертки функций и превращения в одно выражение со скобками — а так требуется по условию задачи — понять что там вообще происходит невозможно. Интересно в архитектурных университетах программирование проходят.

ответ: ((~(((a ^ b) >> 31) ^ 1) ^ 1) & ((a + (~b + 1)) >> 31) & 1) | (((a ^ b) >> 31) & 1) & ((a >> 31) & 1);

Самое интересное, что wolframalpha при запросе simplify и выражение, упрощает его так, что оно начинает не проходить тесты. То есть, wolframalpha конечно тоже не знает про ограничение в 32 бита.