Esta é a pergunta complementar das palavras cruzadas de código . As respostas dos ladrões estão aqui.
Consulte Onde devemos colocar ladrões? para meta-informação.
fonte
Esta é a pergunta complementar das palavras cruzadas de código . As respostas dos ladrões estão aqui.
Consulte Onde devemos colocar ladrões? para meta-informação.
Eu tive que enganar um pouco o 7-Down invocando um comportamento indefinido. es1024 indicou que esse uso do UB era a solução pretendida. Porém, ele funcionará nos computadores da maioria das pessoas. Eu vim com várias expressões alcançar o resultado desejado, como -1 << 30
, 3 << 30
, 6 << 29
e, ~(~0U/4)
mas todos eles tornou impossível para mim para obter 5-Em todo. Então, usei a propriedade específica da arquitetura Intel, que apenas os 5 bits menos significativos são usados para determinar o tamanho de um turno à esquerda. Observe que ele precisa ser ~_
e não ~1
para que a quantidade a ser alterada não seja uma constante em tempo de compilação. Testei as expressões com o seguinte código:
#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
componente como necessário à sua solução. A questão permanece, no entanto, por que o M-across funciona? A definição de uma constante de vários caracteres apenas concatena os valores de bytes? Nesse caso, aprendi algo novo hoje. :)int
, para que você possa inserir até quatro bytes sem perda de informações.professorfish, CJam, 41 darks
(Na verdade, essa solução requer vários espaços, portanto não é o que o professorfish estava procurando.)
Isso foi muito divertido. Observe que
#
abaixo do6
código é realmente e não uma célula escura. Vamos passar por isso:Através
Dica 2:
[[4 3]]
. Essa foi uma das mais complicadas, porque eu realmente fiquei presa em tentar4Z]]`
ou algo parecido. Acontece que você pode usar o produto cartesianom*
em coisas que não são uma matriz e isso fará uma matriz para você. Então aqui está:Dica 4:
24717
. Até o momento em que cheguei a este, oH
,J
,s
e à direita espaço já estavam no local. AH
doação que eu provavelmente poderia reutilizar17
e fazer\
no final. OJ
empurra a19
e247 == 13 * 19
, então:Dica 7:
32
. Há um monte de maneiras de fazer isso:Y5#
,3 2
,ZY
,YZ\
,4(2
,2)2
,'32
. Eu fui com o último, porque começar com um personagem parecia promissor para 7-down, e isso acabou sendo certo.Dica 8:
E
. Eu já tinha o'd
quando cheguei lá, então foi entre a escolha'd1+eu
,'deu1+
ou uma variante em que eu usei)
e um espaço em vez de1+
(para as pessoas não-CJam, esta tomando od
caráter e incremento e superior da embalagem-lo, em qualquer ordem) . No entanto, au
coluna final parecia útil para A-down. Então eu escolhi o primeiro deles. No final,'d) eu
teria funcionado também.Dica 9:
""
. Bem, isso tinha que ser "string vazia, obter representação de string, empurrar um espaço". Mas também precisava do `para representação de strings em 7-down, e um espaço em A-down também parecia útil, então eu escolhiObserve que
]
também pode ter sido um dosLMOQR
.Dica B:
"m
. Eu realmente tive que encaixar esse aqui com o resto, mas havia poucos personagens que importavam. Eu já tinha o{
e om
. Então, em vez de usar um bloco, eu me transformei{
em um personagem, descartei-o e pressionei os dois caracteres necessários:Dica D:
124
. Resolvi esse problema com o C-down, que foi mais fácil com um decréscimo no final. Então eu pressiono um 12, um 5 e diminuo o último:Baixa
Dica 1:
[2 2 2 3]
. Isso parecia muito desconfiado como uma fatoração primordial para não ser uma. :)Dica 3:
3010936384
. Factoring isso mostrou que é realmente 38 6 . A única questão era como obter a38
conformidade com o 2-across. No final, eu precisava de um*
em terceiro lugar, então dobrando19
foi:Dica 5:
2017
. Dois caracteres para um número tão grande? Basta usar variáveis internas de dois dígitos:Dica 6:
"18"
. Eu acho que há apenas uma maneira de fazer isso em três caracteres. Use o 18 interno, converta-o em uma sequência e, em seguida, em sua representação de sequência.Dica 7:
' "\"\""
. Provavelmente a parte mais difícil do quebra-cabeça. Em particular, eu precisava inserir"\"\""
apenas três caracteres. O truque era obter a representação da string vazia duas vezes. Isso levou a:THe
+
não é necessário, mas era necessário por 8 de largura.Dica 8:
!{}
. O bloco precisava ser inserido no código, deixando apenas dois caracteres!
, o que significava usar outro literal:Dica A:
-3u3
. Com ou
em lugar de 8-across, comecei a colocar-3
e3
nos cantos onde nenhuma outra dica se preocupava com eles. Mas então eu precisava de umm
na parte inferior. Eu acho que existem várias maneiras de obter um3
com_m_
, mas a mais simples estava tomando a raiz quadrada de 9:Dica C:
-1
. Eu já tinha o decréscimo lá, então apenas coloquei um local0
onde ninguém mais se importava:Dica E:
Stack: ""
. Bem, esse foi o mais simples. Basta chamar o depurador:fonte
COTO, Javascript ES4, 37 Darks
5+Math.PI
ouMath.PI+5
; mas o último deixaria 'M' e 'h' cruzando para outras expressões, parecia improvável."\x48I"
.xxxa
avaliando como zero, então -a + a? a + -a? 3 + -a?a+-a
parecia melhor, pois me deu o que parecia um char em uma string em 1dn.{x:5}xxa'x
. Como o valor retornado é 5, ele deve ser retirado do objeto, o{x:5}['a']
que significa que o caractere final ausente também é:{a:5}['a']
t={}=51
e funcionou. Não sabia isso!5xxax"pac"
=> "2pac". Isso tem que ser5-a+"pac"
, de alguma forma, para que o segundo caractere tenha que ser '.' para o literal de ponto flutuante.[xx"xxxx]
, retornando "90". Portanto, isso deve ser uma matriz literal com o valor retirado; só há espaço para um valor, então temos[xx"xx][0]
. Não há espaço para duas cordas lá, mas é adequado"9"+0
ou não9+"0"
.6<<I
acabou por ser a resposta, deixando +0 para adicionar até o final.I-I<4
,I-6<4
, etc)-x..]xxx4
. O ".." me impressionou - há apenas algumas maneiras que podem ser sintaxe legal e é por isso que perguntei se o ES4 era o que se pretendia - isso era algum recurso estranho dessa especificação abandonada? Mas então vi que isso era um arenque vermelho;-""
é NaN, então-"..]"xx4
deve estar lá - uma comparação com NaN, retornando false; '==' serve, mas é preciso olhar para a última resposta para confirmação ...=-10
. Para ser sincero, também observei a versão anterior do 9dn e percebi que isso deveria ser algo=top
(para recuperar uma janela). A variável atribuída a poderia ser a ou I, não importa.Enigma complicado!
fonte
quebra-cabeça de Python do grc
Para todas as longas expressões de ponto flutuante, criei um programa em C ++ para gerar expressões matemáticas do Python à força e as avalia. Ele assume que todos os números são de ponto flutuante e suporta apenas os operadores +, -, *, /, //, ** e ~. Eu o usei para obter todas as pistas com mais de 5 caracteres, exceto
a**9*27%b
o hash. Com 6 espaços em branco ou menos, ele termina em alguns segundos, enquanto espera um pouco para 7.fonte
Solução do quebra-cabeça do MATLAB da COTO
Eu acho que joguei este bem, pois há 14 espaços.
Este script de teste:
produz a seguinte saída:
fonte