こんにちは世界!準共通文字付き


28

ご存知の方もいるかもしれませんが、デニスのすばらしい「Try It Online」に言語を取り入れるには、こんにちは、世界!プログラムが必要です。最近、デニスはウェブサイトからこれらのプログラムをロードする方法を押し上げました。2017年7月27日現在、これらのプログラムで使用されている文字の頻度別のJSON ペーストビンを次に示します。

これらのキャラクターの中には愛が必要なものもあるので、あなたの課題はHello、World!を出力することです。(できればこのプロセスに関係する言語で)、以下に指定された文字のみを使用します。これらの文字は、2つの最も一般的な文字、およびの間10で使用されるすべての99文字で0あり、を含んでいます。

0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_

キャラクターの使用方法は、コードポイントやバイト値ではなく、通常のプログラムでの外観に基づいている必要があります。

そのセットから少なくとも1文字を使用する必要があるため、長さ0のプログラムは無効です。

これはであるため、バイト単位の最短回答が優先されます。

回答が有効かどうかを確認するJSFiddle


次の行にスペースを出力できますか?
-dzaima

@dzaimaスペースなしで出力できない場合は、実行してください。スペースを取り除くために使用するバイト数が増えた場合は、スペースを
スティーブン

非印刷キャラクターが出力(STDOUT)に移行することに関して、コミュニティのコンセンサス(またはここでの特定の不許可/許可)はありますか?私はそれが前に出てくるのを見たことがありません(それは簡単に見落とされるでしょう)が、それはここで私の戦略を劇的に変えます
...-brhfl

私の知っていることではない@brhfl -唯一の規範は末尾の改行は通常許可されている、あなたがチャットに求めることができるということである
スティーブン・

回答:


6

SOGL V0.1289の 75 68 バイト

z{}xxxx≥x≥x≥xXUqXxq≤qq≤q *R_IIRq  q *R_I0II*IRqxXq≤qxqxq CR_0II÷Rq0*

ここで試してみてください!
注:qまたは出力がここで参照されるときはいつでも、ポップ出力(のいずれかoOpP)が使用できないため、または先頭に改行を出力するためポップしません。

説明(時代遅れ、変更されたのは、アルファベット文字を使用して「H」が印刷されることです):

 $             push "$"
  R_           convert to an array of ordinals, then push all the contents to the stack
    0II        push 0+1+1 = 2
       *       multiply by that
        R      convert to character
         q     output
          z    push the lowercase alphabet
           {}  iterate over it, pushing each char, and do nothing. Stack: ["H","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"]
stack manipulation:
 xxxx ["H","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r"]
 ≥    ["r","H","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q"]
 x    ["r","H","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o"]
 ≥    ["o","r","H","a","b","c","d","e","f","g","h","i","j","k","l","m","n"]
 x    ["o","r","H","a","b","c","d","e","f","g","h","i","j","k","l"]
 ≥    ["l","o","r","H","a","b","c","d","e","f","g","h","i","j","k"]
 xxx  ["l","o","r","H","a","b","c","d","e"]
 q    output the "e"
 ≤    ["o","r","H","a","b","c","d","e","l"]
 qq   output the "l" twice
 ≤    ["r","H","a","b","c","d","e","l","o"]
 q    output the "o"

*                       push "*",
 R_                     convert to an array of ordinals, then push all to stack
   II                   increase by 2
     R                  convert back to character
      q                 output
         q              push a space, then output
           *            push "*"
            R_          convert to an array of ordinals, then push all to stack
              I         increase that
               0II      push 0+1+1 = 2
                  *     multiply
                   I    increase
                    Rq  output as character
stack manipulation: (starting stack: ["r","H","a","b","c","d","e","l","o",","," ","W"])
 x  ["r","H","a","b","c","d","e","l","o",","]
 X  ["r","H","a","b","c","d","e","l","o"]
 q  output the "o"
 ≤  ["H","a","b","c","d","e","l","o","r"]
 q  output the "r"
 x  ["H","a","b","c","d","e","l"]
 q  output the "l"
 x  ["H","a","b","c","d"]
 q  output the "d"

C            push "C"
 R_          convert to ordinal as before
   0II÷      floor divide by 2
       Rq    output as character
         0*  multiply by 0 so nothing extra would be outputted

楽しい事実:許可されている文字のすべての文字はSOGLコードページにあります:D


だから...あなたはプロの開発者として良い安定した仕事を持っていますか?ダンだから、これはクールな言語です...また、素敵なJSインタプリタ、昨夜完成しました:)?一部の言語のドキュメントの投稿を開始できますか?または、プライベートチャットでそのようなドキュメントの場所を教えてください。SOGLはそれを殺します。
魔法のタコ

