ASCII英数字をすべて使用せずに印刷します


51

チャレンジ

次の文字を印刷します。

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890

キャッチは、あなたがあなたのコードでそれらのどれも使わないかもしれないということです。

先頭または末尾の改行の有無にかかわらず、任意の順序で印刷できますが、他の文字は印刷できません。

ルール

  • 上記のセットの文字は使用できません
  • 他の文字を使用できます
  • 不正行為なし
  • 禁止されている標準的な抜け穴
  • これは、最短回答が勝ちです。

明確化

  • 言語で別の文字セットを使用している場合は、その文字セットで英数字に対応するコードポイントを使用することはできません。
  • 関数から文字列を返すことは、有効な形式の出力と見なされます。
  • 文字配列を返すことができます。

8
これはいくぶんあいまいです。あなたのコードでそれらのバイトなしでそれらの生のバイトを出力することを意味する場合、あなたはあなたの言語のコードページで何か他のものにマッピングしても、これらの文字のコードポイントを使用できないことを指定する必要があります。
-FlipTack

11
私が使用できないことを、この手段だから、すべての私のソースコードに文字や数字を。まあ、それはほとんど非難解な言語を取り除きます。
R.キャップ

2
言語が表現を持たない生のバイト(オペコードとして)である場合はどうなりますか?キャラクターを自由に使用できますか?
FlipTack

1
@briantist内部でintで表されていれば問題ありませんが、文字自体を印刷する必要があります。
dkudriavtsev

3
R.Kap Javascriptが動作することができ、@、あなたはESOとしてそれについて考えていない提供
破壊可能なレモン

回答:


19

V8 7バイト

@DJMcMayhemのおかげですべてを1つの正規表現ステートメントに入れることで1バイト節約

