ユニークなキャラクターを控える


23

それは非常に簡単です:プログラムまたは関数は次のテキストを生成する必要があります。

Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.

細字

出力を文字列として返すそれをSTDOUT(または最も近い代替)に出力するプログラムまたは関数を作成できます。オプションで、出力に単一の末尾の改行を含めることができます。

得点

コードのバイト数にコードの一意のバイト数を掛けたもの

最低スコアが勝ちます。

たとえば、ここでは、乗数が非常に低い(それぞれ8と3)ため、ブレインファックまたはホワイトスペースの回答には大きな利点があります。ただし、一般に、これらの言語でプログラムを作成すると、コードが非常に長くなり、その利点が無効になる場合があります。

もはや面白くない標準的な抜け穴禁止されています。


ケーシングは正確でなければならないと思いますか?
-EnragedTanker

@crayzeedudeはい、それは一種のポイントです
-durron597

わかった。明確にするだけです。:p
EnragedTanker

1
@CarpetPythonサンドボックスではこれについていくつかの議論がありましたが、最終的には、プレイフィールドをTRULYレベルにする方法はないと判断しました。とにかく、空白と不眠症が最高のスコアを持っていることに注意してください!
durron597

2
私がどこかに書いたように、より少ないユニークな文字を補うためにより多くのバイトを使用すると、数字を異なる基数に変換するのと同様に動作すると仮定するとbytecount~Log(X,unique)、Xはこの問題に対して一定です。したがって、unique ^ bytecount〜定数です。このスコア(log2)を計算すると、が得られpython2_mbomb007 728, python2_carpetpython 744, ruby 756, Fish 825, Insomnia 1148, cjam 1277, whitespace 1484, brainfuck 3546ます。だからブレインファックの答えを除いて、それは比較的一定です
...-blutorange

回答:


7

不眠症、575バイト* 4 = 2300

dyedd=dyyyye=d=yd=dddde=ded=deey=eyy=de=edd=eydyee=yeyy=yey==ddyee=eydee=y=eyeedd=dde=yddd=eede=yedde=eeyd==yeyy=yyddy=eyy=dy=dddye=dyey=ede=yddd=dde=de=yyye=yyye=ddyyy=dyy=yeyddy=eyyyde=eed=ddd=yd=edyyd=eeydd=yedd=eye=eee=eeyy=yyyedde=d=eyyyedy=d=yddyye==dyyede=ddd=eydd=yd=ddde==eeeeyy=yeyd=deyy=yyy=ydy=dy=dd=e=ey=dddddy=yeey=ey=eed=ddd=eedy=ddddde=ydeyy=edd=ydy=ddy=yeedd=ydde=dde=edyye=ded=yeed=dddddde=eedy=eyde=ydy=ydydd=eyydd=dd=dddd=ddyye=ydeey=ed=eeeye=y=ydydde=eyyd=eyee=dy=edeyed=dyed==eyyddey=dd=yddd=yddd=de=ddedy=eyydd=eeedy==eyyydeee=d=d=eydd=yey=dyy==yyyedy=

4文字を使用しますdye=

ソリューション1b(未公開):783バイト* 3 = 2349

eeeeyeeyy=eeyy=yeyye=yyyeeyye=eeeye=yeyey=eyeyyy=eyy=eeyeye=yeyeyyy=yyeeye=yeyy=yey==yyeyeyeye=eyyey=y=yyyyyy=y=eyyeyyyyyyye=eeye=yyeeyye=eyeyeyyy==yeyy=yeyyyeyye=yyyeeyy==eeyyeee==eeyye=yyyyeyyeyyye=yyyyyyy=yeye=eyyyyy=eeye=eeyeeeeey=eyeye=eeee=yeyyye=eyyyyye=y=eeeyyy=eyyeyee=yyy=eyye=yeyeeee=yyeyeyyyy=eeyy=yyyyy=eyyyy=yyeeyye=e=eyyyyy=eyey==eyeyy=yyyyyeyeyeye=ye=yyyyyy==eeeeyy=yeye=yeyyey=yyy=eyyyeeeye==yeeyyeyy=e==yeeeyyyeyy=yeey=ey=eee=eyeyy=yyeeee=yeeyyyyy=yee=yeyyy=yeeeeyy=eyeeeeeye=eeeyy=yyeeeeyyye=yey=yyyyeeyye=yyyyyyy=yeee=eeeeyyeye=eyeeye=eeyyeyyy=eeyee=yyyyyeeyy=eee=eeyyeyyyyy=eeey=eyyeeyy=eyyeyyy=eeeeyeee=eeeye=y=yyyeyy=yyeeee=yyeyey=ey=eyyyyyeyyy=yeye==yeeyyyeyy=yeye=yyyyeeyy=eeeyyeeyyy=yeeyeyyy=eeyye=eee=eyyye==eyeyeyyyyy=e=eeyeeye=yeey=eyeyy=eyeye=ey=eyyeye=

3文字のみを使用しますey=

解決策1:826バイト* 3 = 2478

yoyoy~oyoyo~oyooyy~ooyyoyy~ooyyyyoy~~yoyyo~ooyoooyooo~yoyyo~oyoyoyyy~yyo~oyyoo~~ooooy~oyyyyy~oyoyoo~~oyyyoooyy~~oyoyooyyy~yyooo~yoyo~yoyyyyo~yooyo~y~yyoyyyooyy~oyyooy~ooyoy~oyyooy~ooyyo~yoyyoo~o~ooyo~yooyyoo~yoyoy~ooyyyyooo~oyoyyo~yyoyyyoo~yyo~yyooyyo~yoyyoooy~~yoyyyooyoyy~oyoyyy~yoooyyoy~yooyy~yooyyo~yyooyyoo~oyoyo~oyyy~oyyo~oyyoyo~oyyyoo~oyoyyoo~yooyo~ooooo~~yoyyoyyoyoo~yoyyooo~y~ooooy~yyyoy~ooooyyoyyoy~oyyoo~oyyoyo~yoyyyooy~oyooo~yoyyoyy~yyyyyo~oyooy~oyoyy~yoyyyoy~ooyoy~yoyyoooy~~oyyyo~ooooooy~yooyoyyoyo~yooyyo~oooyyo~yoyooyyo~oyyy~o~yooooy~oyoyyooooy~~yoyyooyyo~oy~yyyoyyyyy~yoyyyoy~yooo~oooy~oooooyyoyyyo~yoyyo~y~oooyyyoyoo~yyooooyoyy~y~oooyyyoy~~yoy~oyyoyoyyy~yoyyyyy~oyooo~yyyyooo~yooyyoy~yooyo~yoyyyo~yyoyyyo~o~ooooooyoy~oyoyyoy~yyoooo~ooooyy~oyoyoy~ooyyo~yyoooyo~yyyyyo~oyyo~yooyyooyyoy~~ooyyyyoyyy~ooyyo~yyooo~

