Кодові кросворди - рішення


Відповіді:


8

Розв’язання головоломки С1010

введіть тут опис зображення

Мені довелося трохи пограти на 7-Down, викликаючи невизначене поведінку. es1024 вказав, що таке використання UB було запланованим рішенням. Він буде працювати на комп’ютерах більшості людей. Я прийшов з різними виразами досягнення бажаного результату , такі як -1 << 30, 3 << 30, 6 << 29і , ~(~0U/4)але всі вони зробили це неможливим для мене , щоб отримати 5-Across. Тому я використав властивість архітектури Intel, що для визначення розміру лівого зсуву використовуються лише найменш значущі 5 біт. Зауважте, що вона повинна бути, ~_а не ~1такою, щоб сума, яку потрібно перенести, не була константа часу компіляції. Я випробував вирази із наступним кодом:

#define T(X) _ = c; _ = X; printf("%d\n", _);
z[4] = {9};
int main(c)
{
    int _;

    T("01"[0])
    T(-8)
    T(-2)
    T(11<-328111)
    T(+2+71)
    T(9+0)
    T(0**z)
    T(5;)
    T(0<-000)
    T(2+~3)
    T(!91)
    T(!_)
    T(2**z)
    T('_T;')

    T("11"?5*9:2)
    T(15<<9)
    T(0+22)
    T(-211*0-97;)
    T(-17*0)
    T(3+0<<~_)
    T(8+000)
    T(+0)
    T(42)
    T(+!z)
    T(~_)
}

Звідки береться макрос? Я уникав публікувати рішення, оскільки не міг отримати M-через.
COTO

@COTO Я не розумію вашого запитання "Звідки береться макрос?"
feersum

Не звертай уваги. Я неправильно сприйняв #define Tяк необхідний компонент вашого рішення. Однак питання залишається, чому M-через працює? Чи визначає константу з декількома символами просто об'єднувати значення байта? Якщо так, то сьогодні я дізнався щось нове. :)
COTO

@COTO Так, це як зробити базове число-256. Літеральні символи мають тип int, тому ви можете вводити до чотирьох байтів без втрати інформації.
feersum

3
Я точно не знав цього. (Швидше за все, тому, що кожен, хто використовував його у виробничому коді, був задушений людьми, відповідальними за підтримання свого коду.). :)
COTO

8

profesorfish, CJam, 41 дарк

(Це рішення насправді вимагає декількох просторів, тому це не той професорш, який шукали.)

#K###I#'32
#HDJ*s\ ##
2##2#`#`#-
4Zm*`##L#3
m##6##]`' 
f####e#`#'
`#0#'d1+eu
## #!####9
## '{;'"'m
C5(#}####q

Це було чудово весело. Зауважте, що #внизу 6код - це насправді код, а не темна комірка. Перейдемо до цього:

Поперек

Підказка 2: [[4 3]]. Це було одне з хитріших, бо я справді застряг у спробах 4Z]]`чи подібних. Виявляється, ви можете використовувати декартовий продукт m*для речей, які не є масивом, і він створить для вас масив. Отже ось це:

