Questa è la domanda complementare per i cruciverba di codice . Le risposte ai ladri vanno qui.
Vedi Dove dovremmo mettere i ladri? per meta-informazioni.
Questa è la domanda complementare per i cruciverba di codice . Le risposte ai ladri vanno qui.
Vedi Dove dovremmo mettere i ladri? per meta-informazioni.
Risposte:

Ho dovuto fare un po 'di confusione su 7-Down invocando un comportamento indefinito. es1024 ha indicato che questo uso di UB era la soluzione prevista. Funzionerà comunque sui computer della maggior parte delle persone. Sono venuto con varie espressioni raggiungere il risultato desiderato, come -1 << 30, 3 << 30, 6 << 29, e ~(~0U/4)ma tutti loro ha reso impossibile per me per ottenere 5-Across. Quindi ho usato la proprietà specifica dell'architettura Intel che solo i 5 bit meno significativi vengono utilizzati per determinare la dimensione di uno spostamento a sinistra. Si noti che deve essere ~_e non in ~1modo che l'importo da spostare non sia una costante di compilazione. Ho testato le espressioni con il seguente codice:
#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 Tcomponente come componente necessario per la tua soluzione. La domanda rimane, tuttavia, perché M-across funziona? La definizione di una costante a più caratteri concatena i valori dei byte? Se è così, ho imparato qualcosa di nuovo oggi. :)
int, quindi puoi inserire fino a quattro byte senza perdita di informazioni.
(Questa soluzione in realtà richiede diversi spazi, quindi non è quello che professorfish stava cercando.)
#K###I#'32
#HDJ*s\ ##
2##2#`#`#-
4Zm*`##L#3
m##6##]`'
f####e#`#'
`#0#'d1+eu
## #!####9
## '{;'"'m
C5(#}####q
È stato molto divertente. Si noti che il #sottostante 6è in realtà codice e non una cella oscura. Andiamo attraverso questo:
Suggerimento 2: [[4 3]]. Questo è stato uno dei più complicati, perché mi sono davvero bloccato a provare 4Z]]`o simili. Si scopre che è possibile utilizzare il prodotto cartesiano m*su cose che non sono un array e ne creerà uno per te. Quindi eccolo qui:
4Zm*`
Suggerimento 4: 24717. Con il tempo ho avuto modo di questo, il H, J, se finali spazio erano già sul posto. Il Hdato via che avrei potuto probabilmente solo riutilizzare la 17e fare \alla fine. Il Jspinge un 19e 247 == 13 * 19, quindi:
HDJ*s\
Suggerimento 7: 32. Ci sono un sacco di modi per farlo: Y5#, 3 2, ZY, YZ\, 4(2, 2)2, '32. Sono andato con l'ultimo, perché iniziare con un personaggio sembrava promettente per 7-down, e questo si è rivelato essere giusto.
Suggerimento 8: E. Ho già avuto il 'dmomento in cui ci sono arrivato, quindi era tra la scelta 'd1+eu, 'deu1+o una variante in cui ho usato )e uno spazio invece di 1+(per le persone non CJam, questo prende il dcarattere, lo incrementa e lo mette in maiuscolo, in entrambi gli ordini) . Tuttavia, unella colonna finale sembrava utile per A-down. Quindi ho scelto il primo di quelli. Alla fine 'd) euavrebbe funzionato anche lui.
Suggerimento 9: "". Bene, questo doveva essere "stringa vuota, ottenere la rappresentazione della stringa, spingere uno spazio". Ma avevo anche bisogno di `per la rappresentazione delle stringhe in 7-down, e anche uno spazio in A-down mi sembrava utile, quindi ho scelto
]`'
Si noti che ]potrebbe anche essere stato uno dei LMOQR.
Suggerimento B: "m. Ho dovuto solo adattarlo a tutto il resto, ma c'erano pochi personaggi che contavano. Ho già avuto il {e il m. Quindi, invece di usare un blocco, mi sono trasformato {in un personaggio, l'ho scartato e quindi ho spinto i due personaggi richiesti:
'{;'"'m
Suggerimento D: 124. Ho risolto questo insieme a C-down, che era più facile con un decremento alla fine. Quindi spingo un 12, un 5 e decremento di quest'ultimo:
C5(
Suggerimento 1: [2 2 2 3]. Sembrava troppo sospettosamente una scomposizione in fattori primi per non esserlo. :)
24mf`
Suggerimento 3: 3010936384. Factoring questo ha dimostrato che in realtà è 38 6 . L'unica domanda era come ottenere la 38conformità con 2-across. Alla fine avevo bisogno di un *terzo posto, quindi raddoppiare 19era:
J2*6#
Suggerimento 5: 2017. Due personaggi per un numero così grande? Usa solo variabili a due cifre integrate:
KH
Suggerimento 6: "18". Penso che ci sia un solo modo per farlo in 3 personaggi. Utilizzare il 18 incorporato, convertirlo in una stringa e quindi nella sua rappresentazione di stringa.
Is`
Suggerimento 7: ' "\"\"". Probabilmente la parte più difficile del puzzle. In particolare, avevo bisogno di ottenere "\"\""solo tre personaggi. Il trucco era ottenere due volte la rappresentazione della stringa vuota. Ciò ha portato a:
' `L``+
THe +non è necessario, ma è stato necessario da 8 in tutto.
Suggerimento 8: !{}. Il blocco doveva essere inserito nel codice, quindi rimanevano solo due caratteri !, il che significava usare un altro letterale:
'!{}
Suggerimento A: -3u3. Con il uposto da 8-in, ho iniziato a mettere -3e 3negli angoli dove nessun altro suggerimento si preoccupava per loro. Ma poi avevo bisogno di un min fondo. Penso che ci siano diversi modi per ottenere un 3con _m_, ma il più semplice è stato prendere la radice quadrata di 9:
-3 'u9mq
Suggerimento C: -1. Ho già avuto il decremento lì, quindi ho appena messo un punto in 0cui nessun altro si preoccupava:
0 (
Suggerimento E: Stack: "". Bene, quello era il più semplice. Basta chiamare il debugger:
ed
COTO, Javascript ES4, 37 Darks
__________
|{}=51###6#|
|a##.#I-9<4|
|:##-##"#<#|
|5+Math.PI#|
|}##+##.#+#|
|["9"+0][0]|
|'##p##"###|
|a+-a#a=-10|
|'##c##=###|
|]##"\x48I"|
¯¯¯¯¯¯¯¯¯¯
5+Math.PIo Math.PI+5; ma quest'ultimo avrebbe lasciato 'M' e 'h' incrociati in altre espressioni, sembrava improbabile."\x48I".xxxa, valutando a zero, quindi -a + a? a + -a? 3 + -a? a+-asembrava migliore dato che mi ha dato quello che sembrava un carattere in una stringa in 1dn.{x:5}xxa'x. Poiché il valore restituito è 5, deve essere estratto dall'oggetto, quindi {x:5}['a']il carattere mancante finale è anche un:{a:5}['a']t={}=51e funzionò. Non lo sapevo!5xxax"pac"=> "2pac". Questo deve essere 5-a+"pac", in qualche modo, quindi il secondo carattere deve essere '.' per il virgola mobile letterale.[xx"xxxx], restituendo "90". Quindi questo deve essere un array letterale con il valore estratto; c'è solo spazio per un valore, quindi abbiamo [xx"xx][0]. Non c'è spazio per due stringhe lì dentro, ma "9"+0o in 9+"0"forma.6<<Isi è rivelata la risposta, lasciando +0 per aggiungere alla fine.I-I<4, I-6<4, ecc)-x..]xxx4. Il ".." mi ha gettato - ci sono solo un paio di modi che possono essere sintassi legali ed è il motivo per cui ho chiesto se ES4 è quello che era previsto - era questa una strana caratteristica di quella specifica abbandonata? Ma poi ho visto che si trattava di un'aringa rossa; -""è NaN, quindi -"..]"xx4deve essere quello che c'è - un confronto con NaN, che restituisce false; "==" lo farà, ma è necessario guardare l'ultima risposta per confermare ...=-10. Ad essere sincero, ho anche guardato la versione precedente di 9dn, e ho capito che doveva essere qualcosa =top(per riavere una finestra). La variabile assegnata a potrebbe essere a o I, non importa.Puzzle complicato!

Per tutte le lunghe espressioni in virgola mobile, ho creato un programma C ++ per generare forzatamente espressioni matematiche di Python e valutarle. Presuppone che tutti i numeri siano in virgola mobile e supporta solo operatori +, -, *, /, //, ** e ~. L'ho usato per ottenere ogni indizio più lungo di 5 caratteri tranne a**9*27%be l'hash. Con 6 o meno spazi vuoti termina in un paio di secondi, mentre c'è un po 'di attesa per 7.
Immagino di aver giocato a golf abbastanza bene, dato che ci sono 14 spazi.

Questo script di prova:
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);
produce il seguente output:
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