3文字のみを使用しますyo~。これを生成するためにプログラムが使用されます。

現在、すべてのプログラムは命令0、1、2、6のみを使用しています。つまり、1バイトのビットを操作して結果を出力します。


19

CJam、266 281 456バイト× 14 12 7ユニーク= 3724 3372 3192

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

14301201124204202034420112034224204431020210101232301021240204310431312122132100240400222324402030223103420431324402222132223233141443401210314023001122320404112224314302132421403301243334313000011124244441400003310332301330220022110121411122100040310110020040121444302100143202204330334033211334242120304123121024200421121232100303121022431044444423243331440434010014400~~10~~100~~1~43c~c~4~~41c~100~~1~43c~c~123~~100~~1~43c~c~44~~14~~43c~c100~~40c~c43c~~

説明

私が使用した戦略は、文字列内の各文字をベース123桁として扱い、プログラム内でそれを10進数としてエンコードすることです。次に、プログラムはその数値をベース123に変換し、各ベース123の数字を文字にマッピングします。プログラムが現在の状態にある理由を説明するのは難しいため、各バージョンについて説明します。

最初のバージョンでのプログラムの終わりは次のとおりです。

...2068438725 123b:c

これにより、戦略が可能な限り最も簡単な方法で実装されます。通常、10進数でエンコードされた数値は、123進数に変換され、各123桁が文字にマッピングされます。しかし、これは4つの一意の非数字文字を使用し、それらのいずれかを取り除くことができれば、それほど単純でないコードを使用する必要があるため、サイズヒットの価値があります。

最初に、実行時にASCII文字値を文字に変換して(既に存在する演算子を使用して)演算子を作成しb:演算子で評価することにより、演算子と演算子を削除できることに気付きました。次の演算子と一緒に解析する必要があるため、演算子でこれを行うのは少し難しいことがわかりました。これを解決するには、文字を生成してからcharacter を生成および評価し、前の2つの文字を文字列に連結して適切に評価できるようにしました。c~:c:c+:c

第二に、私が~導入した演算子には、便利な新しいオーバーロードされたバリアントがあることに気付きました。数値を指定すると、ビット単位の補数が生成されます。これを数値の後に続けて2回使用することで、ソースにトークンブレークを導入して計算結果を得ることができず、数値を区切るために使用されるスペースをで置き換えることができます~~

最終結果は最後に15バイトのコードになりますが、このコストは14個中2個の一意の文字を削除する利点をはるかに上回っています。

...2068438725  123[ b  ][   :c    ]
...2068438725~~123~~98c~58c99c43c~~

私が使用していた2つ未満の演算子を使用することはできませんが、それでも少数の一意の文字が必要でした。したがって、次のステップは数字を削除することでした。各10進数が実際に5進数になるように数値のエンコードを変更することにより、6〜9の数字を削除できる可能性があります。prgoramの最後から何かを削除する前に、次のようになりました。

...4010014400 10b5b123b:c

前述したように、スペースの削除は簡単です。しかしb:と、cその文字コードがあるとして、そう簡単ではないでしょう985899それぞれ。これらにはすべて、除去のためにマークされた数字が含まれていたため、それらをすべて引き出す方法を見つける必要がありました。また、5〜9を含まない文字値を持つ有用な数値演算子は、デクリメント、インクリメント、乗算、および加算のみでした。

以下のために98、私が最初に使用100~~40c~40c~デクリメントされ、100二回。しかし、~ビット単位の補数を使用すると負の数を取得でき、加算すると減算をエミュレートできるため、演算子をさらに別の方法で使用できることに気付きました。私は、使用して100~~1~43c~、これを追加100し、-2そして2が小さいバイトです。のために58、私は使用し44~~14~~43c~、それは追加4414ます。そして99、私が使用した100~~40c~、それは減少します100

最終結果はかなり大きく、難読化されていますが、12個のうち5個のユニークな文字を削除するという大きなメリットにより、大幅に多くのコードと処理コードのコストがわずかに上回っています。除去:

...4010014400  10[      b      ][  5  ][     b     ]123[      b      ][            :c            ]
...4010014400~~10~~100~~1~43c~c~4~~41c~100~~1~43c~c~123~~100~~1~43c~c~44~~14~~43c~c100~~40c~c43c~~

さて、今私は感銘を受けました。基数6桁、基数7桁などは、基数5と比較してどうですか?
durron597

@ durron597彼らは本当に(私は必要なオペレータの文字コードとして、計算が任意のより簡単にしない9858と、99範囲外の残っています)。また、ベースを増やすと、プログラムの合計サイズが8〜10%だけ減少します。これは、新しいユニークなキャラクターを獲得することで得られる10〜15%のスコアを補うには不十分です。b同様に演算子を再含めることは価値がありません。
Runer112

数値xを取得し、ベースbに変換します。その長さはになりfloor(log_b(x)+1)b異なる記号が含まれます。スコアはb*floor(log_b(x)+1)です。xは与えられた大きな数であり、これをbに対してプロットすると、最小値はほとんどb = 3であることがわかります。つまり、より高いベース(ログ)を使用すると長さはわずかに減少しますが、文字セットのサイズは直線的に増加するため、その価値はありません。簡単な空白のプログラムを作ったが、それは4134のスコアのみ取得します
blutorange

@blutorange空白プログラムを作成する必要があります。2位には4134で十分
-durron597

16

空白、1157 937バイト* 3一意= 3471 2811

ポピュラー(?)リクエストにより、ホワイトスペースソリューションを投稿しています。

必要なコードを減らすために、文字列全体を1つの2進数(バイトごとに7ビット)としてハードコーディングしました。単純なループで文字を抽出し、印刷します。

