コルモゴロフシフター


37

以下に示すとおりに、次の3行のテキストを出力または表示します。末尾の改行が受け入れられます。

 bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ

このテキストブロックは下のブロックと同じですが、n番目の列がn回下に回転します。

 !"#$%&'()*+,-./0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz

これは課題であるため、出力形式には柔軟性がないことに注意してください。


1
テキストは改行で終わりますか?特に、 '.... z \ n \ n`で終了しても大丈夫ですか?
トンホスペル

2
いいえ@Tom、それが最大のもの改行であるべきである
Stewieグリフィン

主要な改行は受け入れられますか?
ドムヘイスティングス

@DomHastingsいいえ、ごめんなさい。
スティーヴィーグリフィン

(多くの言語(HTML、///、テキスト、Bubblegum)で、これらの80文字をハードコーディングすることは(おそらく、Bubblegumを除いて)最も短く、退屈です。そうしないでください)
-user202729

回答:


18

ジャワ8、169 162 150 146 116 113 106 95 94 93 92 91 90 84バイト

やった、ついにやった!下部にある88バイトのリテラル出力に勝っています。ゴルフに参加したすべての人に感謝します!

v->{for(int i=0,t=0;++i<81;System.out.printf("%c",i%27<1?10:(4-t++%3)*32%97+i%27));}

@StewieGriffinのおかげで-7バイト。@Neilの
おかげで-42バイト。@PeterTaylorの おかげで-11バイト。@OlivierGrégoireの おかげで-3バイト。 -6バイトは@OlivierGrégoire@Neilのおかげです(Olivier はNeilのJavaScript回答の移植を提案しまし)。


オンラインでお試しください。

説明:

v->{                          // Method with empty unused parameter and no return-type
  for(int i=0,t=0;++i<81;     //  Loop from 1 to 81 (exclusive)
     System.out.printf("%c",  //   Print the following character:
      i%27<1?                 //    If it's the last column
       10                     //     Print a new-line
      :                       //    Else:
       (4-t++%3)*32%97+i%27   //     Print the correct character based on the index

ここで、各算術部分が何をするのか、そしてそれがどのように正しい文字で終わるのかを見てください。


Java 8、88バイト

v->" bC#eF&hI)kL,nO/qR2tU5wX8z\nA!cD$fG'iJ*lM-oP0rS3uV6xY9\naB\"dE%gH(jK+mN.pQ1sT4vW7yZ"

退屈ですが、Javaで意図した列の回転を利用することは、確かにJavaでは短くなりませんどちらの方法でもすぐに解決策を投稿し、どのくらいのバイトが異なるかを確認します。どうやら違いはわずか-4バイトです!:D

オンラインでお試しください。



1
私のCJamのアプローチに基づいて、positionのコードポイントの合理的な単純な算術式があるはずです(x, y)。これは、おそらく169バイトのアプローチと、場合によってはリテラル文字列にさえ勝るでしょう。
マーティンエンダー

1
116バイト:v->{String a="";for(int i=2,j,t;++i<6;){for(j=31;++j<58;a+=(char)(t<1?j+65:t>1?j:j+33))t=(j-i)%3;a+="\n";}return a;}
ニール

1
エヘム、95:v->{for(int i=0,r,c;++i<81;System.out.printf("%c",c<1?10:32*++r+c-1/r))r=(i/27+28-(c=i%27))%3;}
ピーターテイラー

1
92バイトc完全に削除)
オリビエグレゴワール

4
@OlivierGrégoireJavaはJavaScriptをアウトゴルフしていますか?私は何を間違えましたか?
ニール

13

、13バイト

Tzṙṫ26¡m→"Aa 

末尾のスペースに注意してください。 オンラインでお試しください!

説明

Tzṙṫ26¡m→"Aa   No input.
         "Aa   The string "Aa ".
      ¡        Iterate
       m→      map successor: ["Aa ","Bb!","Cc\"","Dd#",..
 z             Zip with
   ṫ26         the reversed range [26,25,24,..,1]
  ṙ            using rotation: [" Aa","b!B",..,"z9Z"]
               This also truncates the list to length 26.
T              Transpose, implicitly print separated by newlines.

11

SPL(シェークスピアプログラミング言語)、 1679 1618 1600バイト

.
Ajax,.
Ford,.
Puck,.
Act I:.
Scene I:.
[Enter Ajax and Ford]
Ajax:
You are the remainder of the quotient between the sum of the remainder of the quotient between the product of me and a fat joy and the sum of the cube of a big red day and the difference between a red fat pig and a big old fat cow and the quotient between me and the sum of a day and the square of the sum of a joy and a big red day and the sum of a cat and a fat son.
[Exit Ajax]
[Enter Puck]
Ford:
Am I as good as nothing? If so, you are a bad big old red fat day. Am I as good as a joy? If so, you are the sum of a joy and a the cube of an old bad day. Am I as good as a big day? If so, you are the sum of the square of the sum of a big red fat cat and an old cow and the sum of an old war and a lie.
[Exit Ford]
[Enter Ajax]
Ajax:
You are the sum of thyself and the remainder of the quotient between me and the sum of a man and the square of the sum of a son and a big fat cow. Speak thy mind!
[Exit Puck]
[Enter Ford]
Ford:
You are the sum of yourself and a son.
Ajax:
You are the remainder of the quotient between me and the sum of a cat and the square of the sum of a cow and an old red sky.
Ford:
Am I as good as nothing? If so, let us proceed to scene III.
Scene II:.
Ajax:
You are the product of the sum of a fat man and a cow and the sum of a man and the square of the sum of a cat and a big red son. Are you not better than me? If so, let us return to act I. Let us proceed to scene IV.
Scene III:.
Ajax:
You are the sum of a big old fat cat and a red cow. Speak thy mind! Let us return to scene II.
Scene IV:.
[Exeunt]

インタープリター(https://github.com/drsam94/Spl)にいくつかの問題があったので、それは思っていたほど小さくありません。しかし、少なくともこれは動作します:)


PHPでの同じロジックは、何が起こっているかを少し見やすくするためのものです。

<?php

Act1Scene1:
$ford = ((2 * $ajax) % 52 + $ajax / 26) % 3;
if ($ford == 0) {
    $puck = 32;
}
if ($ford == 1) {
    $puck = 65;
}
if ($ford == 2) {
    $puck = 97;
}
$puck = $ajax % 26 + $puck;
echo chr($puck);

$ajax = $ajax + 1;

$ford = $ajax % 26;
if ($ford == 0) {
    goto Act1Scene3;
}

Act1Scene2:
if ($ajax < 78) {
    goto Act1Scene1;
}
goto Act1Scene4;

Act1Scene3:
$ford = 10;
echo chr($ford);
goto Act1Scene2;

Act1Scene4:

4
このスピーチは、痴呆したスース博士の本のように聞こえます。:^ D
DLosc

10

JavaScript(ES6)、86 75バイト

f=(i=k=0)=>i<80?String.fromCharCode(++i%27?(4-k++%3)*32%97+i%27:10)+f(i):''

編集:@Ryanのおかげで11バイトを保存しました。リテラルよりも10バイト短くなりました!

JavaScript(Node.js)、64バイト

f=(i=k=0)=>i<80?Buffer([++i%27?(4-k++%3)*32%97+i%27:10])+f(i):''

オンラインでお試しください!@Ryanに感謝します。


2
再帰を使用して11バイトを保存できます。f=(i=k=0)=>i-80?String.fromCharCode(++i%27?(4-k++%3)*32%97+i%27:10)+f(i):''さらに、ノード環境ではさらに11バイトを保存できますf=(i=k=0)=>i-80?Buffer([++i%27?(4-k++%3)*32%97+i%27:10])+f(i):''
。– Ry-

8

05AB1E17 15バイト

Erik the Outgolferのおかげで2バイト節約

žQAuA)øε¼¾GÁ]ø»

オンラインでお試しください!

説明

žQ                 # push the list of printable ascii characters
  Au               # push upper-case alphabet
    A              # push lower-case alphabet
     )ø            # zip
       ε           # apply to each
        ¼          # increment counter
         ¾G        # for N in [1 ... counter] do:
           Á       # rotate string right
            ]      # end loops
             ø     # zip
              »    # print list joined by newlines

@Emigna私は何かあるεNべきだと思う。vyNFÁ])ø»とあなたの2つのアイデアを組み合わせます。
魔法のタコ

