Это сопутствующий вопрос для кроссвордов . Ответы грабителя идут сюда.
Посмотрите, куда мы должны положить грабителей? для мета-информации.
источник
Это сопутствующий вопрос для кроссвордов . Ответы грабителя идут сюда.
Посмотрите, куда мы должны положить грабителей? для мета-информации.
На 7-Дауне мне пришлось немного выдумать, вызвав неопределенное поведение. 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(~_)
}
#define T
необходимый компонент для вашего решения. Однако остается вопрос, почему работает M-через? Является ли определение многосимвольной константы только конкатенацией байтовых значений? Если так, я узнал кое-что новое сегодня. :)int
, поэтому вы можете вставить до четырех байтов без потери информации.Профессор, CJam, 41 тьма
(Это решение на самом деле требует нескольких пробелов, так что это не тот, который искал профессорфиш.)
Это было очень весело. Обратите внимание, что
#
под ним6
находится код, а не темная ячейка. Давайте пройдем через это:через
Подсказка 2:
[[4 3]]
. Это был один из самых хитрых, потому что я действительно застрял на попытках4Z]]`
или подобном. Оказывается, вы можете использовать декартово произведениеm*
на вещах, которые не являются массивом, и он создаст для вас массив. Итак, вот оно:Подсказка 4:
24717
. К тому времени , когда я добрался до этогоH
,J
,s
и замыкающие пространство уже были на месте.H
Раздал , что я мог бы просто повторно использовать17
и делать\
в конце. ТоJ
есть,19
а247 == 13 * 19
, так:Подсказка 7:
32
. Есть куча способов сделать это:Y5#
,3 2
,ZY
,YZ\
,4(2
,2)2
,'32
. Я пошел с последним, потому что начинать с персонажа казалось многообещающим для 7-го, и это оказалось правильным.Подсказка 8:
E
. У меня уже было время,'d
когда я туда попал, так что это было между выбором'd1+eu
,'deu1+
или вариантом, в котором я использовал,)
и пробелом вместо1+
(для людей, не являющихся CJam, это беретd
символ и увеличивает его в верхнем регистре в любом порядке) , Тем не менее,u
в последнем столбце выглядел полезным для А-вниз. Поэтому я выбрал первый из них. В итоге'd) eu
тоже бы сработало.Подсказка 9:
""
. Ну, это должно было быть «пустая строка, получить строковое представление, вставить пробел». Но также требовалось `для представления строки в 7-down, и пробел в A-down тоже казался полезным, поэтому я выбралОбратите внимание, что,
]
возможно, также был одним изLMOQR
.Подсказка B:
"m
. Мне просто нужно было совместить это с остальными, но было мало персонажей, которые имели значение. Я уже имел{
иm
. Поэтому вместо использования блока я превратился{
в персонажа, отбросил его, а затем выдвинул два обязательных символа:Подсказка D:
124
. Я решил это вместе с C-down, который был самым простым с уменьшением в конце. Поэтому я нажимаю 12, 5 и уменьшаю последнее:вниз
Подсказка 1:
[2 2 2 3]
. Это выглядело слишком подозрительно, как главная факторизация, чтобы не быть таковой. :)Подсказка 3:
3010936384
. Факторинг показал, что это на самом деле 38 6 . Единственный вопрос заключался в том, как получить38
соответствие в 2-х. В итоге мне понадобилось*
третье место, так что удвоение19
было:Подсказка 5:
2017
. Два символа для такого большого числа? Просто используйте встроенные двузначные переменные:Подсказка 6:
"18"
. Я думаю, что есть только один способ сделать это в 3 символа. Используйте встроенный 18, преобразуйте его в строку, а затем в ее строковое представление.Подсказка 7:
' "\"\""
. Наверное, самая сложная часть головоломки. В частности, мне нужно было получить"\"\""
всего три персонажа. Хитрость заключалась в том, чтобы дважды получить строковое представление пустой строки. Это привело к:Это
+
не обязательно, но было необходимо для 8-ми.Подсказка 8:
!{}
. Блок должен был идти в коде, так что оставалось только два символа для!
, что означало использование другого литерала:Подсказка A:
-3u3
. Наu
8-м месте я начал ставить-3
и3
в поворотах, где ни один другой намек не заботился о них. Но тогда мне нужно былоm
внизу. Я думаю, что есть несколько способов получить3
с_m_
, но самым простым было взять квадратный корень из 9:Подсказка C:
-1
. У меня там уже был декремент, поэтому я просто положил туда,0
где больше никто не заботился:Подсказка E:
Stack: ""
. Ну, это был самый простой. Просто вызовите отладчик:источник
COTO, Javascript ES4, 37 Darks
5+Math.PI
илиMath.PI+5
; но последний оставлял «М» и «ч» переходящими в другие выражения, казалось маловероятным."\x48I"
.xxxa
, оценивая в ноль, так что -a + a? а + -a? 3 + -a?a+-a
выглядел лучше всего, так как он дал мне то, что выглядело как символ в строке в 1dn.{x:5}xxa'x
. Поскольку возвращаемое значение равно 5, оно должно вытаскивать его из объекта{x:5}['a']
, что означает, что последний отсутствующий символ также является:{a:5}['a']
t={}=51
, и это сработало. Не знал этого!5xxax"pac"
=> "2pac". Как-5-a+"pac"
то так должно быть , поэтому второй символ должен быть "." для литерала с плавающей точкой.[xx"xxxx]
, возвращая «90». Так что это должен быть литерал массива с извлеченным значением; есть только место для одного значения, поэтому мы имеем[xx"xx][0]
. Там не место для двух строк в там, но либо"9"+0
или9+"0"
усмотрению.6<<I
оказался ответом, оставив +0 до конца.I-I<4
,I-6<4
и т.д.)-x..]xxx4
. «..» бросил меня - есть только несколько способов, которые могут быть допустимым синтаксисом, и поэтому я спросил, является ли ES4 тем, для чего он предназначен - это была какая-то странная особенность этой заброшенной спецификации? Но потом я увидел, что это была красная сельдь;-""
это NaN, поэтому-"..]"xx4
должно быть то, что есть - сравнение с NaN, возвращающее false; '==' будет делать, но нужно посмотреть на последний ответ для подтверждения ...=-10
. Честно говоря, я также посмотрел на более раннюю версию 9dn и понял, что должно быть что-то=top
(чтобы вернуть окно). Переменная, назначенная для, может быть или I, это не имеет значения.Хитрая головоломка!
источник
пазл grc's Python
Для всех длинных выражений с плавающей точкой я создал программу на C ++ для принудительного генерирования математических выражений Python и их оценки. Предполагается, что все числа с плавающей точкой и поддерживает только операторы +, -, *, /, //, ** и ~. Я использовал его, чтобы получить каждый ключ длиной более 5 символов, кроме
a**9*27%b
хэша. С 6 или менее пробелами он заканчивается в течение нескольких секунд, в то время как 7 немного подождать.источник
Решение головоломки COTO MATLAB
Я думаю, что я играл в гольф очень хорошо, так как есть 14 мест.
Этот тестовый скрипт:
производит следующий вывод:
источник