filebin.caのソースコード。

注: 仕様は、任意の大きな整数を許容するが、公式ページでHaskellのインタプリタが 20ビットに制限されます。たとえば、github / hostilefork / whitespacesこのルビーインタープリターを使用します。

空白プログラムを作成するrubyスクリプト(l = WHITESPACE、t = TAB、u = NEWLINE、//以降はすべて無視され、ファイルに書き込みますprog.h):

str = 'Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.'

def b2ws(bin)
    bin.chars.map{|x|x=='0' ? "l" : "t"}.join
end
def d2ws(dec,pad=0)
    b2ws(dec.to_s(2).rjust(pad,'0'))
end

bin = str.reverse.chars.map do |x|
    "  " + d2ws(x.getbyte(0),7) + " // char <#{x=="\n" ? "LF" : x}>"
end
data = "lll // pushes string as one large number\n#{bin.join("\n")}\nu"

File.open('prog.h','w') do |fout|
    fout << data << "\n"
    fout << <<-eos

// output string loop
ulllu // label 0

  // extract, print, and remove the last 7 bits of the data
  lul   // dup
  llltlllllllu // push 128
  tltt // mod
  tull  // print as char
  llltlllllllu // push 128
  tltl // div

  // break loop if EOS
  lul   // dup
  utltu // jump to 1 if top of stack is zero

ululu // jump to 0

ulltu // label 1
uuu
    eos
end

説明のために、人間が読める形式の空白プログラム。実際の空白プログラムに変換する簡単なスクリプトについては、以下を参照してください。

lll // pushes string as one large number
  ltltttl // char <.>
  ttltltt // char <k>
  ttltttt // char <o>
  ttltttt // char <o>
  ttlttll // char <l>
  ltlllll // char < >
  ttllllt // char <a>
  ltlllll // char < >
  ttlltlt // char <e>
  ttlttlt // char <m>
  ltlllll // char < >
  ttllttt // char <g>
  ttltttl // char <n>
  ttltllt // char <i>
  tttlttl // char <v>
  ttltllt // char <i>
  ttllttt // char <g>
  ltlllll // char < >
  ltllltl // char <">
  ltlttll // char <,>
  tlllttt // char <G>
  tlltttt // char <O>
  tllltll // char <D>
  ltlllll // char < >
  tlttllt // char <Y>
  tlttltl // char <Z>
  tlllllt // char <A>
  tllttll // char <L>
  ltlllll // char < >
  tllltlt // char <E>
  tlltlll // char <H>
  tltltll // char <T>
  ltlllll // char < >
  tltlltl // char <R>
  tllltlt // char <E>
  tltlttl // char <V>
  tlltttt // char <O>
  ltlllll // char < >
  tltlltt // char <S>
  tltllll // char <P>
  tllttlt // char <M>
  tltltlt // char <U>
  tlltltl // char <J>
  ltlllll // char < >
  tlttlll // char <X>
  tlltttt // char <O>
  tlllttl // char <F>
  ltlllll // char < >
  tlltttl // char <N>
  tltlttt // char <W>
  tlltttt // char <O>
  tltlltl // char <R>
  tlllltl // char <B>
  ltlllll // char < >
  tlltltt // char <K>
  tlllltt // char <C>
  tlltllt // char <I>
  tltltlt // char <U>
  tltlllt // char <Q>
  ltlllll // char < >
  tllltlt // char <E>
  tlltlll // char <H>
  tltltll // char <T>
  ltllltl // char <">
  ltlllll // char < >
  ltttltl // char <:>
  ltltllt // char <)>
  ttlltlt // char <e>
  ttllltt // char <c>
  ttllllt // char <a>
  ttlltlt // char <e>
  tttllll // char <p>
  ltlllll // char < >
  ttttllt // char <y>
  ttlttlt // char <m>
  ltlllll // char < >
  tttlltl // char <r>
  ttltttt // char <o>
  ttllttl // char <f>
  ltlllll // char < >
  ttttllt // char <y>
  ttlltll // char <d>
  tttlttt // char <w>
  ttltttt // char <o>
  tttlltl // char <r>
  ltlllll // char < >
  ttltttt // char <o>
  ttltttt // char <o>
  tttltll // char <t>
  ltlllll // char < >
  tttltll // char <t>
  tttlltt // char <s>
  tttltlt // char <u>
  ttltltl // char <j>
  ltltlll // char <(>
  ltlllll // char < >
  ttlltll // char <d>
  ttlltlt // char <e>
  tttltll // char <t>
  ttltttt // char <o>
  tttltlt // char <u>
  tttlllt // char <q>
  ltlllll // char < >
  ttttllt // char <y>
  ttlttll // char <l>
  tttlltt // char <s>
  tttltlt // char <u>
  ttltttt // char <o>
  ttltllt // char <i>
  ttttlll // char <x>
  ttltttt // char <o>
  ttltttl // char <n>
  ttllltl // char <b>
  ttltttt // char <o>
  ltlllll // char < >
  ttltlll // char <h>
  tttltll // char <t>
  ttlltlt // char <e>
  ttllltl // char <b>
  ttllllt // char <a>
  ttttltl // char <z>
  ttltllt // char <i>
  ttlttll // char <l>
  tllltlt // char <E>
u

// output string loop
ulllu // label 0

  // extract, print, and remove the last 7 bits of the data
  lul   // dup
  llltlllllllu // push 128
  tltt // mod
  tull  // print as char
  llltlllllllu // push 128
  tltl // div

  // break loop if EOS
  lul   // dup
  utltu // jump to 1 if top of stack is zero

ululu // jump to 0

ulltu // label 1
uuu

基本的に、出力する文字列は長整数であり、スコアを下げる必要があります。

数値xを取得し、ベースbに変換します。その長さはになりfloor(log_b(x)+1)b異なる記号が含まれます。スコアはb*floor(log_b(x)+1)です。xは与えられた大きな数であり、これをbに対してプロットすると、最小値はほぼ同じであることがわかりますb=3b=2ほぼ同じ程度です)。つまり、より高いベース(ログ)を使用すると長さはわずかに減少しますが、文字セットのサイズは直線的に増加するため、その価値はありません。

