対角アルファベット


66

入力がない場合、タスクは以下を生成することです。

a
 b
  c
   d
    e
     f
      g
       h
        i
         j
          k
           l
            m
             n
              o
               p
                q
                 r
                  s
                   t
                    u
                     v
                      w
                       x
                        y
                         z

非視覚的に、あなたの仕事はアルファベットの各文字を生成し、その前のスペースをアルファベットの位置から1を引いた値に等しくすることです。

これを印刷する場合、上記のように表示される必要があります。外観に影響を与えない余分な空白、および末尾の改行は許可されます。すべて小文字またはすべて大文字を使用できます。

また、通常の規則に従って、改行を含む文字列または文字列のリストとして関数からこれを返すこともできます。

これはなので、バイト単位の最短回答が勝ちです!


スペースは実際のASCIIスペースである必要がありますか、または次のように出力できa<VERTICAL-TAB>b<VERTICAL-TAB>c...ますか?バックスペース文字がそこにある場合はどうですか?視覚的な結果が同じである限り?
デジタル外傷

@DigitalTraumaは、同じように見える限り、どのような空白を使用してもかまいません。
スティーブン

スペースの代わりにタブを使用できますか?

@ yamboy1うーん、おそらくないでしょう。ほとんどのタブは多数のスペースに設定されています-対角線の4前にスペースがあるように見える場合b、それはあまり対角線に見えません。スロープが〜のように見える場合は-1問題ありません。
スティーブン

外観に影響しないのは、余分な先行スペースまたは2があることですか?
MildlyMilquetoast

回答:


87

、2 バイト

↘β

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

どうやって?

 β - the lowercase alphabet
↘  - direction

チャコールが最初に設計されたまさにそのような挑戦。


4
適切な言語:)
スティーブン

2
これは私に思い出させます、私はおそらくもう少しクレヨンに取り組むべきです...私↘"abc ... xyz"qは最短の作業プログラムであると信じています。(オンラインで試してみてください!)動作する↘``26O;)qはずです(バックティックで開始します; 0 ... 25の各Iについて、暗黙のIをポップし、バックティックと出力をインクリメントします)が、何らかの理由で「空のスタック」エラーをスローします。 。
ETHproductions

2
2バイト?! SOUTH EAST ARROWはどのエンコードで1バイトですか?
ワイク

6
@Wyck Charcoal(注:推測)は、1バイトの命令に圧縮できるカスタムコードページを使用します。それはコードゴルフにとって合法です。codegolf.meta.stackexchange.com/questions/9428/...
Draco18s

14
@StephenS、私はあなたが右下の言語を意味すると思います:)
Wossname

18

C、45バイト

f(i){for(i=0;++i<27;)printf("%*c\n",i,i+96);}

5バイトを節約してくれた@Dennisに感謝します!


9
私のマシンで動作します™
破壊可能なレモン

iある時点で初期化またはリセットする必要があると思います。少なくともTIOでは、f()一度だけ動作します。
デニス

@デニスああ、あなたは正しい。それを修正しました。
ドアノブ

f(i){for(i=0;++i<27;printf("%*c\n",i,i+96));}数バイト節約します。
デニス

3
f(i){for(i=96;i<122;)printf("%c\v",++i);}41バイトの場合-これを実際の端末で実行してください(はい、これは許可されています
-NieDzejkob

13

05AB1E14 8 6バイト

@Emignaのおかげで-2バイト

AvyNú»

使い方

A      # lowercase alphabet
 v     # for letter in alphabet
  y    # push letter
   N   # push index of letter
    ú  # Pad letter with index of letter spaces
     » # Join with stack on newline.

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

オリジナルバージョン、14バイト

26FNð×N65+ç«}»

でさらに2バイト節約できますAvyNú»
エミグナ

@Emigna:ありがとう!でそれを編集します。
ニールA.