@MagicOctopusUrn:ええ、私はしばしばNを使いたいと思っていましたεεループではないため、技術的には適合しませんが、ループを使用することもあるので、それがあれば便利です。
エミグナ

8

CJam(18バイト)

26{_" Aa"f+m>}%zN*

オンラインデモ

解剖

明白なアプローチは、元の行を生成し、圧縮し、で回転しee::m>、圧縮して戻すことです。しかしee::、非常に長く、列を直接生成する方が短くなります。

26{         e# For i = 0 to 25...
  _" Aa"f+  e#   Generate the unrotated column by offsets from the starting chars
  m>        e#   Rotate the appropriate distance
}%
zN*         e# Zip and join the rows with newlines

8

Python 2、72バイト

x=98
exec"r='';exec'r+=chr(x/3);x+=291*(x<180)-94;'*26;print r;x-=78;"*3

オンラインでお試しください!

これ31.333..は、前の文字から削除し、前の97コードポイントが60未満の場合に追加し、26各行の終わりで減算することで機能します。


8

R64 63バイト

cat(intToUtf8(c(32:57,10,65:90,10,97:122,10)[(0:80*55)%%81+1]))

オンラインでお試しください!

ジュゼッペのおかげで-1バイト

私はこれにかなりの試行錯誤を繰り返したため、簡潔な説明に苦労しています。基本的に、文字コードの代わりに、テキストの元のブロック(3 * 26と3つの改行)を表す1:81のより単純なシーケンスから始め、これらの値が回転ブロック内で終わるインデックスを調べました。これは、81を法として毎回26ずつ減少する(または、同様に、55 mod 81ずつ増加する)規則的なシーケンスに従います。その後、そのシーケンスを再(0:80*55)%%81+1])作成し、実際のUnicode値にマッピングし、c(32:57,10,65:90,10,97:122,10)文字に変換して印刷するという問題がありました。