したがって、0/1だけの言語を探しましたが、何も見つかりませんでした。そして、空白があることを思い出して、それを試しました。空白では、0と1の2進数を直接入力できます。


古いコード、スコアは悪いが、より興味深い

filebinの古いコード。

プログラムの作成に使用したルビースクリプト(l = WHITESPACE、t = TAB、u = NEWLINE、//無視された後はすべて、ファイルに書き込みますprog.h):

str = 'Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.' + "\n"

def shift(x)
    (x-97)%128
end

EOS = "lttltl" #26
STACK = []

bin = str.reverse.chars.map do |x|
    byte = shift(x.getbyte(0))
    rf = STACK.index(byte)
    STACK.unshift(byte)

    y = byte.to_s(2).chars.map{|y|y=='0' ? 'l' : 't'}.join
    ph = "lll#{y}u" # pushing directly
    if rf
        bn = rf.to_s(2).chars.map{|y|y=='0' ? 'l' : 't'}.join
        cp = "ltll#{bn}u" # copying from stack
    end

    if STACK.size>0 && STACK[0]==STACK[1]
        "lul // dup #{x.inspect}"
    elsif cp && cp.size < ph.size
        "#{cp} // copy <#{x.inspect}> (from #{rf})"
    else
        "#{ph} // push <#{x.inspect}> (#{shift(x.getbyte(0))})"
    end
end

File.open('prog.h','w') do |fout|
    fout << "ll#{EOS}u // push EOS" << "\n"
    fout << bin.join("\n") << "\n"
    fout << <<-eos
// output string
ullu // label 0
  // add 97 (128) before printing
  lllttlllltu // push 97
  tlll // add
  llltlllllllu // push 128
  tltt // mod
  tull  // print top of stack

  // break loop if EOS
  lul   // dup
  ll#{EOS}u // push EOS
  tllt // subtract
  utltu // jump to 1 if top of stack is zero
uluu // jump to 0

ulltu // label 1
uuu
    eos
end

説明のために、人間が読める形式の空白プログラム。実際の空白プログラムに変換する簡単なスクリプトについては、以下を参照してください。

lllttltlu // push EOS
llltltlltu // push <"\n"> (41)
llltllttltu // push <"."> (77)
llltltlu // push <"k"> (10)
llltttlu // push <"o"> (14)
lul // dup "o"
llltlttu // push <"l"> (11)
lllttttttu // push <" "> (63)
llllu // push <"a"> (0)
ltlltu // copy <" "> (from 1)
llltllu // push <"e"> (4)
lllttllu // push <"m"> (12)
ltlltlu // copy <" "> (from 2)
lllttlu // push <"g"> (6)
lllttltu // push <"n"> (13)
llltlllu // push <"i"> (8)
llltltltu // push <"v"> (21)
ltlltu // copy <"i"> (from 1)
lllttlu // push <"g"> (6)
ltllttlu // copy <" "> (from 6)
llltllllltu // push <"\""> (65)
llltlltlttu // push <","> (75)
lllttllttlu // push <"G"> (102)
lllttltttlu // push <"O"> (110)
lllttlllttu // push <"D"> (99)
ltlltltu // copy <" "> (from 5)
lllttttlllu // push <"Y"> (120)
lllttttlltu // push <"Z"> (121)
lllttlllllu // push <"A"> (96)
lllttltlttu // push <"L"> (107)
ltlltllu // copy <" "> (from 4)
lllttlltllu // push <"E"> (100)
lllttlltttu // push <"H"> (103)
llltttllttu // push <"T"> (115)
ltllttu // copy <" "> (from 3)
llltttllltu // push <"R"> (113)
ltlltllu // copy <"E"> (from 4)
llltttltltu // push <"V"> (117)
ltlltttlu // copy <"O"> (from 14)
ltlltllu // copy <" "> (from 4)
llltttlltlu // push <"S"> (114)
lllttlttttu // push <"P"> (111)
lllttlttllu // push <"M"> (108)
llltttltllu // push <"U"> (116)
lllttltlltu // push <"J"> (105)
ltlltltu // copy <" "> (from 5)
llltttltttu // push <"X"> (119)
ltlltlllu // copy <"O"> (from 8)
lllttlltltu // push <"F"> (101)
ltllttu // copy <" "> (from 3)
lllttlttltu // push <"N"> (109)
llltttlttlu // push <"W"> (118)
ltlltllu // copy <"O"> (from 4)
ltlltllltu // copy <"R"> (from 17)
lllttlllltu // push <"B"> (97)
ltlltltu // copy <" "> (from 5)
lllttltltlu // push <"K"> (106)
lllttllltlu // push <"C"> (98)
lllttltlllu // push <"I"> (104)
ltllttttu // copy <"U"> (from 15)
llltttllllu // push <"Q"> (112)
ltlltltu // copy <" "> (from 5)
ltllttlltu // copy <"E"> (from 25)
ltllttttlu // copy <"H"> (from 30)
ltllttttlu // copy <"T"> (from 30)
llltllllltu // push <"\""> (65)
ltlltllu // copy <" "> (from 4)
llltlttlltu // push <":"> (89)
llltlltlllu // push <")"> (72)
llltllu // push <"e"> (4)
llltlu // push <"c"> (2)
llllu // push <"a"> (0)
llltllu // push <"e"> (4)
lllttttu // push <"p"> (15)
ltlltttu // copy <" "> (from 7)
lllttlllu // push <"y"> (24)
lllttllu // push <"m"> (12)
ltlltlu // copy <" "> (from 2)
llltllltu // push <"r"> (17)
llltttlu // push <"o"> (14)
llltltu // push <"f"> (5)
ltllttu // copy <" "> (from 3)
ltllttlu // copy <"y"> (from 6)
lllttu // push <"d"> (3)
llltlttlu // push <"w"> (22)
llltttlu // push <"o"> (14)
ltlltttu // copy <"r"> (from 7)
ltlltltu // copy <" "> (from 5)
ltlltlu // copy <"o"> (from 2)
lul // dup "o"
llltllttu // push <"t"> (19)
ltllttu // copy <" "> (from 3)
ltlltu // copy <"t"> (from 1)
llltlltlu // push <"s"> (18)
llltltllu // push <"u"> (20)
llltlltu // push <"j"> (9)
llltllltttu // push <"("> (71)
ltlltltu // copy <" "> (from 5)
lllttu // push <"d"> (3)
llltllu // push <"e"> (4)
ltlltttu // copy <"t"> (from 7)
llltttlu // push <"o"> (14)
ltlltttu // copy <"u"> (from 7)
llltllllu // push <"q"> (16)
ltllttlu // copy <" "> (from 6)
lllttlllu // push <"y"> (24)
llltlttu // push <"l"> (11)
llltlltlu // push <"s"> (18)
ltlltltu // copy <"u"> (from 5)
llltttlu // push <"o"> (14)
llltlllu // push <"i"> (8)
llltltttu // push <"x"> (23)
ltlltlu // copy <"o"> (from 2)
lllttltu // push <"n"> (13)
llltu // push <"b"> (1)
ltlltlu // copy <"o"> (from 2)
ltlltlttu // copy <" "> (from 11)
llltttu // push <"h"> (7)
llltllttu // push <"t"> (19)
llltllu // push <"e"> (4)
llltu // push <"b"> (1)
llllu // push <"a"> (0)
lllttlltu // push <"z"> (25)
llltlllu // push <"i"> (8)
llltlttu // push <"l"> (11)
lllttlltllu // push <"E"> (100)
// output string
ullu // label 0
  // add 97 (128) before printing
  lllttlllltu // push 97
  tlll // add
  llltlllllllu // push 128
  tltt // mod
  tull  // print top of stack

  // break loop if EOS
  lul   // dup
  lllttltlu // push EOS
  tllt // subtract
  utltu // jump to 1 if top of stack is zero
uluu // jump to 0

ulltu // label 1
uuu

この空白プログラム自体はかなり単純ですが、ゴルフの最適化には3つの方法があります。

  • lul重複する文字がある場合にスタックを複製するために使用します
  • ltl文字を直接プッシュするよりも短い場合、スタックのn番目のエントリを複製するために使用します
  • すべてのバイトを97(mod 128)だけシフトダウンし、2進数を小さくします

人間が読めるホワイトスペースコードを実際のホワイトスペースプログラムに変換する単純なルビースクリプト(ファイルprog.hを読み取り、ファイルに書き込むprog.ws):

WHITESPACE = "l"
NEWLINE = "u"
TAB = "t"

File.open('prog.ws','w') do |fout|
    code = ""
    fin = File.read('prog.h')
    fin.each_line do |line|
        line.gsub!(/\/\/.*/,'')
        line.scan(/#{NEWLINE}|#{WHITESPACE}|#{TAB}/i) do |x|

            code << case x.downcase
            when NEWLINE.downcase
                "\n"
            when WHITESPACE.downcase
                " "
            when TAB.downcase
                "\t"
            else
                ""
            end
        end
    end
    fout << code
end

末尾の改行はオプションであり、印刷しないことで数文字を保存できます。
durron597

おかげで、変更しました。元々、Haskellインタープリターがデバッグ出力を追加したため、これを含めましたが、ルビーの場合はきれいに見えます。
ブルトレンジ

7

Ruby 144バイト* 39一意= 5616

puts"Elizabeth obnoxiously quoted (just too rowdy for my peace): \"#{'the quick brown fox jumps over the lazy dog,'.upcase}\" giving me a look."

時には、最もシンプルなものが最高です。


データでは単純化を使用しません。cjamとwhitespaceの例は、いくつかの説明とともに印象的なスコアを獲得しました。健全な言語で整頓されたコードを使用することのボーナスがあっても、それを補うにはあまりにも大げさです!!! たぶん、あなたは長さ+ユニークなスコアリングコンテストに再参加することができます。
Jose_X

6

Brainfuck、1264バイト* 7一意= 8848

ええ、それはひどいスコアです。

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

私は少ないユニークな文字を使用することが可能だことがわかったが、長さは10795になり、5倍= 53975.
mbomb007

あなたはそれ+.がそれよりも小さいだろうという確信がないだけでそれを行うことができます。
captncraig

のみ+を使用すると.、15018 * 2 =になり30,036ます。
captncraig

6

> <>(魚)-578バイト* 8一意= 4624

14121412412431421124321110441421130402401433401430421141143114240333221142303303210321143224241321121343212340321131301320302344221132340304221130322340321313221100323234202311321143224241341121131213110444324310422421114441421142412420421114400443412442421112412413421113403423411403121100410413412423432421114431403423412401404412402434312421140413410434324324401431443243*3*3+3*1+00p44*4+3*2+01p44*3*4+1+11p44*3*4+1+21p43+3*2*31p43+3*2*41p43*3*41+1p44*3*4+1+42+1p43+3*2*43+1p43+3*2*1+44+1p43+3*2*1+33*1p43*3*3*3+33*1+1p43*3*3*33*2+1p43+3*3*43*1p44*2*1+43*1+1p44*3+3*2+43*2+1p

私のスコアは私が望んでいたほど競争力はありませんが、このソリューションは投稿するにはまだ十分に面白いと思いました。

説明

コードの最初のセクションは、文字列の各文字の3桁の基数5表現を表す0〜4の数字の長い文字列です。残りのコードはp、プログラムの実行中にプログラムのソースコードを編集できるFish の演算子を利用します。その演算子を使用することで、基数5の文字を基数10に変換して出力するために必要なFishコードを生成し、インタープリターが終了する前にそのコードをファイルの先頭のソースコードに戻すことができましたラインのとラップアラウンド。インタープリターが行末に到達すると、コードは次のように変更されます。

v4121412412431421124321110441421130402401433401430421141143114240333221142303303210321143224241321121343212340321131301320302344221132340304221130322340321313221100323234202311321143224241341121131213110444324310422421114441421142412420421114400443412442421112412413421113403423411403121100410413412423432421114431403423412401404412402434312421140413410434324324401431443243*3*3+3*1+00p44*4+3*2+01p44*3*4+1+11p44*3*4+1+21p43+3*2*31p43+3*2*41p43*3*41+1p44*3*4+1+42+1p43+3*2*43+1p43+3*2*1+44+1p43+3*2*1+33*1p43*3*3*3+33*1+1p43*3*3*33*2+1p43+3*3*43*1p44*2*1+43*1+1p44*3+3*2+43*2+1p
>55**$5*++ol?!; 

コードがラップアラウンドしてv演算子にヒットすると、2行目に移動し、>演算子にヒットしてループに進みます。そのたびに、ベース5エンコードをベース10アスキー値に変換して出力します。スタックに値がなくなると、?演算子はスキップし;てプログラムが終了します。


5

7、273バイト×7ユニークバイト= 1911、非競合(言語postdatesチャレンジ)

501513010250341012432044041204045104011053033043511402401130443235151151105240424404004144031133304214014044433043401032201433022042551243201043511102223044114403120042140450415114434050440500114042432010430032533041340424320250451514210501020420444010403043040402343447403

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

残念ながら、これは古い挑戦であり、最新の言語では勝てないということです。しかし、この言語は課題に関する知識がなくても作成されましたが(「関連する質問」で偶然偶然見つけました)、それでもほぼ完全に適合することが判明しました。

通常、PPCGの7つのプログラムはパック形式で送信され、8つのコマンドを3バイトにパックします(言語には12のコマンドがありますが、ソースファイルに表示できるのは8つだけで、3ビットで十分です)。ただし、この言語は、各コマンドがASCII数字として書き込まれる8進形式もサポートしています。これはここで使用したものです。つまり、7バイトだけが使用されます(6印刷するプログラムではコマンドは不要です)単純な文字列)。

プログラムは非常に簡単です。それは2つのスタック要素で構成されます。逐語的に印刷される長い文字列7、要素を分離するため(残念ながらやむを得ない)、4037で定数文字列を印刷する簡単な方法です(402番目のスタック要素をエスケープしながら、スタックの一番上、それを3印刷し、古い最初のスタック要素、つまり403それ自体を破棄します)。

では、269バイトという短い文字列をどのように取得しましたか?7は複数のI / O形式をサポートし、その形式の1つはUS-TTYです。これは、ASCIIが発明される前に広く使用されていた文字セット(具体的には、Baudotのバリアント)です。(5第二スタック要素の開始時、つまりプログラムの開始、文字列のエンコーディングを指定します。残りは、文字列の内容そのものである)これは、5ビットの文字セットだし、コマンド05一貫してエスケープせずに文字列に安全に保存できるため(一度エスケープすると元の文字が正確に再現されます)、言語はコマンドのペア(36オプション)を使用してUS-TTYの文字をエンコードします(32オプション、4を使用) 7インタープリター自体へのディレクティブ)。もちろん、人々が出力したい32以上のユニークな文字があり(そして32以上の文字が文字列に現れる)、2つの文字は4つの文字セット(大文字、小文字を切り替える「シフトコード」です) 、数字、および7が他の文字セットにない残りのASCII文字に使用するユーザー定義の「数字の拡張子」;ただし、文字列内のすべての文字はUS-TTYでは「ネイティブ」であるため、拡張機能は重要ではありませんでした)。ここに'

