Ini adalah pertanyaan pendamping untuk Code Crosswords . Jawaban perampok ada di sini.
Lihat Di mana kita harus menempatkan perampok? untuk meta-info.
sumber
Ini adalah pertanyaan pendamping untuk Code Crosswords . Jawaban perampok ada di sini.
Lihat Di mana kita harus menempatkan perampok? untuk meta-info.
Saya harus sedikit fudge tentang 7-Down dengan menerapkan perilaku yang tidak terdefinisi. es1024 telah mengindikasikan bahwa penggunaan UB ini adalah solusi yang dimaksudkan. Ini akan bekerja pada komputer kebanyakan orang. Saya datang dengan berbagai ekspresi mencapai hasil yang diinginkan seperti -1 << 30
, 3 << 30
, 6 << 29
, dan ~(~0U/4)
tapi semua dari mereka membuat mustahil bagi saya untuk mendapatkan 5-Di. Jadi saya menggunakan properti arsitektur khusus Intel yang hanya 5 bit paling signifikan digunakan untuk menentukan ukuran shift kiri. Perhatikan bahwa itu perlu ~_
dan bukan ~1
agar jumlah yang digeser bukan konstanta waktu kompilasi. Saya menguji ekspresi dengan kode berikut:
#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
sebagai komponen yang diperlukan untuk solusi Anda. Namun, pertanyaannya tetap, mengapa M-lintas bekerja? Apakah mendefinisikan konstanta multi-karakter hanya menyatukan nilai byte? Jika demikian, saya belajar sesuatu yang baru hari ini. :)int
, sehingga Anda dapat memasukkan hingga empat byte tanpa kehilangan informasi.professorfish, CJam, 41 darks
(Solusi ini sebenarnya membutuhkan beberapa ruang, jadi bukan yang dicari professorfish.)
Itu sangat menyenangkan. Perhatikan bahwa di
#
bawahnya6
sebenarnya kode dan bukan sel gelap. Mari kita lalui ini:Di seberang
Petunjuk 2:
[[4 3]]
. Ini adalah salah satu yang lebih sulit, karena saya benar-benar terjebak dalam mencoba4Z]]`
atau serupa. Ternyata Anda bisa menggunakan produk Cartesianm*
pada barang-barang yang bukan array, dan itu akan membuat array untuk Anda. Jadi begini:Petunjuk 4:
24717
. Pada saat aku sampai ini,H
,J
,s
dan trailing ruang sudah di tempat. TheH
menyerahkan bahwa saya mungkin bisa saja menggunakan kembali17
dan melakukan\
di akhir. TheJ
mendorong sebuah19
dan247 == 13 * 19
, sehingga:Petunjuk 7:
32
. Ada banyak cara untuk melakukan hal ini:Y5#
,3 2
,ZY
,YZ\
,4(2
,2)2
,'32
. Saya pergi dengan yang terakhir, karena memulai dengan karakter sepertinya menjanjikan untuk 7-down, dan itu ternyata benar.Petunjuk 8:
E
. Saya sudah punya'd
ketika saya sampai di sana, jadi itu antara memilih'd1+eu
,'deu1+
atau varian di mana saya menggunakan)
dan ruang bukan1+
(untuk orang-orang non-CJam, ini mengambild
karakter dan kenaikan dan casing atas, dalam urutan apa pun) . Namun,u
pada kolom terakhir terlihat berguna untuk A-down. Jadi saya memilih yang pertama. Pada akhirnya,'d) eu
akan berhasil juga.Petunjuk 9:
""
. Nah, ini harus menjadi "string kosong, dapatkan representasi string, dorong spasi". Tetapi juga membutuhkan `untuk representasi string dalam 7-down, dan ruang di A-down tampaknya berguna juga, jadi saya memilihPerhatikan bahwa
]
mungkin juga salah satunyaLMOQR
.Petunjuk B:
"m
. Aku benar-benar harus menyesuaikan yang ini dengan yang lain, tetapi ada beberapa karakter yang penting. Saya sudah punya{
danm
. Jadi alih-alih menggunakan blok, saya berubah{
menjadi karakter, membuangnya, dan kemudian mendorong dua karakter yang diperlukan:Petunjuk D:
124
. Saya memecahkan yang ini bersama-sama dengan C-down, yang paling mudah dengan penurunan pada akhirnya. Jadi saya mendorong 12, 5, dan mengurangi yang terakhir:Turun
Petunjuk 1:
[2 2 2 3]
. Itu tampak terlalu mencurigakan seperti faktorisasi utama sehingga tidak bisa dijadikan faktor. :)Petunjuk 3:
3010936384
. Anjak piutang ini menunjukkan bahwa sebenarnya 38 6 . Satu-satunya pertanyaan adalah bagaimana mendapatkan38
kepatuhan dengan 2-lintas. Pada akhirnya saya membutuhkan sebuah*
di tempat ketiga, jadi menggandakan19
itu adalah:Petunjuk 5:
2017
. Dua karakter untuk jumlah yang begitu besar? Cukup gunakan variabel dua digit bawaan:Petunjuk 6:
"18"
. Saya pikir hanya ada satu cara untuk melakukan ini dalam 3 karakter. Gunakan bawaan 18, konversikan menjadi string, dan kemudian ke representasi stringnya.Petunjuk 7:
' "\"\""
. Mungkin bagian tersulit dari teka-teki. Secara khusus, saya hanya perlu mendapatkan"\"\""
dalam tiga karakter. Caranya adalah dengan mendapatkan representasi string dari string kosong dua kali. Itu menyebabkan:THe
+
tidak perlu, tetapi dibutuhkan oleh 8-di.Petunjuk 8:
!{}
. Blok perlu masuk dalam kode, sehingga hanya menyisakan dua karakter!
, yang berarti menggunakan literal lain:Petunjuk A:
-3u3
. Denganu
di tempat dari 8-seberang, saya mulai menempatkan-3
dan3
di sudut-sudut di mana tidak ada petunjuk lain yang peduli tentang mereka. Tapi kemudian saya membutuhkanm
di bagian bawah. Saya pikir ada beberapa cara untuk mendapatkan3
dengan_m_
, tetapi paling sederhana yang mengambil akar kuadrat dari 9:Petunjuk C:
-1
. Saya sudah memiliki decrement di sana, jadi saya hanya menempatkan di0
mana tidak ada orang lain yang peduli:Petunjuk E:
Stack: ""
. Ya itu yang paling sederhana. Panggil saja debugger:sumber
COTO, Javascript ES4, 37 Darks
5+Math.PI
atauMath.PI+5
; tetapi yang terakhir akan meninggalkan 'M' dan 'h' menyeberang ke ekspresi lain, sepertinya tidak mungkin."\x48I"
.xxxa
, mengevaluasi ke nol, jadi -a + a? a + -a? 3 + -a?a+-a
tampak terbaik karena memberi saya apa yang tampak seperti arang di string di 1dn.{x:5}xxa'x
. Karena nilai yang dikembalikan adalah 5, itu harus menariknya keluar dari objek, jadi{x:5}['a']
, yang berarti karakter yang hilang juga adalah:{a:5}['a']
t={}=51
, dan berhasil. Tidak tahu itu!5xxax"pac"
=> "2pac". Ini pasti5-a+"pac"
, entah bagaimana, jadi char kedua harus '.' untuk literal floating point.[xx"xxxx]
, mengembalikan "90". Jadi ini harus berupa array literal dengan nilai ditarik keluar; hanya ada ruang untuk satu nilai jadi kami punya[xx"xx][0]
. Tidak ada ruang untuk dua string di sana, tetapi baik"9"+0
atau9+"0"
pas.6<<I
ternyata jawabannya, meninggalkan +0 untuk menambahkan hingga akhir.I-I<4
,I-6<4
, dll)-x..]xxx4
. ".." melempar saya - hanya ada beberapa cara yang bisa menjadi sintaks hukum dan mengapa saya bertanya apakah ES4 yang dimaksudkan - apakah ini fitur aneh dari spec yang ditinggalkan itu? Tetapi kemudian saya melihat bahwa ini adalah herring merah;-""
adalah NaN, jadi-"..]"xx4
pasti ada apa - perbandingan dengan NaN, menghasilkan false; '==' akan dilakukan, tetapi perlu melihat jawaban terakhir untuk konfirmasi ...=-10
. Sejujurnya saya juga melihat versi 9dn sebelumnya, dan menyadari bahwa itu pasti sesuatu=top
(untuk mendapatkan Window kembali). Variabel yang ditugaskan untuk bisa menjadi atau saya, tidak masalah.Tricky puzzle!
sumber
Teka-teki Python grc
Untuk semua ekspresi floating-point yang panjang, saya membuat program C ++ untuk menghasilkan ekspresi matematika Python secara paksa dan mengevaluasinya. Ini mengasumsikan semua angka adalah floating-point dan hanya mendukung operator +, -, *, /, //, **, dan ~. Saya menggunakannya untuk mendapatkan setiap petunjuk lebih dari 5 karakter kecuali
a**9*27%b
dan hash. Dengan 6 atau kurang kosong, selesai dalam beberapa detik, sementara ada sedikit menunggu 7.sumber
Solusi untuk teka-teki MATLAB COTO
Saya kira saya bermain golf ini dengan cukup baik, karena ada 14 ruang.
Skrip tes ini:
menghasilkan output berikut:
sumber