¬/{Ó×ü_

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

出力:

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

注:×されていない xX、それがあります0xd7

Hexdump:

00000000: ac2f 7bd3 d7fc 5f                        ./{..._

説明

¬/{            " inserts every character in the range / to {

出力は次のようになります。

/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{

英数字以外のすべての文字と_(に含まれていない\Wため)を削除する必要があるため、正規表現を使用してそれを行いましょう

Ó×ü_           " removes every character that is non-alphanumeric or an underscore _ 
               " vim equivalent of :s/\W\|_//g

すごい!打つと+1。:)あなたがした場合にも、あなたが1つの正規表現にそれを簡素化することができÓ×ü_(に相当する:s/\W\|_//g
DJMcMayhem

50

オクターブ52 46 40バイト

['['-('"':'+'),'{'-(_='!':':'),_+'@','']

これは評価する

9876543210ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz

説明

ここでは+-、範囲関数:などの算術演算が適用されると、文字が暗黙的に整数に変換されるという事実を使用しています。空の文字列([...,''])で連結すると、数値は再び文字に変換されます。

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


7
+1エソランに非常に適した挑戦における最初の非難解な言語であるため。
DJMcMayhem

4
+1Octaveを使用するためではなく(非常に簡単です)、これを非常にうまくゴルフ_し、変数として使用するための大きな!それが可能だとは思いもしませんでした...いいね!
スティーヴィーグリフィン

1
空の文字列([...、 ''])と連結すると、数字は再び文字に変換されます。...非常にいいです
-rahnema1

29

brainfuck77 76 75 72バイト

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

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

使い方

インタプリタは、0セルのテープで始まります。

++++++++

これにより、最初のセルが8に設定され、テープは次の状態のままになります。

   8
   ^
[>+>++++++>++++>-<<<<-]

これにより、2番目のセルが1回増分され、3番目のセルが6回、4番目のセルが4回増分され、5番目のセルが1回減分され、テープの先頭に戻り、最初のセルが減分されます。8回の反復後、テープは次のようになります。

  0   8  48  32  -8
  ^
>++

2番目のセルに進み、2回インクリメントして、数字を印刷する準備をします。

  0  10  48  32  -8
      ^
[>.+<-]

これにより、3番目のセルが出力され、インクリメントされ、2番目のセルに戻ってデクリメントされます。10回の反復の後、印刷が完了0123456789し、テープは次のようになります。

  0   0  58  32  -8
      ^
>>

手紙のためにテープを準備する時間です!2つのセルを進めることから始めます。

  0   0  58  32  -8   0   0
              ^
[>+>++>+++<<<-]

これは、5番目のセルを1回、6番目のセルを2回、7番目のセルを3回インクリメントし、4番目のセルに戻ってデクリメントします。32回の反復後、テープは次のようになります。

  0   0  58   0  24  64  96
              ^
>++

文字を印刷する前の最後のステップとして、5番目のセルに進み、2回インクリメントします。

  0   0  58   0  26  64  96
                  ^
[>+.>+.<<-]

最後に、6番目のセルに進み、それをインクリメントして印刷し、7番目のセルに対して同じことを行い、5番目のセルに戻ってデクリメントします。26回の反復の後、を印刷しましたAa...Zz


素敵なゴルフ!あなたの答えにリンクします
-FlipTack

25

ルビー、42バイト

->{[*?/...?:,*?@...?[,*?`...?{]-[?/,?@,?`]}

char配列を返す関数。文字のみを出力するプログラムは49バイトです。

$><<([*?/...?:,*?@...?[,*?`...?{]-[?/,?@,?`])*''

これは、関連する範囲の両側にあるASCII文字を使用して範囲を定義するだけです。たとえば、?/...?:スラッシュとコロンの間の文字を意味し、末尾を除きます。先頭を削除するには、3つの先頭文字を含む配列を減算します。


よくやった。これは、同じ考えを使用して60バイトバージョンを投稿するようになったときに見ました。
AShelly

3
1バイトをわずかに異なる範囲で保存できます:$> <<([ (?/ ...?{)]-[*(?:..?@)、*(?[..? `)、?/ ]) ''
AShelly

これは本当にきれいです。まあ、い。私の言っていることが分かるよね。よくできました。
ウェインコンラッド

22

6502機械語、74 70 68バイト

16進ダンプ(6502プログラムは一般的に再配置可能ではありません。ここのコードは$ 0603の場所から保存されます):

0600:          a9 24 0a 8d 20 06 8d 21 06 8d 23 06 8d 
0610: 25 06 09 20 8d 1a 06 8d 1c 06 ea aa ea a8 a9 00 
0620: ea ea 98 ea 8a ea a2 ff a9 7b a0 60 20 3a 06 a9 
0630: 5b a0 40 20 3a 06 a9 3a a0 2f 85 80 c8 e8 98 95 
0640: 00 c8 c4 80 d0 f7 60

禁止バイトのいずれも使用していないことがわかります:$ 41から$ 5a、$ 61から$ 7a、または$ 30から$ 39。

これは引数を持たない関数で、呼び出されると、標準の6502呼び出し規約に従って、スタックの最上部にある文字配列「abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789」へのポインターを返します。

説明のために、ここに逆アセンブリがあります:

アドレスHexdump逆アセンブリ
-------------------------------
$ 0603 a9 24 LDA#$ 24
$ 0605 0a ASL A
$ 0606 8d 20 06 STA $ 0620
$ 0609 8d 21 06 STA $ 0621
$ 060c 8d 23 06 STA $ 0623
$ 060f 8d 25 06 STA $ 0625
$ 0612 09 20 ORA#$ 20
$ 0614 8d 1a 06 STA $ 061a
$ 0617 8d 1c 06 STA $ 061c
$ 061a ea NOP 
$ 061b aa TAX 
$ 061c ea NOP 
$ 061d a8 TAY 
$ 061e a9 00 LDA#$ 00
$ 0620 EA NOP 
$ 0621 EA NOP 
$ 0622 98 TYA 
$ 0623 EA NOP 
$ 0624 8a TXA 
$ 0625 ea NOP 
$ 0626 a2 ff LDX#$ ff
$ 0628 a9 7b LDA#$ 7b
$ 062a a0 60 LDY#$ 60
$ 062c 20 3a 06 JSR $ 063a
$ 062f a9 5b LDA#$ 5b
$ 0631 a0 40 LDY#$ 40
$ 0633 20 3a 06 JSR $ 063a
$ 0636 a9 3a LDA#$ 3a
$ 0638 a0 2f LDY#$ 2f
$ 063a 85 80 STA $ 80
$ 063c c8 INY 
$ 063d e8 INX 
$ 063e 98 TYA 
$ 063f 95 00 STA $ 00、X
$ 0641 c8 INY 
$ 0642 c4 80 CPY $ 80
$ 0644 d0 f7 BNE $ 063d
$ 0646 60 RTS

機械語コードは自己修正型です。スタック操作では、PHAとPLAを使用してアキュムレーターをプッシュおよびポップする必要がありましたが、これらの命令にはオペコード$ 48と$ 68があり、これらは禁止されています(文字 'H'と 'h'のASCIIコードです)。そのため、PHAの場合、数値$ 24を取得し、算術左シフト(ASL)を実行し、結果の$ 48を実行する必要があるコードの4つのスポットに格納します。次に、PLAの場合、アキュムレータの$ 48でビット単位のORを使用して$ 68を計算し、必要なコードの2つの場所に格納します。

オペコードがたまたまASCII文字または数字と同じであるために使用できないPHAとPLA以外のいくつかの指示がありましたが、それらの他の直接的な回避策が見つかりました。

目的の文字配列が計算され、位置0から格納されます(スタックへのポインタがスタックの最上部に返されることを確認するだけでよいため、格納場所は実際には関係ありません)。

Nick Morganの6502アセンブラおよびエミュレータでこれを試すことができます。これがスクリーンショットです。プログラムの実行後、下部のモニターボックスに出力文字列($ 00〜$ 3Dの場所)が表示されます。


16

Haskell75 72 63 58 56バイト

__=[__|[_',ä]<-["/:","@[","`{"],__<-[_'..],_'<__,__<ä]

オンラインでお試しください!で呼び出し__ます。出力:

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

提案XNORのおかげ___'の代わりに、2バイトの変数名などの(!)9つのバイトを保存または同様、。私は特に_'構文の強調表示を壊す方法が好きです。範囲を一般化し、さらに4バイトを節約してくれたxnorに再び感謝します。
編集:私は、例えばので、Unicodeの文字が、Haskellでは識別子として許可されていることが判明äö、...また、2つのバイトの識別子として使用することができます。プログラムには3バイトの識別子が1つ残っていたのでä、それをに置き換え、さらに2バイトを節約しました。

説明:

__および_'は有効な変数名です。言語仕様から:

識別子は、文字とそれに続くゼロ個以上の文字、数字、アンダースコア、および一重引用符で構成されます。[...]アンダースコア、_は小文字として扱われ、小文字ができる場所であればどこでも発生します。ただし、_それ自体はすべて予約済みの識別子であり、パターンでワイルドカードとして使用されます。

したがって、コードは次と同等です

s = [x|[a,b]<-["/:", "@[", "`{"], x<-[a..], a<x, x<b]

リスト内の理解は、aに結合されます'/'bする':'"/:"に相当する['/',':']パターンマッチングが成功したので、)。次に、範囲[a..]は等しいすべての文字の文字列を構築します'/'

"/0123456789:;<=>?@ABCDE ... \1114110\1114111"

各文字についてxこの文字列で、それはその後かどうかをチェックします'/'<xx<':'文字が得られ、0123456789。そして、abにバインドされている@[、文字をもたらすABCDEFGHIJKLMNOPQRSTUVWXYZとのようにします。


3
__and _'は変数として使用できます。
xnor

@xnorありがとう、Underscore is treated as a lower-case letterルールについて知らなかった。
ライコニ

1
範囲を一般化することで、いくつかのバイトを節約できます:(_'_=[__|[_',__']<-["`{","@[","/:"],__<-[_'..],_'<__,__<__']通常の変数でz=[x|[a,b]<-["`{","@[","/:"],x<-[a..],a<x,x<b])。
-xnor

@xnorありがとうございます!範囲の開始と終了を文字列に結合するのは素晴らしいアイデアです。範囲を一般化することも試みましたが、常にこの考えなしで長くなりました。追加のバイトがに文字列を結合することによって保存することができる__代わりに_'_ もかかわらず、__リスト内包内部識別子として使用されます。
ライコニ

13

Perl(5.10または5.12)、30 29バイト

このプログラムは主に印刷できない文字で構成されているため、hexdumpがあります。

00000000: 5f 3d 7e 7e 22 d7 c0 84 8c 9e 86 df 9e d1 d1 85 _=~~"...........
00000010: d3 be d1 d1 a5 d3 cf d1 d1 c6 82 d6 22          ............"

このプログラムは非常に単純です:正規表現に対して=~アンダースコア(_;)正規表現は、文字通りではなく式として指定されます。具体的には~、文字列のビット単位の補数()を使用しています。基本的な文字列を取得するためにビット単位の補数を逆にすると、実行されている次の正規表現が取得されます。

(?{say a..z,A..Z,0..9})

Perlバージョン5.10および5.12では、(?{…})構文は、実行時に正規表現が任意のコードを実行できるようにするための実験的な構文でした。この場合、それを使用して簡単なPerlプログラムを実行し、目的の出力を印刷します。(5.10より前のバージョンは、持っていないため使用できませんsay。)

(?{…})セキュリティ上の理由から、Perlの最新バージョンはデフォルトで無効になっていますが、そのようなバージョンのPerlがある場合は-Mre=eval、コマンドライン引数として(-M5.010バージョンを指定する標準とともに)チェックを無効にすることができます(したがって、このプログラムを実行できます)実装する言語、およびバイトカウントにはカウントされません)。


13

実際には8 5 4バイト

'>┘▀

使い方:

 '>    Pushes > onto the stack as a string
           STACK: [>]
    ┘  Converts the top item of the stack to it's ordinal
           STACK: [62]
     ▀ Push all digits from base n(top item of the stack)
           STACK: [012...xyz]

印刷は、プログラムの終了時に暗黙的に行われます。

編集1:アルファベットを小文字/大文字に入れてから数値範囲(10)を入れて、ベース62の印刷可能文字を取得するだけに置き換えました。

編集2:Megoのおかげで ">"を '>に変更:) 1バイト保存。

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


'>は、より短いバイトです">"
メゴ

@Megoうん、編集:)ありがとう。
ティールペリカン

11

PHP、69バイト

<?=~"ÏÎÍÌËÊÉÈÇƾ½¼»º¹¸·¶µ´³²±°¯®­¬«ª©¨§¦¥žœ›š™˜—–•”“’‘ŽŒ‹Š‰ˆ‡†…";

コードは、ここでWindows-1252を使用して様式化されています。以下は、リバーシブルのxxd hexdumpです。

00000000: 3c 3f 3d 7e 22 cf ce cd cc cb ca c9 c8 c7 c6 be  <?=~"...........
00000010: bd bc bb ba b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 af ae  ................
00000020: ad ac ab aa a9 a8 a7 a6 a5 9e 9d 9c 9b 9a 99 98  ................
00000030: 97 96 95 94 93 92 91 90 8f 8e 8d 8c 8b 8a 89 88  ................
00000040: 87 86 85 22 3b                                   ...";

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


10

Java(OpenJDK 9)、277バイト

はい、Java、あなたはそれをよく読んでいます!

$->""+($='='+'=')+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+($='-'+'-')+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+--$+($='_'-'&')+--$+--$+--$+--$+--$+--$+--$+--$+--$

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

範囲は出力されますが、順序は重要ではないため、逆になります。

zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA9876543210

私は、「入力なし」のルールがないcharため、すべてを機能させるために必要なルールを暗黙的に定義しました。それが不正行為である場合は、そう言ってください。

未ゴルフ&テスト

public class PCG105781 {
  interface X { String apply(char x); }

  public static void main(String[] args) {
    X x = $
        -> "" // Force the result as a String.
        // The line below appends "zyxwvutsrqponmlkjihgfedcba"
        // '=' + '=' is 122 as int. $=122 casts 122 as a char, 'z'
        + ($ = '=' + '=') + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$
        // The line below appends "ZYXWVUTSRQPONMLKJIHGFEDCBA"
        // '-' + '-' is 90 as int. $=90 casts 90 as a char, 'Z'
        + ($ = '-' + '-') + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$
        // The line below appends "9876543210"
        // '_' - '&' is 57 as int. $=57 casts 57 as a char, '9'
        + ($ = '_' - '&') + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$ + --$
      ;

    System.out.println(x.apply('_'));
  }
}

3
待って、何?私はすべてのJavaScriptソリューションよりも短いのですか?o_O
オリビエグレゴワール

これはchar、JavaScriptにが含まれていないためです。公平を期すために、私の答えは最初の答えよりも短いです。私が経験しなければならないすべてのオーバーヘッドについての私の説明を見てください。
パトリックロバーツ

2
@PatrickRoberts公平を期すために、最初の編集を最初の編集と比較するか、最後の編集を最後の編集と比較する必要があります。最初の編集と最後の編集を比較する必要はありません。すべてのJSよりも短い答えを得ることができます。
オリヴィエグレゴワール

9

Brainfuck、89 85バイト

とにかくBrainfuckは英数字を無視するため、これは単なる出力の挑戦です...(編集:10バイト短いバージョンについては、デニスのソリューションを参照してください)

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

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

このコードは、brainfuckの基本的なカウントループの良い例です。

+[-[--<]>>--]   Create value 47: char just before '0'
++++++++++      Set adjacent cell to 10: to be used as a counter

[               While the counter is not 0:
 <+.              Increment and print the char
    >-            Decrement the counter
       ]        (End loop: Exits when all digits have been printed)


<++++++++>           The char is now at '9' so add 8 to make it 'A'
+[-[---<]>>-]<-      In another cell create lowercase 'a'
<<+++++[>+++++<-]>+  Create 26: the number of times to loop

[                While the counter is not 0:
 >.+               Print and increment the lowercase char
    <<<.+          Print and increment the uppercase char
         >>-       Decrement the counter
            ]    (End loop: Exits when all letters have been printed)

これはラッピングショートカットを使用して数値を生成することに注意してください。つまり、インタープリターには8ビットのラッピングセル(リンク先のセルなど)が必要です。


5
Brainfuckは私が最初に考えた言語でした。恥ずかしい 素敵な答え。
エルペドロ

7

JavaScript(ES6)、983バイト

ES6では、JavaScript変数名に使用できる文字がたくさんあることがわかりました!あなたが6人の1-2バイトの変数名を排気した後、素晴らしい作品$_

_=~[]
$={}
Á=++_
À=![]+""
Â=À[_]
Ã=++_
Ä=À[_]
Å=++_
Æ=($+"")[_]
Ç=(_[_]+"")[_]
È=++_
É=(!""+"")[_]
Ë=++_
Ì=++_
Ê=($+"")[_]
Í=++_
µ=++_
Î=++_
Ï=++_
_="\\"
Ð=$.$
È_=(!""+"")[Ã]
Å_=$+""
Ñ=Å_[Ã]
Ò=(Ð+"")[Ã]
__=Å_[Í]
Ó=(!""+"")[Å]
$_=Å_[Ì]+Ñ+Ò+(!$+"")[È]+__+È_+Ó+Å_[Ì]+__+Ñ+È_
$$=È_+(!""+"")[È]+__+Ó+È_+Ò
$=Á[$_][$_]
$($($$+"\""+Ê+Ñ+_+Ã+Ì+Í+_+Ã+Í+È+Ñ+À[Å]+É+"."+À[Å]+Ñ+_+Ã+Ë+µ+"('"+Ä+Æ+Ê+Ç+É+Â+_+Ã+Ë+µ+_+Ã+Ì+Á+_+Ã+Ì+Ã+_+Ã+Ì+Å+_+Ã+Ì+È+À[Å]+_+Ã+Ì+Ì+_+Ã+Ì+Í+Ñ+_+Ã+Í+Á+_+Ã+Í+Ã+_+Ã+Í+Å+_+Ã+Í+È+__+Ó+_+Ã+Í+Í+_+Ã+Í+µ+_+Ã+µ+Á+_+Ã+µ+Ã+_+Ã+µ+Å+_+Ã+Á+Ã+_+Ã+Á+Å+_+Ã+Á+È+_+Ã+Á+Ë+_+Ã+Á+Ì+_+Ã+Á+Í+_+Ã+Á+µ+_+Ã+Ã+Á+_+Ã+Ã+Ã+_+Ã+Ã+Å+_+Ã+Ã+È+_+Ã+Ã+Ë+_+Ã+Ã+Ì+_+Ã+Ã+Í+_+Ã+Ã+µ+_+Ã+Å+Á+_+Ã+Å+Ã+_+Ã+Å+Å+_+Ã+Å+È+_+Ã+Å+Ë+_+Ã+Å+Ì+_+Ã+Å+Í+_+Ã+Å+µ+_+Ã+È+Á+_+Ã+È+Ã+_+Ã+È+Å+Ã+Å+È+Ë+Ì+Í+µ+Î+Ï+Á+"')\"")())()

JavaScript、1223バイト

上記について知る前に、これが私の答えでした。

_=~[]
$={}
___=++_
____=![]+""
$$$$=____[_]
__$=++_
$_$_=____[_]
_$_=++_
$_$$=($+"")[_]
$$_$=(_[_]+"")[_]
_$$=++_
$$$_=(!""+"")[_]
$__=++_
$_$=++_
$$__=($+"")[_]
$$_=++_
$$$=++_
$___=++_
$__$=++_
_="\\"
_$_$=$.$
_$$_=(!""+"")[__$]
_$__=$+""
_$=_$__[__$]
__$_=(_$_$+"")[__$]
__=_$__[$$_]
___$=(!""+"")[_$_]
$_=_$__[$_$]+_$+__$_+(!$+"")[_$$]+__+_$$_+___$+_$__[$_$]+__+_$+_$$_
$$=_$$_+(!""+"")[_$$]+__+___$+_$$_+__$_
$=___[$_][$_]
$($($$+"\""+$$__+_$+_+__$+$_$+$$_+_+__$+$$_+_$$+_$+____[_$_]+$$$_+"."+____[_$_]+_$+_+__$+$__+$$$+"('"+$_$_+$_$$+$$__+$$_$+$$$_+$$$$+_+__$+$__+$$$+_+__$+$_$+___+_+__$+$_$+__$+_+__$+$_$+_$_+_+__$+$_$+_$$+____[_$_]+_+__$+$_$+$_$+_+__$+$_$+$$_+_$+_+__$+$$_+___+_+__$+$$_+__$+_+__$+$$_+_$_+_+__$+$$_+_$$+__+___$+_+__$+$$_+$$_+_+__$+$$_+$$$+_+__$+$$$+___+_+__$+$$$+__$+_+__$+$$$+_$_+_+__$+___+__$+_+__$+___+_$_+_+__$+___+_$$+_+__$+___+$__+_+__$+___+$_$+_+__$+___+$$_+_+__$+___+$$$+_+__$+__$+___+_+__$+__$+__$+_+__$+__$+_$_+_+__$+__$+_$$+_+__$+__$+$__+_+__$+__$+$_$+_+__$+__$+$$_+_+__$+__$+$$$+_+__$+_$_+___+_+__$+_$_+__$+_+__$+_$_+_$_+_+__$+_$_+_$$+_+__$+_$_+$__+_+__$+_$_+$_$+_+__$+_$_+$$_+_+__$+_$_+$$$+_+__$+_$$+___+_+__$+_$$+__$+_+__$+_$$+_$_+__$+_$_+_$$+$__+$_$+$$_+$$$+$___+$__$+___+"')\"")())()

jjencodeを実行console.log('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890')し、結果を手動でゴルフしました。実行できる最適化は間違いなくあります。


ちょっと、参考までに私はcodegolf.stackexchange.com/a/105854/42091を投稿しました。なぜなら、私はそれに多くの作業を費やし、あなたの答えとは十分に異なると思うからです。
パトリックロバーツ

問題ない、見栄えが良い!
-darrylyeo

いいね!その最後の更新により、100バイトを超えるデータを取得できました!
パトリックロバーツ

1
エンコードをISO8859-1に変更し、そのままにしておくと、769バイトになります。
パトリックロバーツ

7

Befunge、73 72 59 57 55 53バイト

"{"< ^+`"`"\+*`\":"\`"/":\*`\"["\`"@":::::-!!
#@_^,_!

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

これは、からカウントダウンする単一のループです{(つまり、1文字後z)。最初の反復で、"{"<シーケンスは2つのコピーを{スタックにプッシュします。1つは初期ループカウンターで、もう!!-1つはシーケンスを使用してそのカウンターをデクリメントするために使用されます(2つのNOT 1が減算されます)。後続の反復では、ループカウンターは既にスタック上にあるため{、減少シーケンスのセットアップに必要なのは1つだけです。

コードの残りの部分は、文字が範囲内にあるかどうかを計算する長いブール式です。存在する場合、2行目のブランチは左に分割され、値が書き出されます。そうでない場合は、右のブランチがラップアラウンドして、ゼロに達して終了する必要があるかどうかをテストします。2つのブランチは中央で合流して上昇し、ループを繰り返します。を使用できないため、すべての垂直方向コマンドが上方向に移動することに注意してください。ただしv、命令ポインターがプレイフィールドの上部で自動的にラップするため、問題ありません。

Mistah Figginsに、ループインクリメントのより良いテクニックを最初に思いついてくれてありがとう。

しかし、Jo Kingには、カウントアップではなくカウントダウンのさらに良いアプローチと、よりコンパクトなブランチレイアウトに感謝します。


1
スタック上のカウンター以外に何もない場合、増分部分を\!+に変更できます。ある場合は、:!! +を実行できます。ゼロ以外の値の場合
-MildlyMilquetoast

-2バイト、行の先頭のチェックを再配置することにより
ジョーキング

@JoKingよく見つけました。vこれは制限付きソースであるため使用できませんが、でも同様に機能します^。ありがとう。
ジェームズホルダーネス

-2バイト、アップではなくカウントダウンし、ループが終了したかどうかを確認するために2行目のカウンターの追加コピーを使用します(今回は制限されたソースについて記憶します;))
Jo King

@JoKingうわー、あなたは本当に私よりもこのゴルフではるかに優れています!再度、感謝します。
ジェームズホルダーネス

6

ゼリー17 16バイト

“:[{“/@`‘Ḷḟ"/ỌḊ€

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

使い方

“:[{“/@`‘Ḷḟ"/ỌḊ€  Main link. No arguments.

“:[{“/@`‘         Yield [[58, 91, 123], [47, 64, 96]].
         Ḷ        Unlength; map each n to [0, ..., n-1].
          ḟ"/     Reduce by vectorizing filter-false.
                  This yields [[47, ..., 57], [64, ..., 90], [96, ..., 122]].
             Ọ    Unordinal; replace each n with the corr. Unicode character.
              Ḋ€  Deqeue each; remove the first character of each of the three
                  generated strings ('/', '@', and '`').

ゼリーには独自のコードページがあるため、禁止されたバイトを使用していないことを簡単に確認するために、hexdumpを添付すると役立ちます
-FlipTack

@FlipTack IIRC Jellyのコードページは、印刷可能なASCIIと互換性があります。
-PurkkaKoodari

@FlipTack Pietu1998は正しい。そして、彼がそうでなかったとしても、仕様はバイトではなく文字を禁止します。
デニス

@Dennis実際には、コメントごとにバイトを禁止していますが、これはまだ有効です(ASCII互換)。
エリックアウトゴルファー

6

自己修正Brainfuck、32バイト

<[-<+.>]<<[-<+.>]<<[-<+.>]`@/

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

xxd -r-リバーシブルhexdump(印刷できないものを含む):

00000000: 3c5b 2d3c 2b2e 3e5d 3c3c 5b2d 3c2b 2e3e  <[-<+.>]<<[-<+.>
00000010: 5d3c 3c5b 2d3c 2b2e 3e5d 601a 401a 2f0a  ]<<[-<+.>]`.@./.

何をし@/ますか?
イッツィー

@TuukkaX最後の6文字`\x1a@\x1a/\nは、そのコードポイントがゴルフで本当に役立つためです。それらを削除することはできません。
エリックアウトゴルファー

@downvoter:この投稿に出くわした場合は、下票を削除してください。これは修正されました。
エリックアウトゴルファー

SMBFを使用しているのは私だけではないことを嬉しく思います。:)
mbomb007

@ mbomb007実用性:)私はBFを考えていました、そして彼らはSMBFを思い浮かべたので、コードポイントの準備ができました。の+.代わりにを使用したため、この制限にはバイトがかかりませんでした.+
エリックアウトゴルファー

6

C、128バイト

はい、C。そして、それはいくつかの難解なものよりも短いです。

__($$,_,$,_$,$_){$>_$?_$=_$?!$:$,$=*(""-_+$_++)&*"{":_;_$?*(""-_+$$++)=$++:_;$&&__($$,_,$,_$,$_);}_(_){__(_,"",_,!!_,"½´ÞÅþå");}

_十分に大きい空のchar *バッファーを呼び出します。

コンパイラーに依存する小さなビットです。GCCを使用してテスト済み。ファイルはコードページ1252に保存されました。


6

JavaScript(ES6)、812 745 657 650 536 520 416バイト

(À=(Á=!($={})+(Ø=""))[Â=_=+[]],Ã=(Ä=!_+Ø)[Å=++_],Æ=(Ç=$+Ø)[_],È=(É=$.$+Ø)[_],Ê=Ä[Ë=++_],Ì=Ä[Í=++_],Î=++_,Ï=Ç[Ð=++_],Ñ=Ç[Ò=++_],Ó=++_,$=$[Ô=Ï+Æ+È+Á[Í]+Ñ+Ã+Ê+Ï+Ñ+Æ+Ã][Ô],$($((Õ=Ã+Ä[Í]+Ñ+Ê+Ã+È)+`"${Ù=($=À)+Æ+(Ö=Ô[Ð])}($ ${[Æ+$+"[["+Î+ ++_,Ø+Ð+_+"],["+Ò+Ð,Ø+ ++_+Å+"],["+_+Ó,Ú=Ø+Å+Ë+Í]}]])${Ù}(_=$[Â];_<$[Å];)Ø+=${(_="\\")+Ú+Ñ+Ö+(Û=(_=_+Å)+Ð)+Å+Ô[Ë]+_+Î+Ó}.${$+Ö+Æ+Û+Ð+_+Â+Í+Û+Â+Á[Å]+Ö+_+Â+Í+Æ+É[Ë]+Ì}(_++);${Õ} Ø"`)()))

編集: ISO8859-1エンコーディングを使用すると、このソリューションは520バイトではなく416バイトになります。完全なプログラムは432バイトで、追加の16バイトを考慮に入れます

f=\r\n
416 byte submission here\r\n
alert(f())

完全なプログラムとは対照的に、これは関数の提出です。私はかなり長い時間をJJEncodeに費やしました(そのためにdarrylyeoに感謝します)が、ゴルフの代わりに

console.log('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890')

私はゴルフをしました

for($ of[[48,58],[65,91],[97,123]])for(_=$[0];_<$[1];)Ø+=String.fromCharCode(_++);return Ø

どこØに初期化される""オーバーヘッドで。

改行に変換されたカンマ演算子で書き換えられました:

À=(Á=!($={})+(Ø=""))[Â=_=+[]]
Ã=(Ä=!_+Ø)[Å=++_]
Æ=(Ç=$+Ø)[_]
È=(É=$.$+Ø)[_]
Ê=Ä[Ë=++_]
Ì=Ä[Í=++_]
Î=++_
Ï=Ç[Ð=++_]
Ñ=Ç[Ò=++_]
Ó=++_
$=$[Ô=Ï+Æ+È+Á[Í]+Ñ+Ã+Ê+Ï+Ñ+Æ+Ã][Ô]
// function that returns string
$($((Õ=Ã+Ä[Í]+Ñ+Ê+Ã+È)+`"${Ù=($=À)+Æ+(Ö=Ô[Ð])}($ ${[Æ+$+"[["+Î+ ++_,Ø+Ð+_+"],["+Ò+Ð,Ø+ ++_+Å+"],["+_+Ó,Ú=Ø+Å+Ë+Í]}]])${Ù}(_=$[Â];_<$[Å];)Ø+=${(_="\\")+Ú+Ñ+Ö+(Û=(_=_+Å)+Ð)+Å+Ô[Ë]+_+Î+Ó}.${$+Ö+Æ+Û+Ð+_+Â+Í+Û+Â+Á[Å]+Ö+_+Â+Í+Æ+É[Ë]+Ì}(_++);${Õ} Ø"`)())

説明

このスクリプトは、いくつかの組み込み型を初期化し、それらを文字列に強制することから始まります。英数字を使用せずに取得できる文字列は次のとおりです。

{}+""     -> "[object Object]"
!{}+""    -> "false"
!+[]+""   -> "true"
{}[{}]+"" -> "undefined"

これらの文字列と、個々の文字を参照するために必要な数字から、文字列returnとを取得constructorできます。これは次のように使用できます。

$={}[Ô="constructor"][Ô]
$(("return"+`"encoded script"`)())

オブジェクトのコンストラクタはObject()であり、そのコンストラクタはですFunction()。これは基本的にのように使用できますeval()

この場合、実行されるエンコードされたスクリプトは、forコードポイントを使用してすべての英数字を文字列に連結して返すネストループです。

ビルトインを使用してアクセスできないエンコードされたスクリプト内のアルファベット文字の場合、JJEncodeは8進エスケープを使用してそれらを表し、内部関数から返すことで文字列全体をデコードします。次に、外部関数を呼び出してソースを実行できます。

デモ

f=
(À=(Á=!($={})+(Ø=""))[Â=_=+[]],Ã=(Ä=!_+Ø)[Å=++_],Æ=(Ç=$+Ø)[_],È=(É=$.$+Ø)[_],Ê=Ä[Ë=++_],Ì=Ä[Í=++_],Î=++_,Ï=Ç[Ð=++_],Ñ=Ç[Ò=++_],Ó=++_,$=$[Ô=Ï+Æ+È+Á[Í]+Ñ+Ã+Ê+Ï+Ñ+Æ+Ã][Ô],$($((Õ=Ã+Ä[Í]+Ñ+Ê+Ã+È)+`"${Ù=($=À)+Æ+(Ö=Ô[Ð])}($ ${[Æ+$+"[["+Î+ ++_,Ø+Ð+_+"],["+Ò+Ð,Ø+ ++_+Å+"],["+_+Ó,Ú=Ø+Å+Ë+Í]}]])${Ù}(_=$[Â];_<$[Å];)Ø+=${(_="\\")+Ú+Ñ+Ö+(Û=(_=_+Å)+Ð)+Å+Ô[Ë]+_+Î+Ó}.${$+Ö+Æ+Û+Ð+_+Â+Í+Û+Â+Á[Å]+Ö+_+Â+Í+Æ+É[Ë]+Ì}(_++);${Õ} Ø"`)()))
console.log(f())


5

Brain-Flak、171バイト

+3を含む -A

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

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

(((((()()()){}){}){}){}) # push 48
(((()()())){}{})         # push 9
{({}[()]<                # for 9..0
(({})())                 # pop a, push a, push a+1
>)}{}                    # end for
(({})(()()()()){})       # pop a, push a, push a + 8
(((((()()()){}){}){}())< # push 26 and save a 26 for later
{({}[()]<                # for 26..0
(({})())                 # pop a, push a, push a+1
>)}{}                    # end for
(({})(()()()){}())       # pop a, push a, push a + 7
>)                       # push that 26 that we held
{({}[()]<                # for 26..0
(({})())                 # pop a, push a, push a+1
>)}{}                    # end for

追加1の「関数」を繰り返さずにこれを行う方法がおそらくあります。



5

J、171バイト

(+:>.+:^^*_){.".(':',~(+:+:>.^*_){(*:>.^*_)!:(+:<.^+:*_)''),',',(":(>:*:+:+:+:*_),(<.^<:^<:^*_),<:*:<.^+:*_),'+/',('.',~(+:<.+:^*_){(*:>.^*_)!:(+:<.^+:*_)''),":+:<.*:>:^*_

わあ...脳が痛い... オンラインで試してみてください!

これは、すべてを1行で表示できるようにするためです(ただし、改行は実行されません)

(+:>.+:^^*_){.".(':',~(+:+:>.^*_){(*:>.^*_)!:(+:<.^+:*_)''),',',(":(>:*:+:+:+:*_),(<.^<:^<:^*
_),<:*:<.^+:*_),'+/',('.',~(+:<.+:^*_){(*:>.^*_)!:(+:<.^+:*_)''),":+:<.*:>:^*_

j805/j64/linux/release/commercial/www.jsoftware.com/2016-12-11T08:02:52この順序でのみJバージョンで動作することが保証されています。(最初の12文字のみが重要です。)

説明

プログラムのほとんどは、定数生成に専念しています。これらの定数が値に置き換えられると、プログラムは次のようになります。

(62){.".(':',~(12){(9)!:(14)''),',',(":(65),(97),48),'+/',('.',~(10){(9)!:(14)''),":26

いくつかの括弧を削除し、いくつかの数字をより良くしました:

62{.".(':',~12{9!:14''),',',(":65 97 48),'+/',('.',~10{9!:14''),":26

これは,and ,~の束で構成され、引数を追加および追加します。個別の値は次のとおりです。

  1. ":26
  2. ('.',~10{9!:14'')
  3. '+/'
  4. (":65 97 48)
  5. ','
  6. (':',~12{9!:14'')

1ある26文字列として。

9!:14'' TIOで次の文字列を生成します。

j805/j64/linux/release/commercial/www.jsoftware.com/2016-12-11T08:02:52

210th文字(ifrom linux)を取得し、.その末尾にa を追加して、を生成しi.ます。

3そして5自明です。

465 97 48文字列としての数値のリストです。

6に似て2いますが、12th文字(ufrom linux)であり:、末尾にa を追加することを除いて、を生成しu:ます。

これは、すべてまとめてを生成しu:,65 97 48+/i.26ます。".これを評価して、以下を与えます:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789:;<=>?@ABCDEFGHI

(注:+/表形式の追加です。)

次に、で62{.最初の62文字を取得し、を提供しABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ます。


定数14を使用し<:<.^^*_て、バイトを節約できます。また、範囲全体を生成し、シンボルを削除':;<=>?@[\]^_`'-.~".(':',~(+:+:>.^*_){(*:>.^*_)!:(<:<.^^*_)''),":(#@}.@}.@}.@,~(+#\)],,~)(*:@#$])'+++++'して104バイトになるようにしました。私はそれがずっと短くなると確信しています
マイル

5

05AB1E18 15 11バイト

-4、Adnanに感謝します。入力サイズが1の場合、05AB1Eは最初のコマンドでbに0を使用するためです。

•£•Ýç©á®þ«˜

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

•£•Ÿ            # Push [0..122] using implicit 0 and the base-214 of `£`.
    ç           # Convert to ASCII chars.
     ©          # Store full array in register.
      á         # Push the same array with ONLY letters.
       ®        # Push contents of register (char)[0..122].
        þ       # Push only the digits.
         «˜     # Concat to list, flatten it. 

私は非常に多くの異なるアプローチを試しましたが、ここでそれを難し​​くしたキーポイント:

- Basic commands will not work, only extended and a select few of the basics.
- Extended commands are pretty complex.
- Eval (.V) will not work.
- To push numbers you can do a base 214 compression.
- ALL sequence pushes (E.G. žK) won't work.
- ALL number pushes won't work, except for compression and the -1 an empty register pushes.

1
You may print them in arbitrary order挑戦を言います。
AdmBorkBork

1
機能します•£•Ýç©á®þ«˜か?
アドナン

@Adnanは、bがないときに0を使用することを知りませんでした。
魔法のタコUr

5

Brainfuck、55バイト

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

出力:

aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789

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


テープを3・2 nに初期化し、そこから動作します。

+++[[<+>->++<]>]    initialize the tape
                    |   0 |   3 |   6 |  12 |  24 |  48 |  96 | 192 | 128 |   0 |   0 |
                                                                                    ^
<<[-<->]            subract 128 from 192
                    |   0 |   3 |   6 |  12 |  24 |  48 |  96 |  64 |   0 |   0 |   0 |
                                                                        ^
<<<<++              increment 24 twice
                    |   0 |   3 |   6 |  12 |  26 |  48 |  96 |  64 |   0 |   0 |   0 |
                                                ^
[->>+.>+.<<<]       output aAbBcC ~ zZ
                    |   0 |   3 |   6 |  12 |   0 |  48 | 122 |  90 |   0 |   0 |   0 |
                                                ^
<--[->>.+<<]        decrement 12 twice; output 0 ~ 9
                    |   0 |   3 |   6 |   0 |   0 |  58 | 122 |  90 |   0 |   0 |   0 |
                                          ^

5

Perl 6、43バイト-非競合

{|('`'^..^'{'),|('@'^..^'['),|('/'^..^':')}

文字のリストを返すラムダ。
説明:

   '`'                                       # The character before "a" (in Unicode order)
          '{'                                # The character after "z"
      ^..^                                   # Endpoint-exclusive range between them
 |(          )                               # Slip the range into the outer list
               |('@'^..^'[')                 # Same thing for "A" to "Z"
                             |('/'^..^':')}  # Same thing for "0" to "9"

Rgitdo Perl 6インタープリターのバグ修正に依存します。これは、今日gitレポにコミットされただけで、Rakudoの公式リリースにはまだ含まれていません。実際、この課題に答えている間にバグに遭遇し、Perl 6コア開発者の助けを借りて修正することができました。私が理解しているように、このサイトのルールは、そのような状況で回答が競合することを許可していないため、非競合としてマークしました。



4

PHP 7.0以降、110バイト

神がビットワイズ文字列を祝福します!

<?=($__='`@`@'^'*/).')(($_='->.<:'^'__@[_')('>'^_,'%'^_)),$__($_('|'^'=','|'^'&')),$__($_(':'^"\n",';'^']'^_));

\n実際の* NIXスタイルの改行に置き換えます。
改行に関する問題を回避するためにコードに含まれていますが、スコアにはカウントされません。

これは大量の警告をスローしますが、@すべての浮遊の前にを追加することでそれらを抑制することができます_


警告なし、113バイト

<?=($__='`@`@'^'*/).')(($_='->.<:'^'__@[_')('>'^@_,'%'^@_)),$__($_('|'^'=','|'^'&')),$__($_(':'^"\n",';'^']'^@_));

3

65c02機械語+ Apple] [ROM、25バイト

A9 E0 20 0F 80 A9 C0 20 0F 80 A2 0A A9 AF 2C A2 1A 1A 20 ED FD CA D0 F9 60

印刷しabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ます。

から開始する必要があり$8000ます。

分解

8000-   A9 E1       LDA   #$E0
8002-   20 0F 80    JSR   $800F
8005-   A9 C1       LDA   #$C0
8007-   20 0F 80    JSR   $800F
800A-   A2 0A       LDX   #$0A
800C-   A9 B0       LDA   #$AF
800E-   2C          HEX   2C     ; SKIPS NEXT 2 BYTES
800F-   A2 1A       LDX   #$1A
8011    1A          INC   
8012-   20 ED FD    JSR   $FDED
8015-   CA          DEX   
8016-   D0 F9       BNE   $8011
8018-   60          RTS   

これはコードポイントルールに違反します。異なる文字セットの文字を使用しているだけです。バイトは、それらがイテラルでないか、コードによって読み取られない限り問題ありません。
-dkudriavtsev

@watああ、OK。「通常」(正)ASCIIの英数字にマップするマシンコードバイトを使用せず、正または負のASCII英数字リテラルを使用しないようにコードを編集しました。現在有効ですか?
insert_name_here

たぶんそうだ... 。_。
-dkudriavtsev

@wat現在使用されている昇順のコードポイントはです10, 15, 26, 32, 44, 96, 128, 162, 169, 175, 192, 202, 208, 224, 237, 249, 253。これ↵.. ,`.¢©¯ÀÊÐàíùýは、.sが印刷できない文字である文字にマップします。有効
パトリックロバーツ

3

bash(Linux)、507 493 490 485バイト

これは、文字の配列をグローバル変数に保存します __

: {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_
__=(/????/????/??/??)
___=${__%??}
__=(${__[@]#$___?})
____=${___#/*/?}
____=${____%?/*/}
_____=${____%?}
____=${____#?}
___=${___%??/}
______=($___*_??)
______=${______#$___???????}
______=${______%??_*}
_______=($___$_____???*)
_______=${_______#$___??}
_______=${_______%????}
___=$#
___=$((++___))$((___+++++___+___--))$___
$_____$_______$______$____{,} ___="\({$______..$'\\$___'}\)"
__=(${__[@]} ${___[@]} ${___[@]^})

/proc、またはpid名前空間のような何かで起動したばかりのLinuxマシンで実行する必要があります

説明:

# {var}>file opens a file descriptor >= 10 to that file
: {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_ {_}>_
# at startup no pid is > 999 so there's no other /proc/pid/fd/??
__=(/????/????/??/??)                                 # /proc/self/fd/1[0-9]
___=${__%??}                                          # /proc/self/fd/
__=(${__[@]#$___?})                                   # {0..9}
____=${___#/*/?}                                      # elf/fd/
____=${____%?/*/}                                     # el
_____=${____%?}                                       # e
____=${____#?}                                        # l
___=${___%??/}                                        # /proc/self/
______=($___*_??)                                     # /proc/self/timerslack_ns
______=${______#$___???????}                          # ack_ns
______=${______%??_*}                                 # a
_______=($___$_____???*)                              # /proc/self/environ
_______=${_______#$___??}                             # viron
_______=${_______%????}                               # v

___=$#                                                # 0
___=$((++___))$((___+++++___+___--))$___              # 172 (z in octal)

# eval eval                   ___="\({a..$'\172'}\)"
$_____$_______$______$____{,} ___="\({$______..$'\\$___'}\)"
#   {0..9}   {a..z}    {A..Z}
__=(${__[@]} ${___[@]} ${___[@]^})

試してみるにdeclare -p __は、最後に追加して結果を表示します

$ sudo unshare --fork --pid --mount-proc bash golf
declare -a __=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5" [6]="6" [7]="7" [8]="8" [9]="9" [10]="a" [11]="b" [12]="c" [13]="d" [14]="e" [15]="f" [16]="g" [17]="h" [18]="i" [19]="j" [20]="k" [21]="l" [22]="m" [23]="n" [24]="o" [25]="p" [26]="q" [27]="r" [28]="s" [29]="t" [30]="u" [31]="v" [32]="w" [33]="x" [34]="y" [35]="z" [36]="A" [37]="B" [38]="C" [39]="D" [40]="E" [41]="F" [42]="G" [43]="H" [44]="I" [45]="J" [46]="K" [47]="L" [48]="M" [49]="N" [50]="O" [51]="P" [52]="Q" [53]="R" [54]="S" [55]="T" [56]="U" [57]="V" [58]="W" [59]="X" [60]="Y" [61]="Z")

+1。他のOS(例:MacOS)にはないので、これをLinux上のBashと表現すべきだと思います/proc。実際/proc、Linuxでは厳密に必要というわけではありませんが、それなしでは現代のディストリビューションを見つけるのは難しいでしょう。
デジタル外傷

3

Javascript、1273 1351 1610 バイト

このソリューションは、このスレッドで他の2つの答えと本質的に同じように動作し、ここここにそれがから文字を使用して、truefalseundefined、および[object Object]それが他の文字を生成するために必要な機能を構築するための文字列。

十分な数の文字がすでにオブジェクトに入力されているため、残りのすべての極小文字と数字をオブジェクトに追加してから、オブジェクトのtoUpperCaseすべての値に適用して、失われた巨大文字を生成しました。

更新:

8進数値の設定方法を改善することはできましたが、それらはまだ13 x 30バイトを占有しています(または、数字を異なるキーに変更した後はそれぞれ30バイトになります)。パターン:$.ž=\'\\'+$.一+$.七+$.二+'\';

数字のキーを2バイト文字に切り替えることで、追加の49バイトを簡単に取り出すことができます。

現在の提出:

$=~[];_={ť:!""+"",ň:![]+"",û:$._+'',ô:{}+"",ø:''};$={零:++$,ƒ:_.ň[$],ť:_.ť[$],一:++$,â:_.ň[$],ř:_.ť[$],ô:_.ô[$],ň:_.û[$],二:++$,ľ:_.ň[$],û:_.ť[$],ƅ:_.ô[$],ď:_.û[$],三:++$,ŝ:_.ň[$],ĵ:_.ô[$],四:++$,ě:_.ň[$],五:++$,ĉ:_.ô[$],î:_.û[$],六:++$,七:++$,八:++$,Ô:_.ô[$],九:++$};_.ĉ=$.ĉ+$.ô+$.ň+$.ŝ+$.ť+$.ř+$.û+$.ĉ+$.ť+$.ô+$.ř;_.ř=$.ř+$.ě+$.ť+$.û+$.ř+$.ň;_.ƒ=(0)[_.ĉ][_.ĉ];_.ƒ(_.ƒ(_.ř+' "$.Û=\'\\'+$.一+$.二+$.五+'\';$.Ĉ=\'\\'+$.一+$.零+$.三+'\';$.Ě=\'\\'+$.一+$.零+$.五+'\';$.ĝ=\'\\'+$.一+$.四+$.七+'\';$.ĥ=\'\\'+$.一+$.五+$.零+'\';$.ǩ=\'\\'+$.一+$.五+$.三+'\';$.ӎ=\'\\'+$.一+$.五+$.五+'\';$.ƥ=\'\\'+$.一+$.六+$.零+'\';$.ǫ=\'\\'+$.一+$.六+$.一+'\';$.ư=\'\\'+$.一+$.六+$.六+'\';$.ŵ=\'\\'+$.一+$.六+$.七+'\';$.ӽ=\'\\'+$.一+$.七+$.零+'\';$.ŷ=\'\\'+$.一+$.七+$.一+'\';$.ž=\'\\'+$.一+$.七+$.二+'\';"')())();_.ƒ(_.ƒ(_.ř+' "_.â=\''+$.Ô+$.ƅ+$.ĵ+$.ě+$.ĉ+$.ť+'.'+$.ǩ+$.ě+$.ŷ+$.ŝ+'($).'+$.ƒ+$.ô+$.ř+$.Ě+$.â+$.ĉ+$.ĥ+'\';_.ƅ=\''+$.ť+$.ô+$.Û+$.ƥ+$.ƥ+$.ě+$.ř+$.Ĉ+$.â+$.ŝ+$.ě+'\';"')())();_.ƒ(_.ƒ(_.ř+' "'+_.â+'((ǩ)=>{$[ǩ.'+_.ƅ+"()]=($[ǩ]+'')."+_.ƅ+"()});"+_.â+"((ǩ)=>{_.ø+=$[ǩ];});"+$.â+$.ľ+$.ě+$.ř+$.ť+'(_.ø);"')())()

1
これはおもしろそうですが、実際のところ、あまりゴルフではありません。空白を削除するだけで74バイト節約でき、二重引用符を含む文字列に単一引用符を使用でき、3バイトのUnicode文字をより安価な文字に置き換えることができます。
デニス

@Dennis true、ただしこの方法の最大の問題は、8進コードで設定されている文字が非常に多いことだと思います。
マーティン

3

C(clang)、164バイト

é,ú,í,ó;_(*$){ú-=ú;ú++;í=ú+ú;ó=í<<í*í<<ú;!é?é++,é<<=í*í+ú,é+=í<<í+ú:é;*$++=é++;é+=é==ó-(í*í+í)?(í<<í)-ú:ú-ú;é+=é==ó+(í<<í<<í)-í*í-ú?í*í+í:ú-ú;é<í*ó-(í*í)-ú?_($):ú;}

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

これは、値1から開始して文字を取得する再帰関数であり(自己から減算し、増分します)、それから他のすべての数値を作成します。

未ゴルフ/説明:

é,ú,í,ó;
_(*$){ //function "_" taking a pointer "$"
	ú-=ú;ú++; //constant ú=1
	í=ú+ú; //constant í=2
	ó=í<<í*í<<ú; //constant ó=64
	!é?é++,é<<=í*í+ú,é+=í<<í+ú:é; //if é isn't initialized, seek to character '0'
	*$++=é++; //write to string and increase string index
	é+=é==ó-(í*í+í)?(í<<í)-ú:ú-ú; //skip to 'A'
	é+=é==ó+(í<<í<<í)-í*í-ú?í*í+í:ú-ú; //skip to 'a'
	é<í*ó-(í*í)-ú?_($):ú; //keep recursing until end of alphabet
}

2

CJam、15バイト

"{`[@:/"_:,:^\-

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

説明

"{`[@:/" e# Push this string. Note that these are the characters just above and
         e# below the a-z, A-Z and 0-9 ranges, respectively.
_        e# Get a copy of the string.
:,       e# Turn each character into a range, i.e. all characters from the null byte
         e# to the the character below the given one. E.g. { is turned into "...xyz".
:^       e# Fold symmetric set difference over the list. Gives us the characters that
         e# appear in an odd number of the strings. Those are the letters, the digits
         e# as well as `, @ and /.
\        e# Pull the other copy of the string on top.
-        e# Remove these characters from the string. That leaves only the alphanumerics.

2

𝔼𝕊𝕄𝕚𝕟、8文字/ 19バイト

ᶐ+ᶛ+⩥Ⅹă⬯

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

大文字のアルファベットであり、小文字のアルファベットであり、かつ⩥Ⅹă⬯(範囲である)から010ユニコードローマ数字)マイナス1(によって接合されたă)何も()。

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