Ełlizabeth obnoxiously quoted Ø(Łłjust too rowdy for my peaceØ):
"ŁTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOGØ," Łłgiving me a lookØ.

124文字の入力に追加される10シフトを数えますが、その割合はごくわずかです。そのため、入力文字ごとに2バイトを超える入力のみを使用し、7ユニークバイトを掛けることができるということは、このチャレンジのスコアが非常に高いことを意味します。(この課題のために特別に設計された言語は、既存の文字セットではなく何らかの文字列圧縮を使用しますが、BaudotとUS-TTYはゴルフ用に設計されていませんが、それでもかなり簡潔です)


その抜け穴は、挑戦に答えるために言語を書くことを防ぐことですが、これは明らかにそうではありません。まだ私からの賛成に値するが、これまでで最低のスコアを持っているにもかかわらず受け入れられない。
durron597 16

2

Python 2、163 147 145 143バイト* 35 36 35 unique = 5705 5292 5220 5005

それはおそらく私が手に入れるのと同じくらい良いことです。

編集:

  1. .capitalize()の使用を支持して削除されましたE
  2. 'バックスラッシュのエスケープ引用符の代わりに使用するように変更されました。
  3. ステートメントで+カンマを使用するための削除されたスペースprint
print"Elizabeth obnoxiously quoted (just too rowdy for my peace):",'"the quick brown fox jumps over the lazy dog,"'.upper(),"giving me a look."