ƶその完璧なようだが、それはありません。:(
マジックタコ壺

Λおそらくまだその時点では利用できませんでしたが26A3Λ、バイトを節約します。
ケビンCruijssen

1
@MagicOctopusUrn ₂A3Λはさらに短くなります。
ケビンクルーッセン

12

JavaScript(ES6)、60 59バイト

f=(n=10)=>n-36?" ".repeat(n-10)+n.toString(++n)+`
`+f(n):""

末尾に改行を含む文字列を返す再帰関数。


1
おっと、それはとても卑劣だ。10から36の範囲の数値を奇妙な基数の数値に変換します。しかし、なぜベースも増やす必要があるのか​​、まだ理解していない。
スティーブベネット

2
@SteveBennett正しいですが、n.toString(++n)+f(n)は1バイトより短いですn.toString(36)+f(n+1)
-ETHproductions

1
あなたはf=(n=10,s='')=>n-36?s+n.toString(++n)+'\n'+f(n,s+' '):""55でできます
。–アーナルド

1
ES8でバイトを保存します"".padEnd(n-10)+n.toString(++n)
シャギー

1
@Arnauldは、f=(n=10,s='')=>n-36?s+n.toString(++n)+'\n'+f(n,s+' '):s許容されるようです。
シャギー


12

R、38 37 36バイト

write(intToUtf8(diag(65:90),T),1,26)

(の使用writeは、@ Giuseppeの答えに触発されています。)


3
私はそれを試してみましたが、動作させることができませんでした!よくやった。大文字が許可されているため、65:90を使用して1バイトを保存できます。
-user2390246

@ user2390246指摘してくれてありがとう!
スベンホーエンシュタイン

別のバイトを削るの1ではなく使用でき""ます。
ジュゼッペ

@Giuseppe指摘してくれてありがとう!
スベンホーエンシュタイン

11

Vim、29バイト

:h<_↵↵↵y$ZZ25o <Esc>{qqpblD+q25@q

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

はリターンキーを押すことを意味します

<Esc>は、エスケープキーを押すことを意味します

これはどのように作動しますか?

:h<_↵↵↵                             Open the help and navigate to the alphabet
       y$ZZ                         Copy the alphabet and close the help
           25o <Esc>                Abuse auto-indent and create a whitespace diagonal
                    gg              Go to the beginning of the file
                      qq            Record a macro
                        pb          Paste the alphabet and go to the first letter
                          lD        Go to the second letter and cut the rest of the alphabet
                            +       Go to the first non-blank character in the next line
                             q      Stop recording the macro
                              25@q  Run the macro for the remaining letters

オンラインでお試しください! これを使って、それを実証することができます(VはVimに基づいており、明らかに自動インデントのデフォルトがオフになっていることを除き、ほとんどの場合下位互換性があります)。また、それほど重要ではないが、+あなたは私を一瞬投げたあなたの説明を逃した。
nmjcman101

ありがとう@ nmjcman101!オンラインでvimを試す方法を見つけようとしていましたが、Vについてはまったく知りませんでした
jmriego

代わりに使用できます<Esc>。私の意見では少し良く見えます。
小麦ウィザード

あなたが行う場合は、1つのバイトを保存することができ{代わりにgg
DJMcMayhem

↵↵↵の代わりに2↵を使用し、y $の代わりにYを使用することができます
GB

11

Python 2、36バイト

n=65;exec"print'%*c'%(n,n);n+=1;"*26

これは、外観ルールに影響を与えない余分な空白を利用します。

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

代替バージョン、38バイト

n=1;exec"print'%*c'%(n,n+96);n+=1;"*26

これにより、チャレンジ仕様から正確な出力が生成されます。

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


どのように機能し%*cますか?
リーキー修道女

%*<identifier>2つの引数を取ります。それを埋める長さと、実際に置き換えるものです。ここで使用したprintfように、一部の実装にはさらにあいまいな機能があります%1$<identifier>
デニス


8

Pure Bash、13

echo {a..z}^K^H

ここ^K^Hリテラル垂直タブとバックスペースのASCII制御文字です。xxdこのスクリプトのダンプは次のとおりです。xxd -r実際のスクリプトを再生成するために使用します。

00000000: 6563 686f 207b 612e 2e7a 7d0b 08         echo {a..z}..
  • {a..z}a b c ... z(スペースで区切られた)を生成する標準のbashブレース展開です
  • ^K垂直タブは、同じ位置に1行下にカーソルをドロップ
  • ^Hバックスペースは区切りスペースを消去するために戻って1カーソルを移動させ

オンラインでお試しくださいcolそして、tacこれをブラウザウィンドウで正しくレンダリングするためにフッターで使用されますが、これは通常の端末では不要です。


出力の上記の非正統的な制御文字があまりにも長すぎる場合、これを行うことができます:

Bash +共通ユーティリティ、24

echo {a..z}^K^H|col -x|tac

ここ^K^Hリテラル垂直タブとバックスペースのASCII制御文字です。xxdこのスクリプトのダンプは次のとおりです。xxd -r実際のスクリプトを再生成するために使用します。

00000000: 6563 686f 207b 612e 2e7a 7d0b 087c 636f  echo {a..z}..|co
00000010: 6c20 2d78 7c74 6163                      l -x|tac

オンラインでお試しください。垂直タブとバックスペースはブラウザで非表示に表示される場合がありますが、それらは表示されます(クロムでは非表示、Firefoxでは表示)。

  • col -x 面白い制御文字がスペースと改行で置き換えられて同じ視覚的結果が得られるように入力を再レンダリングします
  • 何らかの理由で、col行を逆順に出力します。 tacそれを修正します。

:それは)(非常に退屈するのではなく、出てくる、より良い答えを持っているために、ものは非常に:)クール(と活動の代わりに、スコアによってcodegolfにソート答えを示唆ためのメタと@Dennisのおかげcodegolf langages組み込みコマンドであるcodegolf.meta.stackexchange。 com / questions / 10127 /…
オリビエデュラック

多くの端末^Kはカーソルを上に向けてレンダリングしますが、これはcolここでエミュレートする必要がある動作です。
ニール

@Neilはい、それは理にかなっています- colマンページはVTを「逆改行」と呼びます。xtermの、gnome-terminalのとOSX端子すべてのラインけれども...ドロップダウン
デジタルトラウマ

8

脳フラック124、116、106のバイト

((((()))))(((([][]){}){})[[]()]<>){(({})<(({})<({}<>({})({})<>)>)
{({}<(<>({})<>)>[()])}{}(<>[][]<>)>[()])}

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

説明:

この回答はStack Height Niladを悪用しますが、これまで使用したことのない新しい方法で、これを誇りに思っています。それ以外は、答えはあまり賢くない。

したがって、このASCIIアートで使用される文字を分析すると、実際に頻繁に使用される3つの値があります。

  • 32(スペース)、

  • 64(Nに64を追加して、アルファベットのN番目の文字を取得します)

  • 10(改行)

26。(ループの数)そしてこれらの数は異なる場所にプッシュされるため、中間の値を実際に再利用して大きな数を小さくすることはできません。そして、これらの数字をすべてプッシュすると、なんと86バイトだけになります。

10:
((()()()()()){})

26:
((((()()()){}){}()){})

32:
((((()()()()){}){}){})

64:
(((((()()()()){}){}){}){})

これは恐ろしいことです。そこで、より便利にする方法を示します。明らかなアプローチは32、代替スタックにをプッシュすることです。これにより、32スニペットがに(<>({})<>)なり、64スニペットがになり(<>({})({})<>)ます。最初のプッシュ32と最初のプッシュ26を組み合わせると、およそ8バイト節約できます。(私の最初のゴルフ)。

しかし、ここで私が本当に誇りに思っているトリックが出てきます。私たちは他の何かのために代替スタックを使用していないので、私たちも10をゴルフダウンするかもしれません。これを行うには、プログラムの開始直後に、任意の4つの数字をスタックにプッシュします。32もプッシュするため、これにより[]nilad の値が5に増加し、10スニペットがはるかに便利になります。幸運なことに、実際には32と26プッシュスニペットをゴルフでダウンさせることができます!

#Push 32, 26
(((((()()()()){}){}){})<>[(()()()){}])

#Push 10
((()()()()()){})

になる

#Push 32, 26 (-2 bytes)
(((((())))))((([][][]){}()())[[]]<>)

#Push 10 (-6 bytes)
(<>[][]<>)

以下に詳細な説明を示します。

# Push 1 four times
((((()))))

# Push 32 to main stack (to reuse later)...
((([][][]){}()())

# And then 26 to the alternate stack
[[]()]<>)

#While true
{

    # Keep track of the current TOS
    (({})<

        # Push [TOS, TOS + 64] (To get uppercase characters)
        (({})<({}<>({})({})<>)>)

        # TOS times...
        {
            # Decrement the loop counter, while pushing a space underneath it
            ({}<(<>({})<>)>[()])

        # Endwhile, pop zeroed counter
        }{}

        # Push 10 (newline)
        (<>[][]<>)

    # Push TOS - 1 back one
    >[()])

# Endwhile
}


7

Googleスプレッドシート、 67 65バイト

=ArrayFormula(IF(ROW(A1:Z)=COLUMN(A1:Z26),CHAR(96+ROW(A1:Z26)),))

= ArrayFormula(IF(ROW(A1:Z)= COLUMN(A1:Z26)、CHAR(96 + ROW(A1:Z26))、 ""))

空白が行うことを明確にするために、目に見える空のセルを使用しました

出力

これがカウントされない場合、バイトカウントを誤解した場合、またはこれがここでの最初の投稿であるためエチケットを誤解した場合、お知らせください。

編集:Googleシートは空のif値を受け入れるため、「」を省略することで2バイトを節約できることがわかりました。


1
PPCGへようこそ:)よさそうです!他のGoogleスプレッドシートの回答を上手くやった!
スティーブン

7

APL(Dyalog)9 7 バイトSBCS

-2バイトはngnのヒントのおかげです。

↑⍨∘-⌸⎕A

[オンラインで試してみてください!] [TIO-j3o0ipjy]

⎕A 大文字のAアルファベット

 各(要素、インデックスのリスト)ペアの間に、次の暗黙関数を挿入します。

↑⍨ 要素(文字)から…

 …

- 否定インデックスの文字数、つまり、後ろから多くの文字、前にスペースを埋める。

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


いいね 私のJの試みはかなり冗長でした。これらの動詞のJへの翻訳はありますか?
ジョナ

@Jonah Verbs:is {.and is i.副詞:¨is "0and is ~です。
アダム

ありがとう。Jの翻訳は簡潔さを失うように見えます:(a.{~97+i.26){."0~-1+i.26
ジョナ

@Adámの出力は必要に応じて見えません。ヒント:適切なマトリックスを出力し、2バイトを保存するために使用
-ngn

@ngn 文字列のリストを返すこともできます(…)。しかし、調査します。編集:ああ、もちろんです!
アダム

6

オクターブ、25 19または12?バイト

[diag(65:90)+32 '']

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

@LuisMendoが提案したその他のソリューション(12バイト)は、OctaveのWindowsバージョンでテストしました。

diag('a':'z')

説明:

の対角行列を生成しa:zます。


@LuisMendo tioでは同じ結果は得られません。それは式であり、評価することができ、望ましい結果を生み出します:)
rahnema1

Luisによって提案されたソリューションは、現在TIOで動作しているようです... Octaveの新しいバージョンですか?
スチューイーグリフィン

または新しいバージョンのtio !?
rahnema1

6

Java 8、72 71 70 61バイト

o->{for(int a=0;a++<26;)System.out.printf("%"+a+"c%n",a+96);}

小文字ではなく大文字のアルファベットを出力することにより、-1バイト。
複数行の文字列を返す代わりに、直接印刷することで-1バイト。@OliverGrégoireを使用して
-8バイトを削除し、をprintf直接使用して削除String s="";ます。また、に変更()->して-1バイトにしo->ます。

ここで試してみてください。


単純な実装は、思ったよりも短いです。c=65(または64実際に)バイトを保存できるため、3桁の数字は必要ありません。文字列の代わりに配列を返すと、+"\n"?を削除できるため、バイトを節約できますか?
TheLethalCoder

@TheLethalCoderああ、大文字のアルファベットを出力できることを知りませんでした。その上をスキミング。ありがとう。そして、配列を出力するとはどういう意味ですか?配列の配列が好きですか?
ケビンCruijssen

1
@TheLethalCoderどんなヒントでも歓迎ですので、ありがとう。ただし、この場合は短くなりません。:)
ケビンクルイッセン

1
@Winter最初の提案については、このメタ投稿でまだ議論されていますが、投票によって判断すると、これから実際に許可されると思います。第二に関しては、私は確信していません。特に、このメタ投稿と回答のコメントでのこれらの白熱した議論の後、それはちょっと規則をごまかす/曲げるような気がします
ケビンCruijssen

1
62バイト:別のチャレンジと同じアイデア()->{for(int a=0;a++<26;)System.out.printf("%"+a+"c%n",a+96);}を使用します。
オリビエグレゴワール

5

ゼリー 10  9 バイト

Dennisのおかげで-1バイト(J範囲を小さくして26Ḷ直接使用することでデクリメントを回避)

26Ḷ⁶ẋżØaY

結果を出力する完全なプログラム。

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

ØaJ’⁶ẋż7は文字のリストのリストのリストを返すモナドリンクですが、[["a"],[" ","b"],[" ","c"],...]それはおそらく受け入れられないようなものです。)

しかし、考えていない短い方法があったとしても驚かないでしょう!

どうやって?

26Ḷ⁶ẋżØaY - Main link: no arguments
26        - literal 26
  Ḷ       - lowered range = [0,1,2,...,26]
   ⁶      - literal space character
    ẋ     - repeat          [ [],      [' '],      [' ',' '],    ...,  [' ',' ',...,' ']]
      Øa  - yield lowercase alphabet
     ż    - zip             [[[],'a'],[[' '],'b'],[[' ',' '],'c'],...,[[' ',' ',...,' '],'z']]
        Y - join with newlines  [[],'a','\n',[' '],'b',\n',[' ',' '],'c','\n',...,'\n',[' ',' ',...,' '],'z']
          - implicit print (smashes the above together, printing the desired output)

[["a"],[" ","b"],[" "," ","c"],...]文字のリストは文字列の代替定義であるため、許可さえしますが、タプルは収まらないようです:)
スティーブン

うん、そう思った。
ジョナサンアラン

1
...上記ではそれぞれ"..."が文字のリストであることに注意してください。実際には[[['a']],[[[' '],['b']],[[' ',' '],['c']],...]、ゼリーには文字列がなく、リストだけがあるためです。
ジョナサンアラン

26Ḷ⁶ẋżØaYバイトを保存します。
デニス

ØaJ’⁶ẋżfor 7、代替バージョン用。
リーキー修道女


5

アリス22 20バイト

52E&waq'a+q&' d&o]k@

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

出力は文字列ですが、順序モードはこの課題に対処する方法ではないことがわかります。

説明

52E&w             k@     do 26 times
     a                   push 10 (LF)
      q                  push current tape position (initially zero)
       'a+               add the ASCII code for "a"
          q&'            push 32 (space) a number of times equal to tape position
              d&o        output entire stack
                 ]       move tape position one space to the right

以前のソリューション

["za/?rO&
' !]\"ohkw@/

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

これを見つける前に、23バイトのソリューションを10個ほど試しました。

説明

このプログラムは、テープを使用して、出力するスペースの数を追跡します。カーディナルモードとオーディナルモードは同じテープを使用しますが、テープヘッドは別々です。2つのモードは、テープに表示される内容の解釈が異なり、プログラムはその違いを完全に活用します。

コマンドは次の順序で実行されます。

[                   move cardinal tape position left
 "za"               push this string (as a string, since the final " is in ordinal mode)
     r              interpolate to entire range (i.e., the lowercase alphabet backward)
      h             split first character from string
       &            for each character in string: push that character and...
        w                                         push current address onto return address stack
         ' !        (cardinal mode) place 32 (space) at current cardinal tape position
            ]       (cardinal mode) move cardinal tape position right
             ?      (back to ordinal mode) read string from tape starting at ordinal tape position
                    this string will consist of n-1 spaces.
              o     output string of spaces
               O    output top of stack (current letter) followed by newline
                k   return to pushed return address. 
                    after 26 times through this loop, the return address stack will be empty and this is a no-op.
                 @  terminate

5

Brainfuck、103バイト

>-<-----[[<+>->>+++>-<<<]>++]<<<<<<<<<[-]>>>-[<[-]<[-]<[>+>+<<-]>>[<<+>>-]<[>>>>.<<<<-]<+>>>>.+>>.<<<-]

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

変数の場所はどういうわけか改善可能です。

説明

>-<-----[[<+>->>+++>-<<<]>++]   Initializes the tape.
<<<<<<<<<[-]>[-]>>-             Resets variables that
                                need to be at 0.
[                               For loop (25 to 0).
 <[-]<<[>+>+<<-]>>[<<+>>-]      Copy the spaces count in
                                order to use it in a loop.
 <[>>>>.<<<<-]                  Prints the spaces.
                                Prints the character followed
 <+>>>>.+>>.<<<-                by a new line. Also decrements
                                the main loop counter.
]

5

Googleスプレッドシート、69バイト

=ArrayFormula(JOIN("
",REPT(" ",ROW(A1:A26)-1)&CHAR(96+ROW(A1:A26))))

ここで複雑なことはありません。唯一のトリックは、関数に26個の異なる値を使用ArrayFormulaROW(A1:A26)て返すJOINことです。出力は次のようになります。

出力


Excel 2016でも同じことができると思いますTEXTJOINが、オンラインバージョンでは配列数式を入力できず、自分自身は2013年のみです。数式は次のようになります。

=TEXTJOIN("
",FALSE,REPT(" ",ROW(A1:A26)-1)&CHAR(96+ROW(A1:A26)))

配列式(Ctrl+ Shift+ Enter)として入力すると、{ }両側に中括弧が追加され、67バイトになります。それが機能することを確認できる人は誰でも、自分の答えとしてそれを使用することを歓迎します。


5

シード、6014バイト

これが賞を受賞することはないと思いますが、楽しみのためだけに、ここにシードの解決策があります。

86 11103250503694729158762257823050815521568836599011209889044745493166180250197633623839266491438081837290079379263402288506775397211362446108152606095635373134468715450376738199004596861532212810083090232034321755895588102701453625219810339758989366211308223221344886043229936009486687653111291562495367476364760255760906228050130847228170228716790260998430434027546345063918859356161024202180254514539438087787769611000320430464740566450402368450792375043801526494811596087812709169139468697779440918934518195843690439213251884693846598754642076364755341359062651237754916053099089619667382845958005035392458577634784453744876558142057256976895330859887974064083588368087014591508237946214519271550243549214199679364098489146944338807874570414584343165070707969101892779772740177526390597395955859236589308394889243501541206981604661264930842784772121710695027991351718061777696274815931123342985242351444203296855501870888626347939456384376808446806093364176576945969539054970975848477876079897476093353730443488664472826635815956526890935049081522728044807877072639829234224838977148057506785320443165975265560224605597481381188291535996775480326796788286452216432605854564432262547835415260058472165825285438444435690700488258778785613363062417500848996527077259315494936037544655054620369560227407957368700650031346856230643646273909094915618471799926504192999361174763592054723307855670381682927214117502862645460031555724588536036895597768493827964819026940533784490457441244859937078155137620826821294513857153097135094397278852300032685608169642137925241118197368192392427097109982751185030229544527638686131131545529690698706313745703838144933923021851042677941879847025167921010148923860660695145106913052517930707522151230705792709484338746351589089180137363986003757314611932324492978098101655359729841878862276799317010824753645947659706175083519817734448003718088115457982394423932136760435046136644679525408371158980833993157988971884061469882136904103033944270884697456159261033500286722891139158500027351042265757431184139617566089023339480051231776345929815102059539844917563709940188668873305602146506284075271989710388430531233185164106985265575418252638186398535149202928422854319253947591044830747981534342833040219194969504971457701296402664807369043224201667623773161453335066484102800249947322601702575025462427139266561015140950621152993027466758026351218924607290766894274223554418125824416921899080393405328694235821466034161071834073874727856768719898425047229002772806527172294625623026601313091815217479540688812203850300478145319935479599086534606210099372526810614742385909275512758349679098012967475393301857434507012875239092688018536028125644341148882858752275129016876257290205949225918496182271679312996010157634568807332616541938310641844258434083838017690572891417189135014450484203635258935943095637185443145042430274553211816422809756194554145177421779800554334935224073734034988935790096239926730047370699006392111034056662661567902477446646680125183082979598538506383502737734442490068661537425714549752783861222862366340979663873475326752237893690641570287341027097775099918958849864419430754493042534812120486345363285167685811903366691676146427476942948696624274431993989133835880516551024369474029197791751838810883302415448112237526350703063618171739262753474029252659418383385834751808940073804107171146665382663467460066719556797639176747423279761528061219482681051780434845070421974558638870988408449698678976622755518024906714421419806347234183574860655249471877105716127767795785164699804819127058322715857697491583787449703283625085118896433923054087238479453964363805045497229148813441732912067120594705269402106426011497763749556561398150139686331615167139081591537739333533146667211063179804707883556569241294269430626179579760506971066676011512530066694518309930078451295032445835025178124213221937594928472509588116557231122849491576207720183829735710200290762251904109318007206980645946249679357907549498615310165588678201768095297568708803842208357473777731751349499510116345704811971207818719582793964185192140178454948686109674659005978400204479072321714207828018696339659886683414074211823497880135255138161141724546221354224299071581607979907417508104234534779573666933024250229754952685174194168516481670999039048675109878524061868078078216337487277443941946961426121900907734301692962783139932352047932263834773963592317279425421954035566305805348109175553209815893678595198155962166838761859540063188209014774346841267440789072833797121217961797443744676162541668802226500817146368372390178287945076657776275930590173768326046610094573983886099504933977126798348879838826160714899283593774855907724617352862079916515034033299006419237012240730789008999523238851913897908225482003661109026061857228300111070725651744312468140016983078297938157227595743419983763920290850801438187869169473456288283458163865462359588316419331445070232596307970490434468929587726795603069137946085898481642595124580643542063564880389350236902538522311931690905858973696558714577085714396738993556273941292496636824719451697631982422926675238248502170501569627556395875619564600587531422890212003952929325067813498958390095519100963598626450443103780781917045489137526377521695121594716424797216910752252094749957224424042047863869830458287114846161217532552045343745235776511344577755412402833175338541217548987687334493461236111032661075185714361252784989689657180878190058132112701323898697673356854132286586129946906160482715702618768869398700713988301485421822519104930442450343377920756456344715552821899659777521739288202633751258303637433110490141551780764889912485271829265224821750882760152112536985349681370761157202793523201156381835717321637420939424473215237574260806475544972321933149796156065126465186203580256364372579422208318560608817806013462242728082475787319168695978160861791054731154820533251279706873332364894538291172324730671914083193733203570060223897442373172904974570329139578763294810924815364789498523721281918680145538278976651264

次のBefungeプログラムに変換されます。

vaa{       @>
v#      g02<v
>30g20g`   |
10g-:!v!: < >#<
v,:g02_40g,1- ^
>1+20p$91+, v


4

Add ++、1069バイト

+97
&
-87
&
+22
&
+66
&
-88
&
+22
&
&
+67
&
-89
&
+22
&
&
&
+68
&
-90
&
+22
&
&
&
&
+69
&
-91
&
+22
&
&
&
&
&
+70
&
-92
&
+22
&
&
&
&
&
&
+71
&
-93
&
+22
&
&
&
&
&
&
&
+72
&
-94
&
+22
&
&
&
&
&
&
&
&
+73
&
-95
&
+22
&
&
&
&
&
&
&
&
&
+74
&
-96
&
+22
&
&
&
&
&
&
&
&
&
&
+75
&
-97
&
+22
&
&
&
&
&
&
&
&
&
&
&
+76
&
-98
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
+77
&
-99
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
+78
&
-100
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+79
&
-101
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+80
&
-102
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+81
&
-103
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+82
&
-104
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+83
&
-105
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+84
&
-106
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+85
&
-107
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+86
&
-108
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+87
&
-109
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+88
&
-110
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+89
&
-111
&
+22
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
+90
&
P

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

うん。それはハードコードされています。より良い方法があると確信しています。見つけたい場合は、先に進みますが、Add ++はメモリを扱うのが難しいため、この方法が最適に機能するようです。


4

R59 49 47バイト

djhurioのおかげで-10バイト

-Sven Hohensteinのおかげで2バイト

write("diag<-"(matrix("",26,26),letters),"",26)

標準出力に出力します。user2390246によるアウトゴルフ

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


を置き換え26^2676バイトを保存できます。
ドアノブ

2
m=matrix("",26,26);diag(m)=letters;write(m,'',26)(49バイト)
-djhurio

バイトの同量のために、あなたが使用して行列を印刷することができますcat(m,fill=27)
JAD

1
「バイトの同量の」@djhurio
JAD

1
@Giuseppeコマンド"diag<-"(x, y)はに似ていdiag(x) <- yます。値は変数に割り当てられませんが、返されます。
スベンホーエンシュタイン

4

> <>46 44 42バイト

"A"0::?!v" "o1-40.
*(?!;30.>~$:oao1+$1+:d2

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

説明

Line 1:
"a"0::?!v" "o1-40.
"a"0                       :Initialize the stack items (print char and space count)
    ::?!v                  :Duplicate the space count, check if 0, go down if 0
         " "o1-            :Print a space then take 1 from the space count
               40.         :Jump to codepoint row 0 col 4 (this restarts the loop)
Line 2:
*(?!;30.>~$:oao1+$1+:d2
        >~                 :Remove the zeroed space counter off the stack
          $:oao1+          :Place our print char on the top of the stack, duplicate and print it, print a new line, increase it by 1; a->b->c etc
                 $1+       :Place our space count on the top of the stack and increase it by 1
*                   :d2    :Duplicate the space counter, add 26 to the stack
 (?!;                      :Add 0 to the stack, less than compare 0, if the counter is above 0 it terminates
     30.                   :Jump to the first line, (back to printing spaces)

これは以前の46バイトとはまったく異なるテイクなので、TIOも1つだけに含めました。 46バイトオンラインでお試しください!

以下はエミグナの提出物へのリンクです。それは最初の回答でしたが、私のものは2番目のものを保証するのに十分異なる(そして数バイトを節約する)と思います。

エミグナの答え


そして今、私たちは縛られています。確実に1つか2バイトゴルフをするのがベスト;)
エミグナ

@エミグナ、3つの保存されたバイトで十分だと思った:o私はもっとやるべきことがあると思う:)
ティールペリカン

4

Haskell66 65 58 57 45 43バイト

12個の 14バイトを節約してくれた@nimi@maple_shaftに感謝します。

unlines[(' '<$['b'..n])++[n]|n<-['a'..'z']]

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


1
同じスコアが得られますが<$、複製の代わりに使用できる場合があります(' '<$[1..(fromEnum n-97)])
。– maple_shaft

2
@maple_shaftの提案をに変更できます(' '<$['b'..n])
-nimi

名前のない関数が許可されてf=いるため、の必要はありません。
-nimi

2
ところで、同じバイト数:['a'..'z']>>= \n->(' '<$['b'..n])++[n,'\n']
-nimi

4

PHP、23バイト

注:IBM-850エンコードを使用します。

<?=join(~¶,range(a,z));

次のように実行します:

echo '<?=join(~¶,range(a,z));' | php -n;echo
# With default (utf8) terminal:
echo '<?=join("\v",range(a,z));' | php -n;echo

説明

アルファベットのすべての文字の配列を作成し、接着剤として垂直タブで結合します。


4

brainfuck、80バイト

++++++++[>+>++++>++++++++>+++<<<<-]>++>>+>++[->[<<<.>>>->+<]>+[-<+>]<<<.+<<.>>>]

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

フォーマット済み:

++++++++[>+>++++
>++++++++>+++<<<
<-]>++>>+>++[->[
<<<.>>>->+<]>+[-
<+>]<<<.+<<.>>>]

メモリ内のいくつかの定数を置くために、単純な乗法生成機能を使用し、そしてその後、印刷N空間の処理を繰り返し実行する'A' + NためN = 0..25

注釈付き:

INITIALIZE TAPE: 10 32 65 >26< 0 0
C_NEWLINE: 10
C_SPACE: 32
V_ALPHA: 65
V_COUNTER: 26
V_PREFIX: 0
V_PREFIX_TEMP: 0
++++++++[>+>++++>++++++++>+++<<<<-]>++>>+>++

WHILE V_COUNTER != 0  [-
   "PRINT C_SPACE REPEATED V_PREFIX TIMES"
   "V_PREFIX_TEMP = V_PREFIX"
     V_PREFIX TIMES  >[-
       PRINT C_SPACE <<<.>>>
       INCREMENT V_PREFIX_TEMP >+<
     ]
   "V_PREFIX = V_PREFIX_TEMP PLUS 1"
     V_PREFIX_TEMP PLUS 1 TIMES  >+[-
       INCREMENT V_PREFIX <+>
     ]
   PRINT C_ALPHA <<<.
   INCREMENT C_ALPHA +
   PRINT C_NEWLINE <<.
>>>]

4

RProgN 2、5バイト

aS`\x0B.

\ x0Bは垂直タブリテラルです

これは、小文字のアルファベットを取得して分割し、垂直タブで結合します。これにより、特定のBashターミナルで意図した効果が得られます。

スクリプトを実行する

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.