Krzyżówki kodu - rozwiązania

Odpowiedzi:

8

Rozwiązanie zagadki C. w es1024

wprowadź opis zdjęcia tutaj

Musiałem trochę podkręcić 7-Down, powołując się na niezdefiniowane zachowanie. es1024 wskazał, że takie zastosowanie UB było zamierzonym rozwiązaniem. Działa to jednak na komputerach większości ludzi. Wpadłem różnych wyrażeń osiągnięcia pożądanego rezultatu, takie jak -1 << 30, 3 << 30, 6 << 29, i ~(~0U/4), ale wszystkie z nich uniemożliwiało mi dostać 5-Across. Użyłem więc właściwości specyficznej dla architektury Intel, że do określenia wielkości lewego przesunięcia używa się tylko najmniej znaczących 5 bitów. Zauważ, że tak musi być, ~_a nie, ~1aby wielkość przesunięcia nie była stałą czasową kompilacji. Przetestowałem wyrażenia za pomocą następującego kodu:

#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(~_)
}
feersum
źródło
Skąd pochodzi makro? Uniknąłem opublikowania rozwiązania, ponieważ nie mogłem dostać się do M.
COTO,
@ COTO Nie rozumiem twojego pytania: „Skąd pochodzi makro?”
feersum
Nieważne. Pomyliłem ten element #define Tjako niezbędny element twojego rozwiązania. Pozostaje jednak pytanie, dlaczego M -ross działa? Czy zdefiniowanie stałej składającej się z wielu znaków po prostu łączy wartości bajtów? Jeśli tak, nauczyłem się dziś czegoś nowego. :)
COTO,
@ COTO Tak, to jest jak tworzenie liczby podstawowej 256. Literały znakowe mają typ int, więc możesz wstawić do czterech bajtów bez utraty informacji.
feersum
3
Z pewnością tego nie wiedziałem. (Najprawdopodobniej dlatego, że każdy, kto używał go w kodzie produkcyjnym, został uduszony przez ludzi odpowiedzialnych za utrzymanie jego kodu). :)
COTO,
8

professorfish, CJam, 41 ciemności

(To rozwiązanie wymaga kilku spacji, więc nie był to ten, którego szukał profesororfish.)

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

To była świetna zabawa. Zauważ, że #pod tym 6kodem znajduje się kod, a nie ciemna komórka. Przejdźmy przez to:

Przez

Wskazówka 2: [[4 3]]. To był jeden z trudniejszych, ponieważ naprawdę utknąłem przy próbach 4Z]]`lub podobnych. Okazuje się, że możesz używać produktu kartezjańskiego m*do rzeczy, które nie są tablicą, i stworzy tablicę dla ciebie. Oto on:

4Zm*`

Wskazówka 4: 24717. Do czasu, mam do tego, H, J, si końcowe miejsca były już na miejscu. HRozdawał że mogę chyba tylko ponownie wykorzystać 17i zrobić \na końcu. JPopycha 19i 247 == 13 * 19tak:

HDJ*s\ 

Wskazówka 7: 32. Istnieje kilka sposobów, aby to zrobić: Y5#, 3 2, ZY, YZ\, 4(2, 2)2, '32. Poszedłem z ostatnim, ponieważ rozpoczęcie od postaci wydawało się obiecujące dla 7-down, a to okazało się słuszne.

Wskazówka 8: E. Już miał 'dkiedy tam, więc to było między wybór 'd1+eu, 'deu1+albo wariant, w którym użyłem )i przestrzeni zamiast 1+(dla osób spoza CJam, to przyjmując dpostać i przyrostu i górnej obudowy je w dowolnej kolejności) . Jednak uostatnia kolumna wyglądała na przydatną dla A-down. Więc wybrałem pierwszy z nich. W końcu też 'd) euby zadziałało.

Wskazówka 9: "". Musiał to być „pusty ciąg, uzyskaj reprezentację ciągu, wciśnij spację”. Ale potrzebowałem również `dla reprezentacji łańcucha w 7-dół, a spacja w A-down również wydawała się przydatna, więc wybrałem

]`' 

Zauważ, że ]mógł to być także jeden z nich LMOQR.

Wskazówka B: "m. Po prostu naprawdę musiałem dopasować ten do reszty, ale kilka znaków miało znaczenie. Miałem już {i m. Zamiast używać bloku, zmieniłem {się w postać, odrzuciłem ją, a następnie wypchnąłem dwie wymagane postacie:

 '{;'"'m

Podpowiedź: D: 124. Rozwiązałem to razem z C-down, co było najłatwiejsze ze spadkiem na końcu. Więc wypycham 12, 5 i zmniejszam to drugie:

C5(

Na dół

Wskazówka 1: [2 2 2 3]. To wyglądało zbyt podejrzanie jak na czynniki pierwsze, żeby nie było nim jedno. :)

24mf`

Wskazówka 3: 3010936384. Faktoring pokazał, że tak naprawdę jest to 38 6 . Jedynym pytaniem było, jak uzyskać 38zgodność z 2 -ross. W końcu potrzebowałem *trzeciego, więc podwojenie 19było:

J2*6#

Wskazówka 5: 2017. Dwie postacie na tak dużą liczbę? Wystarczy użyć wbudowanych zmiennych dwucyfrowych:

KH

Wskazówka 6: "18". Myślę, że jest tylko jeden sposób na zrobienie tego w 3 postaciach. Użyj wbudowanego 18, przekonwertuj go na ciąg, a następnie na jego reprezentację ciągu.

Is`

Wskazówka 7: ' "\"\"". Prawdopodobnie najtrudniejsza część układanki. W szczególności potrzebowałem "\"\""tylko trzech znaków. Sztuczka polegała na dwukrotnym uzyskaniu reprezentacji ciągu pustego ciągu. Doprowadziło to do:

' `L``+

THe +nie jest konieczne, ale potrzebne było przez 8-poprzek.

Wskazówka 8: !{}. Blok musiał zostać wpisany w kodzie, aby pozostały tylko dwa znaki !, co oznaczało użycie innego literału:

'!{}

Podpowiedź A: -3u3. Dzięki uswoim miejscu od 8 przekrojowego zaczęłam stawiać -3i 3na rogach, gdzie żadna inna wskazówka troszczyli się o nich. Ale potem potrzebowałem mna dole. Myślę, że istnieje wiele sposobów, aby dostać 3się _m_, ale najprostszym brał pierwiastek kwadratowy z 9:

-3 'u9mq

Podpowiedź C: -1. Miałem już tam dekrement, więc po prostu postawiłem tam, 0gdzie nikt inny się nie przejmował:

0  (

Podpowiedź E: Stack: "". To był najprostszy. Po prostu zadzwoń do debuggera:

ed
Martin Ender
źródło
Calvin's Hobbies przemówił , odpowiedź jest prawidłowa. Zmienię go na mój post
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 w poprzek to 5+Math.PIlub Math.PI+5; ale to ostatnie pozostawiłoby „M” i „h” przejście do innych wyrażeń, wydawało się mało prawdopodobne.
  • Krzyż musiał być sznurkiem; z 4 pośrodku wyglądało to jak ucieczka, jedynym sposobem na to jest miejsce "\x48I".
  • 2 w dół kończy się teraz ciągiem, więc prawdopodobnie do liczby dołącza się „pac”; wrócimy do tego.
  • 8 ac jest teraz xxxa, czyli do zera, więc -a + a? + -a? 3 + -a? a+-awyglądał najlepiej, ponieważ dał mi coś, co wyglądało jak char w ciągu 1dn.
  • 1 dół zawierał: 5, co może być tylko gramatyką prawną w języku {x:5}xxa'x. Ponieważ zwracana wartość wynosi 5, musi ona wyciągać ją z obiektu {x:5}['a'], co oznacza, że ​​brakujący znak końcowy to również:{a:5}['a']
  • 1 w poprzek ma {na początku. Domyślałem się, że to zadanie z czerwonego śledzia, próbowałem t={}=51i zadziałało. Nie wiedział tego!
  • 2 w dół ma teraz 5xxax"pac"=> "2pac". To musi być 5-a+"pac"jakoś, więc drugim znakiem musi być „.” dla literału zmiennoprzecinkowego.
  • 7 ac jest teraz [xx"xxxx], zwracając „90”. Musi to być literał tablicowy z wyciągniętą wartością; mamy miejsce tylko na jedną wartość, więc mamy [xx"xx][0]. Nie ma tu miejsca na dwie struny, ale albo pasują, "9"+0albo 9+"0"pasują.
  • 3 dn; 3072 to 3 * 1024; potęga 2 jest podejrzana, a ja już miałem tam „ja” blokujące inne sposoby uzyskiwania dużych liczb (np. 1eX). Tak więc zgadłem przesunięcie bitów; 6<<Iokazała się odpowiedzią, pozostawiając +0, aby dodać na końcu.
  • 4 ac zawierało teraz operator porównania; a drugi znak musiał być poprawnym operatorem jednoargumentowym (aby pasował zarówno po „t =”, jak i „I”). Domyślałem „-”, a tam kilka możliwych rozwiązań w lewo ( I-I<4, I-6<4itp)
  • Teraz 5 dn -x..]xxx4. „..” rzuciło mnie - istnieje tylko kilka sposobów, które mogą być legalną składnią i dlatego zapytałem, czy ES4 jest tym, co było zamierzone - czy to była jakaś dziwna cecha tej porzuconej specyfikacji? Ale potem zobaczyłem, że to był czerwony śledź; -""jest NaN, więc -"..]"xx4musi być to, co tam jest - porównanie do NaN, zwracające wartość false; „==” zrobi, ale trzeba spojrzeć na ostatnią odpowiedź w celu potwierdzenia ...
  • 9ac miał kilka możliwych rozwiązań, ale ograniczenie znaków, które byłoby dozwolone dla 5dn, sprawiło, że pomyślałem, że to kolejne zadanie z czerwonego śledzia; coś =-10. Szczerze mówiąc, przyjrzałem się również wcześniejszej wersji 9dn i zdałem sobie sprawę, że to musi być coś =top(aby odzyskać okno). Zmienna przypisana do może być a lub I, to nie ma znaczenia.

Podstępna łamigłówka!

bazzargh
źródło
4

Układanka Python grc

rozwiązanie krzyżówki grc

Dla wszystkich długich wyrażeń zmiennoprzecinkowych stworzyłem program C ++ do generowania wyrażeń matematycznych w języku Python siłą i ich oceny. Zakłada, że ​​wszystkie liczby są zmiennoprzecinkowe i obsługuje tylko operatory +, -, *, /, //, ** i ~. Użyłem go, aby uzyskać każdą wskazówkę dłuższą niż 5 znaków oprócz a**9*27%bi hash. Przy 6 lub mniej pustych miejscach kończy się w ciągu kilku sekund, podczas gdy trzeba trochę poczekać na 7.

feersum
źródło
3

Rozwiązanie łamigłówki MATLAB firmy COTO

Myślę, że dość dobrze grałem w tę grę, ponieważ jest tam 14 pól.

siatka rozwiązania

Ten skrypt testowy:

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);

produkuje następujące dane wyjściowe:

     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
feersum
źródło
Dobry występ. Kilka spacji nie spodziewałem się, ale jest też sporo w tonacji. Teraz to opublikuję. ;)
COTO