バイナリまたは16進数から始めて文字列に変換することを検討しましたが、変換プロセスでは利点が失われます。
mbomb007

2

Python 2、14508 11700 11088 10164 9486 9746 7860 145バイト* 36一意= 5220

タイトルを見て、これはかなり冗長なPythonにとって興味深い挑戦だと思いました。これらはこの問題に取り組んだときのメモです。

私の最初の試みはユニークを31に減らしました:

print''.join(chr([69,108,105,122,97,98,101,116,104,32,111,98,110,111,120,105,111,117,115,108,121,32,113,117,111,116,101,100,32,40,106,117,115,116,32,116,111,111,32,114,111,119,100,121,32,102,111,114,32,109,121,32,112,101,97,99,101,41,58,32,34,84,72,69,32,81,85,73,67,75,32,66,82,79,87,78,32,70,79,88,32,74,85,77,80,83,32,79,86,69,82,32,84,72,69,32,76,65,90,89,32,68,79,71,44,34,32,103,105,118,105,110,103,32,109,101,32,97,32,108,111,111,107,46][r])for r in range(124))

もっとうまくやれると思った。を使用することでmap、一意の数は26になりました。

print''.join(map(chr,(69,108,105,122,97,98,101,116,104,32,111,98,110,111,120,105,111,117,115,108,121,32,113,117,111,116,101,100,32,40,106,117,115,116,32,116,111,111,32,114,111,119,100,121,32,102,111,114,32,109,121,32,112,101,97,99,101,41,58,32,34,84,72,69,32,81,85,73,67,75,32,66,82,79,87,78,32,70,79,88,32,74,85,77,80,83,32,79,86,69,82,32,84,72,69,32,76,65,90,89,32,68,79,71,44,34,32,103,105,118,105,110,103,32,109,101,32,97,32,108,111,111,107,46)))

この頃、質問テキストで、スコアがuniques * bytes一意であるだけでなく、であることに気付きました!つまり、上記の私のスコアは14508と11700でした。あまり競争的ではありません。そこで、テキストを16進文字列として保存することでバイト数を減らします。

