R、88 86バイト
cat(intToUtf8(rbind(diffinv(matrix(c(66,-32,-31),25,5,T)[,1:3],,,t(c(32,65,97))),10)))
オンラインでお試しください!
Rは文字列操作がひどく、きちんとしたマトリックスが組み込まれていますが、回転も簡単ではない別のことです。Rで私をゴルフアウトできる人には、喜んで賞金を贈ります。
短い回答を見つけたにも関わらず、88バイトより短い最初のR回答に対して50の報奨金を授与します。
できれば賞金を自分で授与すると思いますが、これは「退屈な」答えよりも2バイト短いです。リサイクルにRの好みを使用するだけで、回転を回避できます。
編集:user2390246の答えは完全に私を凌gし、そのソリューションははるかに優れているので、私は100ポイントの報奨金を授与されます。
ここに到達するために、utf8ToInt
(改行を削除して)目的の出力をASCIIコードポイントに分解し、マトリックスを構築して、列diff
単位の差を取得するためにthemm を実行しました。そこで周期性に注目diffinv
して、オリジナルを再現するために使用することを望んで、ゴルフのようにマトリックスを構築することに着手しました。
周期性のおかげで、diff
Rを非多重長でリサイクルすることによりed行列を再作成し、実際に必要な列を抽出できます。
matrix(c(66,-32,-31),25,5,T)[,1:3]
次に、このプロセスを反転させてdiffinv
、コードポイントを再作成し、10
(改行)の行を下部に追加しintToUtf8
、でASCIIに再変換しcat
、結果を返します。