よくやった!80バイト以上の範囲の別のソリューションを本当に期待していましたが、私はこれを報奨しますので、報奨金を100に引き上げると思います
ジュゼッペ

@ジュゼッペ心配無用!正直に言うと、担当者よりも課題の方が重要です。
user2390246

ああ、since (mod 81)の55代わりにバイトを保存できます。-26-26 == 55
ジュゼッペ

@ジュゼッペ提案、そして賞金をありがとう!
user2390246

6

Japt17 15バイト

"@`"
;By@=cÄ é

オンラインでテストしてください!

説明

"@`"         The string "@`\x1F". The following newline sets U to this string.
;            Reset variables A-L to various values. B is set to
 B           the uppercase alphabet, which we only use to get a length of 26.
  y@         Map each column Z (initially just the letter itself) through this function:
     cÄ        Increment each char-code in U.
        é      Rotate by 1 character.
    =          Set U to the result to keep the chain going.
             This generates the 26 columns exactly how we needed them.
             Implicit: output result of last expression

他の7つの可能な15バイト:

;By@" Aa"c+Y éY
;ByÈpv)iSc+Y)éY
;ByÈ+v)iSc+Y)éY
;ByÈpv)iYd32)éY
;ByÈ+v)iYd32)éY
;ByÈpv)i32dY)éY
;ByÈ+v)i32dY)éY

5

CJam23 21バイト

3{26{_I-" aA"=+}/N}fI

オンラインでお試しください!

説明

3{         e# For I from 0 to 2...
  26{      e#   For i 0 to 25...
    _I-    e#     Duplicate i and subtract I. This shifts the starting
           e#     character of each line left in the following string.
    " aA"= e#     Pick the character at the start of the unrotated line
           e#     of the current character. We basically just cycle
           e#     through non-letters, lower-case, upper-case, which is
           e#     the cycle throughout the result. Due to the I-, when
           e#     We get to the second line we start from A, and on the
           e#     third line we start from a.
    +      e#     Add i to the starting character to get the correct
           e#     column.
  }/
  N        e#   Push a linefeed.
}fI

3
非常に良い説明。特に好きなのは、「このランダムに見える文字列を押す」ことです。:P
スチューイーグリフィン