# 308*36 = 11088
print''.join(chr(int('456c697a6162657468206f626e6f78696f75736c792071756f74656420286a75737420746f6f20726f77647920666f72206d79207065616365293a202254484520515549434b2042524f574e20464f58204a554d5053204f56455220544845204c415a5920444f472c2220676976696e67206d652061206c6f6f6b2e'[i*2:i*2+2],16)) for i in range(124))

サイズは小さくなりましたが、よりユニークなキャラクターになりました。しかし、32オフセットでパックされた2桁の10進数文字列を使用した場合:

# 308*33 = 10164
print''.join(chr(int('37767390656669847200796678798873798583768900818579846968000874858384008479790082798768890070798200778900806965676909260002524037004953413543003450475546003847560042534548510047543750005240370044335857003647391202007173867378710077690065007679797514'[i*2:i*2+2])+32) for i in range(124))

これには同じバイト数がありますが、3個の固有値が保存されます。

新しい計画を立てます。7ビット文字でPythonの長整数型をパックする場合、シフトすることでそれぞれを抽出できます。

# 306*31 = 9486
h=1073974643401006528619595312441225198653732186368270382545648881135648217524502741093886285232362673460172159947573049818819511630304840724474679255867143965214892747087773876949021986013520804726327302180335979259392708372721217579101211940864406962137554744750
w=''
while h:w=chr(h&127)+w;h>>=7
print w

それで、スコアは9486に減りました。興味深い実験ですが、十分に近いものではありませんでした。関数名を削除して、文字列の書式設定に依存している場合はどうなりますか?

# 443 * 22 = 9746
print('%c'*124)%(69,108,105,122,97,98,101,116,104,32,111,98,110,111,120,105,111,117,115,108,121,32,113,117,111,116,101,100,32,40,106,117,115,116,32,116,111,111,32,114,111,119,100,121,32,102,111,114,32,109,121,32,112,101,97,99,101,41,58,32,34,84,72,69,32,81,85,73,67,75,32,66,82,79,87,78,32,70,79,88,32,74,85,77,80,83,32,79,86,69,82,32,84,72,69,32,76,65,90,89,32,68,79,71,44,34,32,103,105,118,105,110,103,32,109,101,32,97,32,108,111,111,107,46)

現在、私は22個のユニークしか持っていませんが、スコアは改善しません。

わかりました、明白な方法を取り、ちょうど文字列を印刷した場合:

# 131*60 = 7860
print'Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.'

7860のスコア。最初にこれを行う必要がありました。しかし、私はそれほど多くを学ばなかったでしょう。

大文字の部分を動的に生成した場合、一意性を26減らすことができると思います。

# 145*36 = 5220
print'Elizabeth obnoxiously quoted (just too rowdy for my peace): '+'"the quick brown fox jumps over the lazy dog,"'.upper()+' giving me a look.'

Pythonは5220よりも良くなるとは思いません。Pythonでユニークな文字を最小化する作業は確かに有益でした。

更新:mbomb007には5005を獲得するより優れたPythonソリューションがあります。


ソリューションの最適化+1。あなたが提案したようにタイトルを編集しました。
ロジックナイト

1

> <>(魚) -138バイト* 65一意= 8970

単純なルート、つまりHello World:

!v'Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.'r!
 >l?!;o

まあ、> <>への私の最初の進出のために、これは挑戦でした。私はいくつかの改善を見ていると思いますが、それを学ぶのは楽しかったです:)

または、過度に複雑にする-1567バイト* 27一意= 42309

!\f8+3*:o2*f2*-:o3-:of+2+:ofa+-:o1+:o3+:of+:oc-:o\7+:od-:oc+:o1+:o9+: of-:o6+:o6+:o2-:o7-: od+:o\8-:o4+:o6-:o5+:of -:o1-:o\\6+:ob+ :o2-:o1+:o\:o5-:o:o\3+ :o3-:o8+:of4+-:oab ++:o\f4+-:o9+ :o3+: o\!
!5:of+a+:o1-:off+2+o:f-6-oa-:o8-:of3*1-:oa-:o2-:!fo3*7+:o2+:o:d+o:o5!f+:o7-:off+2+o6+:o8-!f:off!f+2+o4-:off+2+ob+!f:o3+::\ff    f f          f        f  f                  f    f        f     \!f-
 -                                               f                   f                    f     f                 f       ff    3 f          f        f  f                  f    f        f       f
 :                                               +                   +                    +     +                 +       ++    * +          +        +  +                  +    +        +       +
 o                                               2                   2                    2     2                 2       2a    1 2          2        2  2                  2    2        2       2
 c                                               +                   +                    +     +                 +       ++    + +          +        +  +                  +    +        +       +
 +                                               o                   o                    o     o                 o      \oo4-o \ o;         o        o  o                  o    o        o       o
 \:off+2+o9-:ob-:o4-:o2+:o2+:of4*%:of2++:o2,3+:o2 +:o3*f-3-:oc-:o3-:o\c+:o4+:oc-:o6-:o8+:o\9-:of 1++:o3-:o8+:o9-:o\8-:o9+:  o9+: o\e-:ob+:o8- :o3+:o3+ :o\4-:o7+:o2-f-:od+:o\2+:o c-:o3-:o\7+:ob\

文字列を逆方向に書くと、rスタックを反転させてドロップできます:)またo、2行目の先頭の空白にファイナルを移動できます。
Sp3000

@ Sp3000ヒントをありがとう!
Vlad274

f f + 2 + o複雑なものに何度も入らないようにする方法はありますか?
mbomb007

最良の方法では、大文字にする簡単な方法はありますか?文字列のその部分のそれぞれに32を追加するサブルーチンをループして、いくつかの一意の文字を保存しますか?
mbomb007

@ mbomb007レジスタを使用してそれを最適化することも、ソースコード自体からスペースを読み取ることもできます。私は魚が初めてなので、それが可能かどうかわかりません
-Vlad274

1

05AB1E、380バイト* 11文字= 4180スコア

これは潜在的に競合しない

"234413410442342343401431404112421343420421440410421432430413441112423432421431401400112130411432430431112431421421112424421434400441112402421424112414441112422401342344401131213112114314242234112311320243232300112231312304322303112240304323112244320302310313112304321234312112314242234112301230330324112233304241134114112403410433410420403112414401112342112413421421412141"3ô5öçJ

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