4Zm*`

Підказка 4: 24717. На той час , коли я добрався до цього H, J, sі замикають простір вже були на місці. Те H, що я, ймовірно, міг би просто використати 17та зробити \в кінці. JШтовхає 19і 247 == 13 * 19, таким чином:

HDJ*s\ 

Підказка 7: 32. Є купа способів зробити це: Y5#, 3 2, ZY, YZ\, 4(2, 2)2, '32. Я пішов з останнім, тому що починати з персонажа здавалося перспективним для 7-вниз, і це виявилося правильним.

Підказка 8: E. У мене вже було 'dколи я потрапив туди, тож це було між вибором 'd1+eu, 'deu1+або варіантом, де я використовував, )і пробіл замість 1+(для людей, які не належать до CJam, це приймає dхарактер і приріст, а верхній обріз - у будь-якому порядку) . Однак uу заключній колонці виглядало корисно для A-down. Тому я вибрав першу з них. Зрештою, 'd) euспрацював би теж.

Підказка 9: "". Ну, це повинно бути "порожній рядок, отримати представлення рядків, пробіл". Але також знадобилося `для представлення рядків в 7-вниз, і пробіл в A-down теж здався корисним, тому я вибрав

]`' 

Зауважте, що, ]можливо, також був одним із LMOQR.

Підказка B : "m. Мені просто справді довелося відповідати цьому одному з рештою, але мало символів, які мали значення. У мене вже були {і свої m. Тож замість блоку я перетворився {на персонажа, відкинув його, а потім висунув два необхідних символи:

 '{;'"'m

Підказка D : 124. Я вирішив це разом із C-down, що було найпростіше з декрементом наприкінці. Тож я натискаю 12, 5 і зменшую останнє:

C5(

Вниз

Підказка 1: [2 2 2 3]. Це виглядало занадто підозріло, як основний чинник, щоб він не був. :)

24mf`

Підказка 3: 3010936384. Факторинг цього показав, що насправді це 38 6 . Єдине питання полягав у тому, як домогтися 38відповідності 2-поперек. Врешті-решт мені було потрібно *третє місце, тож подвоєння 19було:

J2*6#

Підказка 5: 2017. Два символи для такої великої кількості? Просто використовуйте вбудовані двозначні змінні:

KH

Підказка 6: "18". Я думаю, що існує лише один спосіб зробити це в трьох символах. Скористайтеся вбудованим 18, перетворіть його у рядок, а потім у його рядкове подання.

Is`

Підказка 7: ' "\"\"". Напевно, найважча частина головоломки. Зокрема, мені потрібно було отримати "\"\""лише три символи. Хитрість полягала в тому, щоб отримати два рази рядкове представлення порожнього рядка. Це призвело до:

' `L``+

THe +не є необхідною, але була потрібна 8-поперечником.

Підказка 8: !{}. Блоку потрібно було ввести код, щоб у нього залишилося лише два символи для !, що означало використання ще одного буквального:

'!{}

Підказка A: -3u3. Маючи uмісце з 8 поперек, я почав ставити -3і 3в кутах, де жоден інший натяк на них не піклувався. Але тоді мені потрібна була mвнизу. Я думаю, що існує кілька способів отримати за 3допомогою _m_, але найпростішим було взяти квадратний корінь 9:

-3 'u9mq

Підказка C: -1. У мене вже був декремент, тому я просто поставив місце, 0де ніхто більше не піклувався:

0  (

Підказка E : Stack: "". Ну, це було найпростіше. Просто зателефонуйте до налагоджувача:

ed

Захоплення Кальвіна говорили , відповідь справедлива. Я відредагую його у своєму дописі

7

COTO, Javascript ES4, 37 Darks

 __________
|{}=51###6#|
|a##.#I-9<4|
|:##-##"#<#|
|5+Math.PI#|
|}##+##.#+#|
|["9"+0][0]|
|'##p##"###|
|a+-a#a=-10|
|'##c##=###|
|]##"\x48I"|
 ¯¯¯¯¯¯¯¯¯¯
  • 6 поперек є 5+Math.PIабо Math.PI+5; але останній залишив би "M" та "h" перехрестя на інші вирази, здавалося, малоймовірним.
  • Поперек повинен був бути рядок; з 4 посередині це виглядало як втеча, єдиний спосіб, де ви маєте місце для цього "\x48I".
  • 2 внизу закінчується рядок, тому, ймовірно, "pac" додається до числа; ми повернемось до цього.
  • 8 ac зараз xxxa, оцінюючи до нуля, так -a + a? a + -a? 3 + -а? a+-aвиглядав найкраще, оскільки він дав мені те, що було схоже на чарівну стрічку в 1дн.
  • 1 містив: 5, що могло бути лише юридичною граматикою в Росії {x:5}xxa'x. Оскільки повернене значення дорівнює 5, його потрібно витягнути з об'єкта, тож {x:5}['a'], значить, остаточним відсутнім символом є також:{a:5}['a']
  • 1 поперек зараз має {на початку. Я здогадався, що це призначення червоного оселедця, спробував t={}=51, і воно спрацювало. Не знав цього!
  • 2 внизу має 5xxax"pac"=> "2pac". Це повинно бути 5-a+"pac"якось, тому другим символом має бути "." для плаваючої точки буквально.
  • Зараз 7 змінного струму [xx"xxxx]повертається "90". Отже, це має бути буквальним масивом зі значенням, яке витягується; є лише місце для однієї величини, так що у нас є [xx"xx][0]. Тут немає місця для двох струн, але вони "9"+0або 9+"0"підходять.
  • 3 дн; 3072 - 3 * 1024; потужність 2 є підозрілою, і я вже мав "Я" там, що блокував інші способи отримання великої кількості (наприклад, 1eX). Отже, вгадали бітшіфт; 6<<Iвиявилася відповідь, залишивши +0 до кінця.
  • Тепер AC змістив оператор порівняння; а другий знак повинен був бути дійсним одинарним оператором (щоб вписатись після "t =" і "I"). Я здогадався "-", і залишилося кілька можливих рішень ( I-I<4, I-6<4і т. Д.)
  • Зараз міститься 5 дн -x..]xxx4. ".." кинуло мене - є лише кілька способів, які можуть бути юридичним синтаксисом, і тому я запитав, чи ES4 - це те, що було призначено - це була якась дивна особливість цієї покинутої специфікації? Але потім я побачив, що це червона оселедець; -""є NaN, тому -"..]"xx4повинно бути те, що є - порівняння з NaN, повернення помилковим; '==' буде, але для підтвердження потрібно переглянути останню відповідь ...
  • 9ac мав кілька можливих рішень, але обмеження на символи, дозволене на 5dn, змусило мене подумати, що це ще одне призначення червоного оселедця; щось =-10. Якщо чесно, я також переглянув попередню версію 9dn і зрозумів, що щось має бути =top(щоб повернути Вікно). Змінна, призначена може бути a чи I, не має значення.

Хитра головоломка!


4

grc-головоломка Python

рішення кросворду grc

Для всіх тривалих виразів з плаваючою комою я зробив програму C ++ для створення силових математичних виразів Python та їх оцінювання. Він передбачає, що всі числа є плаваючою комою і підтримують лише оператори +, -, *, /, //, ** і ~. Я використовував його, щоб отримати кожну підказку довше, ніж 5 символів, за винятком a**9*27%bі хеша. З 6 або меншими заготовками він закінчується протягом декількох секунд, тоді як 7 чекає 7.


3

Розв’язання головоломки COTO's MATLAB

Я здогадуюсь, я досить добре пограв у цей гольф, оскільки тут є 14 просторів.

сітка для розчину

Цей тестовий сценарій:

g=4;
o=magic(3);
D=@disp;

D(max([  2]));
D( i^3);
D(o^0);
D(6 -7+eye  );
D((i));
D(.1  ^5* g );
D(~2);
D(diag(~o)  );

D(asin (1)*i);
D((93+7) +~g);
D(  10e15);
D(2*ones (2));
D(02 ^  9 );
D(-i );
D(~o);

видає такий вихід:

     2

        0 - 1.0000i

     1     0     0
     0     1     0
     0     0     1

     0

        0 + 1.0000i

   4.0000e-05

     0

     0
     0
     0

        0 + 1.5708i

   100

   1.0000e+16

     2     2
     2     2

   512

        0 - 1.0000i

     0     0     0
     0     0     0
     0     0     0

Гарне шоу. Я не очікував декількох пробілів, але ключових також досить багато. Я опублікую це зараз. ;)
COTO
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.