2
@StewieGriffin申し訳ありませんが、その文字列は行かなければなりませんでした。
マーティンエンダー

5

MATL、16バイト

1Y2tk9V:v26:l&YS

オンラインでお試しください!

説明

1Y2     % Push 'AB...Z' (predefined literal)
t       % Duplicate
k       % Maker lowercase
9V      % Push 9, convert to string representation: gives char '9'
:       % Range. For chars, gives string from space to that
v       % Concatenate vertically. Gives a 3×26 char matrix
26      % Push 26
:       % Range. For numbers, gives numeric vector from 1 to that
l&YS    % Circularly shift each column of the first input (char matrix)
        % by the amount specified by the second input (numeric vector).
        % Implicitly display

2
ニース:)私は機能のデフォルトのI / O形式を変更しなければならないとき、私はまだ闘争... :(
Stewieグリフィン

1
1:26シフトとして使用する文字列の順序がとてもいいです。Rの回答でそれを試してみてください
ジュゼッペ

1
@StewieGriffinメタ関数&は、Sueverのアイデアから、すばらしい追加でした:-)
ルイスメンドー

@Giuseppeはい、1バイト節約しました:-)
ルイスメンドー

5

ゼリー、13バイト

26“ aA‘ẋs+ḶỌY

オンラインでお試しください!

使い方

26“ aA‘ẋs+ḶỌY  Main link. No arguments.

26             Set the argument and the return value to 26.
  “ aA‘ẋ       Repeat [32, 97, 65] (code points of ' ', 'a', and 'A') 26 times.
        s      Split the result into chunks of length 26.
          Ḷ    Unlength; yield [0, ..., 25].
         +     Add [0, ..., 25] to each of the chunks.
           Ọ   Unordinal; cast all integers to characters.
            Y  Jojn, separating by linefeeds.

5

Perl 5、46バイト

print map{chr$n+++ord,$/x!($n%=26)}($",A,a)x26

@TonHospelの不可解な魔法のおかげで13バイト節約されました

オンラインでお試しください!


あなた$i++はただで$_あり、say代わりに使用することができるprintので、これは本当に50
Ton Hospel

うーん、それは取り除くのは簡単だ{}ためにあまりにもマップに49say map$/x/26|52/.chr$_%26+(32,65,97)[$_%3],0..77
トンHospel

@TonHospelはい、もちろんです!ありがとう!
ドムヘイスティングス

ループを再設計すると47print map{chr$n+++$_,$/x!($n%=26)}(32,97,65)x26。残念ながらsay、1つの改行が多すぎます。
トンホスペル

そして楽しみ48say map$/x/.A/.chr$n++%26+(65,32,97)[$n%3],A..BZ
トンホスペル

5

R88 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して、オリジナルを再現するために使用することを望んで、ゴルフのようにマトリックスを構築することに着手しました。

周期性のおかげで、diffRを非多重長でリサイクルすることによりed行列を再作成し、実際に必要な列を抽出できます。

matrix(c(66,-32,-31),25,5,T)[,1:3]

次に、このプロセスを反転させてdiffinv、コードポイントを再作成し、10(改行)の行を下部に追加しintToUtf8、でASCIIに再変換しcat、結果を返します。


3
自分に賞金を与えることができます。報奨金はx担当者にかかり、そこからx担当者を獲得します。
スチューウィーグリフィン


5

スタックス14 12 バイト

ü≤▐éh╢%╠£┐3]

実行してデバッグする

開梱されていない、コメントされていない、これはこのように見えます。

3R26        push [1,2,3] and 26
K           cross-map using the rest of the program, printing lines implicitly
            this instruction maps over a cartesian join
  -         subtract
  " Aa"@    index into " Aa" using the subtraction result
  i+        add the iteration index

これを実行する

このプログラムは、staxの最初のリリース以降に利用可能な機能のみを使用しますが、Kこの回答を最初に書いたときにクロスマップを忘れていたようです。

この答えについて注意すべき興味深い点Rは、K暗黙的に整数を範囲に変換するため、これが不要な命令であるということです。しかしプッシュする方法はありません326の間でいくつかの余分なバイトなし。