結合されたASCII文字のベース5表現をプッシュします。
3個に分割し、10進数に戻します。
ASCII整数を文字に変換します。
一緒に戻ります。


0

Perl 6、139バイト* 36一意= 5004

say 'Elizabeth obnoxiously quoted (just too rowdy for my peace): "'~"the quick brown fox jumps over the lazy dog".uc~'," giving me a look.'

0

Java 8、141バイト* 64の一意の文字= 9,024

()->{return"Elizabeth obnoxiously quoted (just too rowdy for my peace): \"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG,\" giving me a look.";}

141バイト、64個の一意の文字。単純な「文字列を返す」以外の方法では、使用する文字をあまり節約せずにバイト数を増やします。



0

Tcl、345バイト、345 x 13 = 4485

\160\165\164\163 [\163\165\142\163\164 [\162\145\147\163\165\142 \55\141\154\154 \50\\\144\\\144\51 "055451724142456450 5742565770515765635471 616557644544 \5052656364 645757 6257674471 465762 5571 6045414345\51\72 \"241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\"\54 475166515647 5545 41 54575753" \\\\1\\1]]\56

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


Tcl、337バイト、337 x 15 = 5055

\160\165\164\163 [\163\165\142\163\164 [\162\145\147\163\165\142 \55\141\154\154 (\\\144\\\144) "055451724142456450 5742565770515765635471 616557644544 (52656364 645757 6257674471 465762 5571 6045414345)\72 \"241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\"\54 475166515647 5545 41 54575753" \\\\1\\1]]\56

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

Tcl、329バイト、329 x 16 = 5264

\160\165\164\163 [\163\165\142\163\164 [\162\145\147\163\165\142 \55\141\154\154 (\\d\\d) "055451724142456450 5742565770515765635471 6165576445d (52656364 645757 625767d71 465762 5571 6045414345)\72 \"241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\"\54 475166515647 5545 41 54575753" \\\\1\\1]]\56

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


Tcl、333バイト、333 x 16 = 5328

\160\165\164\163 [\163\165\142\163\164 [\162\145\147\163\165\142 \55\141\154\154 (\\d\\d) "055451724142456450 5742565770515765635471 6165576445d \5052656364 645757 625767d71 465762 5571 6045414345\51\72 \"241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\"\54 475166515647 5545 41 54575753" \\\\1\\1]]\56

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


Tcl、148バイト、148 x 37 = 5476

puts "Elizabeth obnoxiously quoted (just too rowdy for my peace): \"[string tou "the quick brown fox jumps over the lazy dog"],\" giving me a look."

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

Tcl、277バイト、277 x 21 = 5817

\160u\164s [subs\164 [\162\145\147sub \55\141\154\154 (\\d\\d) "0554517241b456450 ob56o7051ous5471 61uo6445d(52us64 64oo 62o67d71 46o62 5571 6045414345): 241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\" 475166515647 5545 41 54oo53" \\\\1\\1]]\56

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

Tcl、371バイト、371 x 16 = 5936

puts "\105\154\151\172\141\142\145t\150 o\142\156o\170\151ous\154\171 \161uot\145\144 \50\152ust too \162o\167\144\171 \146o\162 \155\171 p\145\141\143\145\51\72 \"\124\110\105 \121\125\111\103\113 \102\122\117\127\116 \106\117\130 \112\125\115\120\123 \117\126\105\122 \124\110\105 \114\101\132\131 \104\117\107\54\" \147\151\166\151\156\147 \155\145 \141 \154oo\153\56"

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

Tcl、401バイト、401 x 16 = 6416

puts "\105\154\151\172\141\142\145\164\150 o\142\156o\170\151o\165\163\154\171 \161\165o\164\145\144 \50\152\165\163\164 \164oo \162o\167\144\171 \146o\162 \155\171 \160\145\141\143\145\51\72 \"\124\110\105 \121\125\111\103\113 \102\122\117\127\116 \106\117\130 \112\125\115\120\123 \117\126\105\122 \124\110\105 \114\101\132\131 \104\117\107\54\" \147\151\166\151\156\147 \155\145 \141 \154oo\153\56"

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


Tcl、403バイト、403 x 16 = 6448

puts "\105\154\151\172\141\142\145\164\150 o\142\156o\170\151o\165\163\154\171 \161\165o\164\145\144 \50\152\165\163\164 \164oo \162o\167\144\171 \146o\162 \155\171 \160\145\141\143\145\51\72 \42\124\110\105 \121\125\111\103\113 \102\122\117\127\116 \106\117\130 \112\125\115\120\123 \117\126\105\122 \124\110\105 \114\101\132\131 \104\117\107\54\42 \147\151\166\151\156\147 \155\145 \141 \154oo\153\56"

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


Tcl、433バイト、433 x 15 = 6495

puts "\105\154\151\172\141\142\145\164\150 \157\142\156\157\170\151\157\165\163\154\171 \161\165\157\164\145\144 \50\152\165\163\164 \164\157\157 \162\157\167\144\171 \146\157\162 \155\171 \160\145\141\143\145\51\72 \42\124\110\105 \121\125\111\103\113 \102\122\117\127\116 \106\117\130 \112\125\115\120\123 \117\126\105\122 \124\110\105 \114\101\132\131 \104\117\107\54\42 \147\151\166\151\156\147 \155\145 \141 \154\157\157\153\56"

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

Tcl、473バイト、473 x 14 = 6622

puts \105\154\151\172\141\142\145\164\150\40\157\142\156\157\170\151\157\165\163\154\171\40\161\165\157\164\145\144\40\50\152\165\163\164\40\164\157\157\40\162\157\167\144\171\40\146\157\162\40\155\171\40\160\145\141\143\145\51\72\40\42\124\110\105\40\121\125\111\103\113\40\102\122\117\127\116\40\106\117\130\40\112\125\115\120\123\40\117\126\105\122\40\124\110\105\40\114\101\132\131\40\104\117\107\54\42\40\147\151\166\151\156\147\40\155\145\40\141\40\154\157\157\153\56

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

Tcl、133バイト、133 x 60 = 7980

puts "Elizabeth obnoxiously quoted (just too rowdy for my peace): \"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG,\" giving me a look."

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



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