<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Результаты 22 чемпионата по написанию запутанного кода на яз...</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html</link>
    <description>Опубликованы (http://www.ioccc.org/years.html#2013) исходные тексты работ (http://www.ioccc.org/2013/whowon.html), победивших в двадцать втором конкурсе IOCCC (International Obfuscated C Code Contest), целью которого было  написание наиболее запутанного и трудноразбираемого кода на языке Си. &lt;br&gt;&lt;br&gt;&lt;br&gt;Участвующие в конкурсе работы, с одной стороны, должны препятствовать анализу кода и пониманию сути решаемой задачи, но, с другой стороны, код должен быть интересен и чем-то примечателен, например, быть необычно оформленным или выделять неожиданные стороны языка Си. Размер исходного кода программы не должен превышать 4096 байт, программа должна собираться и выполнять какое-либо осмысленное действие.&lt;br&gt;&lt;br&gt;&lt;br&gt;Лучшие работы: &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-   Adrian Cable (http://ioccc.org/2013/cable3/) - эмулятор IBM PC, способный запустить MS DOS и такие программы, как Windows 3.0, Excel, MS Flight Simulator, AutoCAD, Lotus 1-2-3;&lt;br&gt;&lt;br&gt;&amp;lt;center&amp;gt;&amp;lt;a href=&quot;http://ioccc.org/2013/cable3/screenshot_flightsim4.png&quot;&amp;gt;&amp;lt;img src=&quot;http://www.opennet.ru/openne</description>

<item>
    <title>Результаты 22 чемпионата по написанию запутанного кода на яз... (chorny)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html#57</link>
    <pubDate>Sat, 11 Jan 2014 02:33:38 GMT</pubDate>
    <description>не совсем то: http://docs.python.org/faq/programming#is-it-possible-to-write-obfuscated-one-liners-in-python&lt;br&gt;</description>
</item>

<item>
    <title>Результаты 22 чемпионата по написанию запутанного кода на яз... (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html#56</link>
    <pubDate>Fri, 10 Jan 2014 11:27:42 GMT</pubDate>
    <description>&amp;gt;решаем систему уравнений -- относительно коэффифиентов в данном случае.&lt;br&gt;&lt;br&gt;Идея мне понятна. Но вот в данном конкретном случае я немного застрял. У меня получается, что количество переменных больше, чем количество уравнений в системе.&lt;br&gt;&lt;br&gt;H &#037; A &#037; B &#037; C = D &amp;lt;=&amp;gt; H - q1*A - q2*B - q3*C = D&lt;br&gt;&lt;br&gt;Даже зная H (числа, получающиеся из четырех букв президента), получается, что частные q1, q2 и q3 в каждом уравнении свои независимые, а D может принимать значение либо 0 (знаем, что демократ) либо неопределенное &quot;от 1 до C-1&quot;. Плюс ограничение на то, что все числа натуральные. Не думаю, что тут можно решить систему иначе, как тупым перебором.&lt;br&gt;</description>
</item>

<item>
    <title>Результаты 22 чемпионата по написанию запутанного кода на яз... (Andrey Mitrofanov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html#55</link>
    <pubDate>Thu, 09 Jan 2014 16:02:32 GMT</pubDate>
    <description>&amp;gt; какой-то метод! Есть у кого-нибудь догадки?&lt;br&gt;&lt;br&gt;Сначала нужен Гений, придумавший общую конструкцию. Или Художник, укравший оную.&lt;br&gt;&lt;br&gt;Потом, для таблицы входных и выходных значений, подставляемых в, решаем систему уравнений -- относительно коэффифиентов в данном случае.&lt;br&gt;&lt;br&gt;Делов-то. Достаточно кудрявая функция, таблица из 51 или сколько их там президентов -- и вперёд по кочкам.&lt;br&gt;&lt;br&gt;То есть грубо можно считать, что те 51 бит (да-нет, демократ-комунист) почти что забиты в коэфициенты.&lt;br&gt;</description>
</item>

<item>
    <title>Результаты 22 чемпионата по написанию запутанного кода на яз... (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html#54</link>
    <pubDate>Thu, 09 Jan 2014 15:54:56 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Там два магических числа в коде:) выбор нужного бита внутри кодового int-a &lt;br&gt;&amp;gt;&amp;gt; - по первой букве фамилии &lt;br&gt;&amp;gt; По четырём же байтам, а не по первой букве. Не &quot;нужного бита&quot;, &lt;br&gt;&amp;gt; а спец.подобранные коэффициенты в типа-хэше -- для ограниченного множества вх.данных выдающие &lt;br&gt;&amp;gt; нужные ответы.&lt;br&gt;&amp;gt; ---Куда делся ответ другого анонима с читаемым кодом?&lt;br&gt;&lt;br&gt;Да, очень похоже на хэш. Но все-таки интересно выяснить, как именно автор подобрал магические числа и почему их три. Должен же там быть какой-то метод! Есть у кого-нибудь догадки?&lt;br&gt;</description>
</item>

<item>
    <title>Результаты 22 чемпионата по написанию запутанного кода на яз... (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html#53</link>
    <pubDate>Thu, 09 Jan 2014 15:49:29 GMT</pubDate>
    <description>Никуда не делся, он чуть выше. Я просто решил отвечать на более раннюю просьбу объяснить.&lt;br&gt;</description>
</item>

<item>
    <title>Результаты 22 чемпионата по написанию запутанного кода на яз... (Andrey Mitrofanov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html#52</link>
    <pubDate>Thu, 09 Jan 2014 13:37:09 GMT</pubDate>
    <description>&amp;gt; Там два магических числа в коде:) выбор нужного бита внутри кодового int-a &lt;br&gt;&amp;gt; - по первой букве фамилии &lt;br&gt;&lt;br&gt;По четырём же байтам, а не по первой букве. Не &quot;нужного бита&quot;, а спец.подобранные коэффициенты в типа-хэше -- для ограниченного множества вх.данных выдающие нужные ответы.&lt;br&gt;&lt;br&gt;---Куда делся ответ другого анонима с читаемым кодом?&lt;br&gt;</description>
</item>

<item>
    <title>Результаты 22 чемпионата по написанию запутанного кода на яз... (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html#51</link>
    <pubDate>Thu, 09 Jan 2014 13:20:15 GMT</pubDate>
    <description>Не могли бы вы развернуть свою мысль? Что-то я сомневаюсь в вашем утверждении.&lt;br&gt;</description>
</item>

<item>
    <title>Результаты 22 чемпионата по написанию запутанного кода на яз... (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html#50</link>
    <pubDate>Thu, 09 Jan 2014 12:00:54 GMT</pubDate>
    <description>Там два магических числа в коде:) выбор нужного бита внутри кодового int-a - по первой букве фамилии&lt;br&gt;</description>
</item>

<item>
    <title>Результаты 22 чемпионата по написанию запутанного кода на яз... (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/93437.html#49</link>
    <pubDate>Thu, 09 Jan 2014 09:05:12 GMT</pubDate>
    <description>Если попытаться написать читаемый эквивалент, то выйдет следующее (я не проверял работоспособность!)&lt;br&gt;&lt;br&gt;int main(int argc, char **argv)&lt;br&gt;&#123;&lt;br&gt;if ( (*(int*)argv&#091;1&#093; &#037; 4796 &#037; 275 &#037; argc) == 0 ) /* argc == 4 */&lt;br&gt;puts(argv&#091;3&#093;);&lt;br&gt;else&lt;br&gt;puts(argv&#091;2&#093;);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;Первые четыре буквы имени президента приводятся к int (причем из-за Little Endian байты интерпретируются в обратном порядке: так, obama превратится в 0x6D61626F - &apos;mabo&apos;). Дальше происходит какой-то фокус с остатками от деления. Кто поймет его - поймет смысл программы.&lt;br&gt;&lt;br&gt;Имеет смысл посмотреть, как президенты распределены во времени были. Думаю дальше...&lt;br&gt;</description>
</item>

</channel>
</rss>
