制限されたミニチャレンジRobbers Thread


コップスのスレッド

強盗のようなあなたの仕事は、警察の解決策を見つけ、提供されたセットのバイトだけを使ってシーケンスのn番目の言葉を計算する、提供された言語でプログラムを書くことです。

目標は可能な限り多くの警官の解答を解くことです。それぞれのクラックであなたに単一のポイントを与えます。

クラックは、彼らが働く限り、警察の意図した解決策である必要はありません。

ベストアンサー

ハスケル、xnor

s=show s
ss=show[[s]]
w h=[ss!!h]

Try it
online!

最初の行は、 show 関数の固定小数点として s
を定義します。これは無限の文字列です

""\"\\\"\\\\\\\"\\\\\\\\\\\\\\\...

それはインデックス0,2,6,14,30で "を持っています…
2のべき乗、2を引いたものです。

2行目は、 ss を文字列として定義しています

[[""\"\\\"\\\\\\\"\\\\\\\\\\\\\\...

添え字0,1,2,4,8,16,32で非 を持ちます。2のべき乗で、0は無視されます。

We’re in luck: in ASCII, " < [ <
, so we can write an indicator function for the
less-than-backslashes in this string, and we’re done!

w h is our answer: it checks if the
h’th element of ss is less than a
backslash. Well, we can’t construct a string containing only a
backslash, so we construct some other string that’s always bigger
than "[", namely show[h].

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です