@MagicOctopusUrn 1)いいえ、私は15歳です2)私は個人的には、それが作られた方法が私が作った最も厄介なものであるので好きではありません3)JSインタプリタはしばらくそこにありました4) SOGL(それらを呼び出すことができる場合)はここにありますが、いくつかのもの(などpalenChars.txt)はここで
-dzaima

再びバイト数を減らしてくれてありがとう!私は正直に私がこれよりも低くなるとは思わない!
ドムヘイスティングス

23

Perl 5、76バイト

}{${$_=$`x?B?}{?\w$?}{$_=qq{Lg\LLL$&= w$&RLD=}&qq=y}\LLL$&L _$&RLDA=}=$_=\*G

これは、廃止された機能を使用しますが、端末でローカルに機能します(前述のバージョン5.18.2です)。Perlの古いバージョンで?\w?は、同義語で/\w/正規表現の一致にアクセスでき、$&(最後の一致)と$`(最後の一致の前のテキスト)に十分な文字があります。私はこれらを取得する必要がありOます。私は、これが作成され生成globの参照を($_=\*Gこれは、スカラーにキャスト、あるようなものGLOB(0x7ffb728028d0))。がになったら$_?B?に一致しB$`を含むGLO\w$格納Oします。$&stringwise-ANDを実行している文字列に挿入され、残りのテキストが作成されます\L。文字列の本文はを使用して小文字に変換されます。

オンラインでお試しください!-TIO上のPerlのバージョンが新しすぎるため/\w/、代わりに使用し?\w?ます。


Perl 5、65バイト

TIOのファイル名に依存している.code.tioため(これは)少しややこしいので、競合しているとは思わないが、結果には満足している!

}{${$_=$0}{?\w$?}{$_=qq{Lg\LLL$&= w$&RLD=}&qq=y}\LLL$&L _$&RLDA=}

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


フラグの内容については何も言わなかったので-p、大丈夫です。良い仕事、これは私がこれを尋ねたときに私が望んでいたことです:)
スティーブン

1
どのように...何...
...-Okx

@StepHenお世話になりました!私はこれを本当に楽しんだ。フラグにペナルティを課していないことをうれしく思います。投稿を更新します。ありがとう!
ドムヘイスティングス

@Okxその効果があったことを嬉しく思います!
ドムヘイスティングス

15バイト未満の<3を追加する必要はありませんか?
魔法のタコUr

10

単項、7 * 10 182バイト

単項は0、カウンターとして使用して単項に変換されたバイナリに変換されたBrainfuck です。本質的に、それはBrainfuckプログラムを数に凝縮し、出力はその数です0。通常、これらは非常に大きなプログラムです。

SEが許可するテキストの量がわからないため、ここにプログラムを貼り付けませんが、これよりも少ないと思います。代わりに、この答えにゼロの正確な数を貼り付けます。

708184005756841022918598670049178934705323143517361395031673227349803938380119378597780037353721967636097362645175347036417214959141923667629285233360306016978751166690464736541968556

これはかなり安価な答えであり、最短ではないことが保証されているため、単にコピーしたので、これをwiki投稿にします。


2
少なくとも、それは65536よりwaaaaaay大きくした10¹⁸²* 7ではありません「私はSEができますどのくらいのテキストがわからない」
エリックOutgolfer

9

05AB1E137 106 95バイト

X00X00DXX00DXX00XX0X0X00D0XXXX0X00X00XXX00XXX0XXXXXX00XXXXX0XXXX00D0X000DD00XXJC000gDD0000g***B

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

-31ベース108を使用できることを指摘してくれた@Adnanに感謝します。

-?? 間違ったことを指摘してくれた@Rileyに感謝します。


古いバージョン(異なる方法):

05AB1E211 186 166バイト

0g00g000000000gUX000000gXX00000g000g00g000gD0000g0 000g00000gX00000gX00000g0 00000g00000000g0000000g00g00000000gD000000gX0000000g0g00000gUXJX00000000000000000g000g**B

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


ハハ!そして、ここで私はESOLANGSがもっともらしいチャンスを立てないことを考えました!


まず、Xに255を保存します。

00g               # Push 2 (length of 00).
   00000g         # Push 5 (length of 00000).
         00000g   # Push 5.
               JU # Join to 255 and store in X.

次に、同じ長さのトリックを使用してプッシュします。 1296995323340359595058728869715

0g00g000000000g000000g000000000g000000000g00000g000g00g000g000g0000g0 000g00000g000000000g00000g000000000g00000g0 00000g00000000g0000000g00g00000000g00000000g000000g000000000g0000000g0g00000gJ

0<space>ゼロの長さのトリックの代わりに使用する場所。

そして最後に、保存した255をプッシュし、255から10を基数に変換します。

X  # Push stored 255.
 B # Convert to base 255.

他の許可されたチャーを使用してまだゴルフをし、複製します、それは1分です。


8

Beatnik、148バイト

K QQQQQQQG ZD XA K QQJA KD ZD XA K KG KD ZD ZD ZD XA XA K B KD ZD XA K QQQQF ZD ZD XA K QQQD XA K A Z KD XA ZD XA K B KD XA ZD XA K J Z XA K QQQB XA

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

説明

Beatnikは、単語のスクラブルスコアに基づいて実行される命令をベースにします。以下に簡単な説明を示します。

Code         Scrabble Score   Explanation

K            5                push the scrabble score of the next word
QQQQQQQG     72               72 ['H']
ZD           12               pop a value; push it back twice
XA           9                pop a value; print its ASCII character
KD           7                pop two values; push their sum
Z            10               pop two values; push their difference

8

Moorhens(v2.0)、3423 983 923 866 749 716バイト

Moorhensは簡単に使用できる言語ではありません。

xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU KA xU xU xU xU xU xU xU xU xU xU xU xU KA AA xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU KA xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU KA xU xU xU xU xU xU xU KA KA xU xU xU AA AA AA AA AA KA xU AA KA xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU KA xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU xU KA xU xU xU KA XI XI XI XI XI XI KA XI XI XI XI XI XI XI XI AA AA AA AA AA AA AA AA AA AA AA AA

説明

Moorhensは、辞書の単語に基づいた言語です。各単語は、そのハッシュに基づいた操作に対応しています。ここで使用される5つの操作はxUERXIKA、およびAA

  • xU TOSをインクリメントします
  • ER スタックに新しいゼロを置きます。
  • XI TOSを減らす
  • KA TOSを複製します
  • AA TOSを最下部にロールします

これらの操作を連続して適用して、各文字をプッシュします。


5
「2つの操作」-私はエソランに精通していませんが、確かにそれらは5つの操作ですか?
boboquack

@boboquack修正
ウィートウィザード

1
言語へのリンク?
リーキー修道女

これだと思います。 github.com/Wheatwizard/Moorhen
再帰的

5

グリフォ、480バイト

AABCABABABBAABABAABCABBAABABABBCABBAABABABABABABABBAABBAABABABABABABABBAABBAAABCABBAABABAABCAABCABBAABABABBCABABABBAABBAABABAABCAABCABBAAABCABBAABABABBAABBAABABAABCABCAABABABABABBAABBAABBAABABAABCABAAABABAABAABBAABCAABABABBAABBAAABCAABCABBAABABABBCABABABBCABABABBAABAAABABAABAABABABBAABABABBAABABABAAABABAABAABBAABABABBAAABCABBAABABAABCABCAABABABABABBAABBAABBAABABAABCABCAABAAABABAABAABBAABABABBCAABCABBAAABCAABCABBAAABCABBAABABABBAABABABBCABABABBAABAAABABABCAABBAAABAABACABBBABCB

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



4

ダブルJavaScript、318バイト

それが許可されているかどうかはわかりませんが、一度JavaScriptインタープリターを使用してそれを行うことはできませんでした。それはuseに似ていますeval()が、代わりにインタープリターを2回使用しています:(コンソールで試して結果を出力します)

`\`\\x${0xA*0xA&0xC}${0xA&0xC}\\x${0xA*0xF&0xF}${0xB*0xF&0xF}\\x${0xA*0xF&0xF}C\\x${0xA*0xF&0xF}C\\x${0xA*0xF&0xF}F\\x${0xE*0xF&0xF}C\\x${0xE*0xF&0xF}${0}\\x${0xB*0xF&0xF}${0xB*0xB*0xF&0xF}\\x${0xA*0xF&0xF}F\\x${0xB*0xB*0xF&0xF}${0xE*0xF&0xF}\\x${0xA*0xF&0xF}C\\x${0xA*0xF&0xF}${0xA*0xA&0xC}\\x${0xE*0xF&0xF}${0**0}\``

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

評価対象:

`\x48\x65\x6C\x6C\x6F\x2C\x20\x57\x6F\x72\x6C\x64\x21`

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

評価する Hello, World!


3

Smallf ** k、266バイト:

zJ$NJ`ZZx*gQYQQ{zqyKKUkUR?AS`zB`JB&UCKCIxQ_G0*000FzzJ&?YwkC\qqgZ`xYQyC}DgY_&_S}KPZ\&?SGAE&{Gw_w} GAgA{qT{gC&`qI?xwCNQwgR}?{*QEwQUj&BT&jR__IJJIqUqAPF0yICXESL?AYR QIAFU& yYwE&$\Njj B0T*F j$?kCzQk*}U}UgI$}Ew_yDL`qYI*E_G}SCjXDFNJKGNIGyIwA\BzLP`*zCILGCNqyYZyq? GwN{q{gKSj

実際には、キャラクターはちょっと無関係です。各文字に偶数のコードポイントまたは奇数のコードポイントがあるかどうかだけです。したがって、使用可能なすべての文字(マルチバイト文字を除く)を使用するよう努力しました(ランダム化されているため、それを保証する努力はしませんでした)。


1
@totallyhumanあなたは正しい。変更します。マルチバイト文字を削除します。実際にはコードページはありません。1と0(奇数の場合は1、偶数の場合はord0 ord)として保存する必要があるため、これは33.25バイトxD
HyperNeutrino

キャラクターの使用方法は、コードポイントやバイト値ではなく、通常のプログラムでの外観に基づいている必要があります。
KSmarts

@KSmartsそれについてOPに尋ねます。
ハイパーニュートリノ

@KSmartsつまり、言語のコードページが異なり、たとえば'5'レギュラーのコードポイントを占有している場合、の'A'使用は許可されません'5'
ハイパーニュートリノ

@KSmartsは、非標準のコードページがある場合、これらの文字がそのコードページ上を移動することを意味します。プログラムの一部としてコードポイントを引き続き使用できます。
スティーブン

3

パイク133 144バイト

? BXKKKKRKRKRK\CkJ00q}}}XEjTX}G_E\E\L\LkJjRT}}XRGREkJjR 00q}R? B_RE\ \wkJjRT}}XRGRE\R\L\DkJjRZ0q}}R? B_RER? JR? KREZjZ0q}AREkJjRT}}RG_RE00q}}RAA

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

ほぼ確実に短縮できる恐ろしいコードの混乱。一度に1文字ずつ構築します。

? BXKKKKRKRKRK\CkJ - ".C" - A string that when evaled, gets the character at the point
00q}}}XEj - Construct 64 by doing `((0==0)*2*2*2)**2` and then eval, getting the "@" character and store it in `j`
TX}G_E - Get "h" using `@` by looking it up in the alphabet
\E\L\LkJ - "hELL"
jRT}}XRGREkJ - "hELLo"
jR 00q}R? B_RE  - ","
\ \wkJ - "hELLo, w"
jRT}}XRGRE\R\L\DkJ - "hELLo, woRLD"
jRZ0q}}R? B_RER? JR? KREZjZ0q}AREkJ - "hELLo, woRLD!"
jRT}}RG_RE00q}}RAA - "Hello, World!"

2

dc164 162バイト

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzS zzS?zzzzzzzzzzzzS$zzzzzzzzzzzzzzzzzzzzzzzzzzzzzPzzzzzzzzzzzzzzzzSwzzzzzzzzzzzzzzzPzzzzzzzzSLzPzPzzzzPL$PL PLwPzPzzzzPLLPAI*PL?P

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

より良い/より興味深いアプローチがありそうです。ASCII + 256トリックを使用しようとしましたdcが、追加の文字も出力されます(印刷されていない場合でも)。「o」に到達すると、素晴らしく素数の多い111になり、きれいに因数分解した111+(256の倍数)の値。だから、ここではかなり簡単な(可能であればゴルフをしますが)ソリューションです:

スタック上にスタックの深さをプッシュするコマンドです。つまり、増分として使用できます。これは、このチャレンジのASCII値のほとんどを作成する方法です(で印刷)。名前付きスタックにプッシュし、でメインスタックにポップします。dczPSL

dc入力基数が10進数(デフォルト)の場合でも、16進数値AFを使用できます。幸いなことに、最初の文字である72は12の倍数であるため、ここで6 * 12を掛けてすぐに印刷することで1バイトまたは2バイト節約します(zzzzzzzC*P)。私の164バイトバージョンでは、乗算を早期に使用して72(「H」)を取得しました。次に、スペース、感嘆符、およびコンマをインクリメントして保存することから始めます。これらは順不同であるため、まだ印刷できません。次に、「H」に移動し、すぐに印刷して「W」に移動します。これは後で保存する必要があります。

「e」を押すと印刷し、「l」まで増分します。それらのうちの2つを印刷し、1つを保存します。「o」にしたとき、最初にそれらの1つを後で保存する必要があると思いましたが、この時点ではすべてが順調です。「o」を印刷し、以前からコンマ、スペース、「W」を取得し、「o」に戻りました。これを印刷し、必要な最高値「r」(114)まで数を増やします。この値は、先ほど押し込んだ「l」を読み込んで印刷する前に印刷します。

ほぼ完了!「d」はASCII値100です。これは、10 * 10を乗算することで簡単に作成できます(以前に保存して今すぐロードするよりもバイト数が少なくなります)。16進値Aは10で、コマンドで取得できる入力基数も同様ですI。それらを乗算し、印刷してから、以前の感嘆符をロードして印刷します。こんにちは世界!

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