4

PowerShell、53バ​​イト

0..2|%{-join(32..57|%{[char]($_+(0,65,33)[$j++%3])})}

オンラインでお試しください!

これはDomのPerlの答えに似ていますが、私は独自にそれに到達しました。

これはSymbol - Lowercase - Capital、改行(8 - z - Aたとえば)をラップする場合でもパターンが進むという事実を利用し、したがって、それらを単一の文字列にまとめる前$j++%3に、現在の番号$_に適切なオフセット(を介して選択)を追加するだけ-joinです。これを3回実行して、3行を作成します($j反復間で保存します)。これらの3行はパイプライン上に残されており、暗黙のうちWrite-Outputに改行が無料で提供されます。


4

ジュリア0.6、79バイト

println.([prod([' ':'9' 'A':'Z' 'a':'z'][n,mod1(i-n,3)] for n=1:26) for i=2:4])

[' ':'9' 'A':'Z' 'a':'z']は、[n,mod1(i-n,3)]適切な回転でその配列にインデックス付けされる、回転しない文字の2D配列です。prod文字のベクトルを文字列に変換します(乗算は文字列の結合に使用されるため)。2つのネストされたVector内包表記があり、3つの文字列を含むprintln.ベクターが作成され、ベクター内の各文字列の後に改行が出力されます。

TIOには、prod2つの文字を(で)乗算して文字列を取得する適切な方法がありません。メソッドがやや最近追加されたことは知っていますが、TIOバージョンはこのコードが動作するPCのバージョンと同じように見えるため、TIOで動作しない理由を完全には説明できません。

コピーペーストの例(;必須ではなく、REPLで余分な出力を抑制するだけです):

julia> println.([prod([' ':'9' 'A':'Z' 'a':'z'][n,mod1(i-n,3)] for n=1:26) for i=2:4]);
 bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ

4

26 21 15バイト

E³⭆⧧⟦γαβ⟧⁻κμμ

オンラインでお試しください!リンクは、コードの詳細バージョンです。説明:

 ³              Literal 3
E               Map over implicit range
   β            Lowercase letters
  ⭆             Map over characters and concatenate
            κ   Outer index
             μ  Inner index
           ⁻    Subtract
       γ        Printable characters
        α       Uppercase letters
         β      Lowercase letters
     §⟦   ⟧     Circularly index into list (selects one of the three strings)
              μ Inner index
    §           (Circularly) index into string
                Implicitly print each inner map result on a separate line

4

J29、27の 25バイト

-FrownyFrogのおかげで2バイト-マイルのおかげで2バイト

 |:u:(<26)2&(|.>:)32 65 97

オンラインでお試しください!

初期アプローチ: J、29バイト

u:(-|."_1&.|:32 65 97+/])i.26

説明: i.26-範囲0-26

   i.26
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

32 65 97+/] -キャラクター用の3列のテーブルを作成する

   32 65 97+/i.26
32 33 34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57
65 66 67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

&.|:転置してから次の動詞(|.)を実行し、再び転置します

-|."_1 各行をn回回転します

     (-i.26)|."_1|:32 65 97+/i.26
 32  65  97
 98  33  66
 67  99  34
 35  68 100
101  36  69
 70 102  37
 38  71 103
104  39  72
 73 105  40
 41  74 106
107  42  75
 76 108  43
 44  77 109
110  45  78
 79 111  46
 47  80 112
113  48  81
 82 114  49
 50  83 115
116  51  84
 85 117  52
 53  86 118
119  54  87
 88 120  55
 56  89 121
122  57  90

u: ユニコードに変換

    u:(-i.26)|."_1&.|:32 65 97+/i.26
 bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ

オンラインでお試しください!


@FrownyFrogありがとう!どうやら、列ごとにマトリックスを作成する可能性をチェックしなかったようです。
ガレンイワノフ

2
|:u:(<26)2&(|.>:)32 65 972バイト節約します。
マイル

@milesすばらしいコードをありがとう!
ガレンイワノフ

4

C、70 69 67 60 64バイト

i;f(t){for(i=t=0;++i<81;putchar(i%27?(4-t++%3)*32%97+i%27:10));}

