ゼリー、15 14 13 バイト 13文字
2X
s⁵µ¢1¦ṫ¢µ€
TryItOnline!
そのようなチャンクがある場合、最後の1〜9の文字を含む10文字ごとの最初の文字を置換または削除します。明らかに小さい文字のサブセットから選択し1
ます。2
。
どうやって?
2X - Link 1, flip a coin: no arguments
X - random choice from
2 - 2 (treated as the integers [1,2])
s⁵µ¢1¦ṫ¢µ€ - Main link: string of printable ASCII
s⁵ - split (s) into chunks of size ten (⁵)
µ µ - monadic chain separation
€ - for each chunk
¢ - last link as a nilad
1¦ - apply to index 1 (replace 1st of the 10 char chunk with the chosen integer)
¢ - last link as a nilad
ṫ - tail - if it was 1 this has no effect (50%)
- if it was 2 this discards the replaced character (50%)
- implicit print
21バイト単位で(1
および2
各チャンクの最初の文字を置換または削除する)だけでなく、すべての印刷可能なASCIIから選択するには:
s⁵µ32r126¤ỌX¤1¦ṫ2X¤µ€
以下のために、完全にランダムなバージョン(50/50削除/置き換え、一様乱数印刷可能なASCII、および各チャンク内に一様にランダムな文字の場所)私は30バイト(おそらく非最適)を持っています:
95R+31ỌX;
s⁵µṙ⁵X¤©Ṗ2X¤Ŀṙ®C¤µ€
これにより、残った各チャンクがランダムに回転し、最後の文字がポップされ、最初の2つのリンクのうちの1つがランダムに呼び出されます。1つは空で、もう1つはランダムな印刷可能なASCII文字と連結します; その後、チャンクを再び右に回転します。