🐍
ドドスコPythonワンライナー
元ネタ
回答
112文字。
exec("p=print;i=-1\nwhile(i:=i*2|(__import__('random').random()<.5))&8190^3822:p(['ドド','スコ'][i&1])\np('ラブ注入♡')")
補足
execの中身
p = print
i = -1
while (i := i * 2 | (__import__('random').random() < .5)) & 8190 ^ 3822:
p(['ドド','スコ'][i & 1])
p('ラブ注入♡')
- ドド⇔0、スコ⇔1で対応させたビット列
i
をドドスコ履歴として使う。(末尾が最後の要素) -
i := i * 2 | (__import__('random').random() < .5)
でi
の末尾に0 or 1を追加する。- 追加したビットに対応する文字列を
p(['ドド','スコ'][i & 1])
で出力する。 - ドドスコスコスコが3回出力された
⇔i
の下位13ビットが0b011101110111?
⇔i & 0b1111111111110 ^ 0b0111011101110 == 0
⇔i & 8190 ^ 3822 == 0
- 追加したビットに対応する文字列を
Discussion