関数を再利用可能にするため +4バイト。

再利用できない無効な60バイトの回答:

i,t;f(){for(;++i<81;putchar(i%27?(4-t++%3)*32%97+i%27:10));}

私のJava 8の ポートは@NeilのJavaScriptの答えに答えます。

オンラインでお試しください。


関数は再利用可能でなければならず、この関数はきれいに終了しないため、グローバル変数は残されます。が必要i=t=0です。
ジョナサンフレッチ

@JonathanFrech修正
ケビンクルーッセン

3

APL + WIN、26バイト

インデックスの原点0

⎕av[(-⍳26)⊖32 65 97∘.+⍳26]

APLアトミックベクトル内の文字の整数インデックス値の行列を生成します。

各列をその数値で下に回転させます。

結果のインデックスを使用して、原子ベクトルの文字を表示します。


3

Vim、81 79バイト

a !"#$%&'()*+,-./0123456789␛:h<_␍jjYZZpPgU$klqq"aDjlma"bD"ap`ajD"bpkkp`akl@qq@q

説明(簡略化)

a !"#$%&'()*+,-./0123456789␛    Insert the first line
:h<_␍jjYZZpPgU$                  Insert the alphabet twice by copying it from the help page
klqq                             Define the loop `q`:
"aDjl                             Cut the rest of the line to `a`
ma"bD"ap                          Replace the rest of the second line (cut `b`, paste `a`)
`ajD"bp                           Replace the rest of the third line (cut `c`, paste `b`)
kkp                               Paste `c`
`akl@qq@q                        Run the loop, each time one more step to the right




3

Japt、17バイト

26Æ" Aa"c+X éX÷y

試して


説明

26Æ           Ã       :Create the range [0,26) and pass each X through a function
   " Aa"              :  String literal
        c+X           :  Add X to the codepoint of each character
            éX        :  Rotate right X times
               ·      :Join with newlines
                y     :Transpose

ああ、私は別の解決策を持っていたが、それは別の答えを保証するのに十分かもしれないし、そうでないかもしれない:;Bå_cÄ é}"@`" ·y
ETHproductions

さて、私たちは同じ長さだと私はそれについて良く感じています;-)
ETHproductions

@ETHproductions:私には十分に異なって見えます:) C昼食後にマッピングすることにより、より短いソリューションを思い付くことができるかどうかを確認しようとしていました。方法がわからないy·、ラウンド間違った道「を終わりました。私はingするCtrl+Z前に何回も編集したに違いないCtrl+A
シャギー



2

K4、38バイト

溶液:

-1"c"$+(-t).q.rotate'32 65 97+/:t:!26;

例:

q)k)-1"c"$+(-t).q.rotate'32 65 97+/:t:!26;
 bC#eF&hI)kL,nO/qR2tU5wX8z
A!cD$fG'iJ*lM-oP0rS3uV6xY9
aB"dE%gH(jK+mN.pQ1sT4vW7yZ

説明:

回転を実行する9文字...

-1"c"$+(-t).q.rotate'32 65 97+/:t:!26;
-1                                   ; / print to stdout, swallow return
                                  !26  / til 26, 0..25
                                t:     / save as variable t
                             +/:       / add each right item to...
                     32 65 97          / the list 32, 65, 97 (ASCII offsets)
           .q.rotate'                  / rotate each-both
       (-t)                            / negate, 0..-25
      +                                / flip rows and columns
  "c"$                                 / cast to characters

2

Perl、49 46バイト

perl -E 'say map chr($_*55%81)=~y// -:A-Z             
a-z       
/cr,0..79'

または

perl -E 'say grep{$_=chr$_*55%81;y// -:A-Z             
a-z       
/c}0..79'

+1!バイトを節約するのを手伝うことはできませんが、を使用$^x8することを考えましたが、十分な長さの別の変数を考えることはできません"@INC"が、おそらく長すぎて、の"@-"代わりに使用しますが$n++、同じ長さです。それがあなたがこれをさらに縮小するのを助けない限り?-pフラグを追加して暗黙的な出力を行わない限り、
ドムヘイスティングス

1
@DomHastingsああ、それほど多くの準備を必要とせずにループする方法を見つけた
トンホスペル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.