压低唯一字符


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在沙箱中对此进行了一些辩论,最终我决定没有办法真正达到公平的竞争环境。请注意,无论如何,空白和失眠的得分最高!
durron597

2
正如我在某处所写的那样,如果我们假设使用更多字节来补偿较少的唯一字符,其行为类似于将数字转换为不同的基数,则近似为bytecount~Log(X,unique),其中X表示此问题的常数。因此,唯一^ bytecount〜常量。计算此分数(log2)得出python2_mbomb007 728, python2_carpetpython 744, ruby 756, Fish 825, Insomnia 1148, cjam 1277, whitespace 1484, brainfuck 3546。因此,除了
脑力激荡的

Answers:


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。换句话说,它们操纵单个字节中的位并打印出结果。


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,并将其编码为程序中的十进制数。然后,程序将该数字转换回以123为基数,并将每个以123为基数的数字映射回一个字符。因为很难解释为什么程序处于当前状态,所以我将解释它的每个版本。

这是第一个版本中程序结尾的样子:

...2068438725 123b:c

这将以最直接的方式实施该策略。该数字通常以10为底进行编码,然后转换回123,然后将每个123数字映射回一个字符。但这使用了4个唯一的非数字字符,并且由于不必使用简单易懂的代码,因此能够摆脱其中的任何一个字符可能都值得大笔投资。

首先,我意识到,我可以摆脱的b:在运行时创建它们作为自己ASCII字符值转换回一个字符(与已存在的运营商c运营商),并与他们评估~操作。事实证明,使用:运算符执行此操作有些棘手,因为必须将其与以下c运算符一起解析。我通过产生字符解决了这个:c,然后生产和评估的字符+,其中前两个字符连接成字符串:c,然后可以适当的评估。

其次,我意识到~刚刚介绍的运算符有一个方便的新重载变量:给定数字时,它会产生按位补码。通过在数字后连续两次使用此符号,我可以在源中引入令牌中断,而不会产生任何计算效果,允许我使用来代替用于分隔数字的空格~~

最终结果是最后增加了15个字节的代码,但是从14个字符中消除了2个唯一字符的好处大大超过了此成本。这是第一个版本末尾与第二个版本末尾的比较:

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

使用少于我使用的两个运算符是不可能的,但是我仍然希望更少的唯一字符。因此,下一步就是消除数字。通过更改数字的编码,使每个十进制数字实际上都是以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 2015年

@ 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您应该安装空白程序。4134足以获得第二名
durron597

16

空格,1157 937字节* 3唯一= 3471 2811

根据Popular(?)请求,我要发布空白解决方案。

为了减少所需的代码,我将整个字符串硬编码为一个二进制数(每个字节7位)。一个简单的循环提取字符并打印出来。

filebin.ca上的源代码。

注意: 规范允许使用任意大整数,但是官方页面上的Haskell解释器仅限于20位。例如,在github / hostilefork / whitespaces上使用此ruby解释器。

用于创建空白程序的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=3(并且b=2几乎一样好)。即,当您使用更高的基数(对数)时,长度会略有减少,但是字符集的大小会线性增加,因此不值得。

因此,我寻找一种只有0/1的语言,但没有找到任何语言,然后我想起有空格并尝试了它。在空格中,您可以直接输入带有0和1的二进制数。


旧代码,得分更差,但更有趣

filebin上的旧代码。

我用于创建程序的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.' + "\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

这个空白程序本身很简单,但是有三个高尔夫优化方法:

  • 利用lul克隆组时,有一个重复的字符
  • 用于ltl克隆堆栈的第n个条目(如果其长度小于直接推入char的长度)
  • 将所有字节向下移97(mod 128),使二进制数更小

一个简单的ruby脚本,将我可读的空白代码转换为实际的空白程序(读取文件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 2015年

谢谢,改变了它。最初,我之所以包含它,是因为Haskell解释器添加了一些调试输出,但是对于ruby,它看起来很干净。
blutorange 2015年

7

红宝石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和空白示例得到了令人印象深刻的分数以及一些解释。即使使用理智的语言使用整洁的代码有好处,但弥补它的理由太多了!!!也许您可以重新参加长度+独特的计分比赛。
Jose_X 2015年

6

Brainfuck,1264字节* 7唯一= 8848

是的,这是一个糟糕的成绩。

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

我发现它可以使用更少的唯一字符,但长度是10795,次5 = 53975.
mbomb007

您可以这样做,但+.不确定它会更小。
captncraig 2015年

仅使用+.我得到15018 * 2 = 30,036
captncraig 2015年

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

我的分数没有我希望的那么有竞争力,但是我认为这个解决方案仍然足够有趣。

说明

代码的第一部分是数字0-4的长字符串,它表示字符串中每个字符的3位5进制表示。其余代码利用了pFish 中的运算符,该运算符使您可以在程序运行时编辑程序的源代码。通过使用该运算符,我能够生成将基数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运算符时,它下降到第二行,击中>运算符并继续循环,每次将以5为底的编码转换回以10为底的ascii值,然后输出该值。当堆栈上没有更多值时,?操作员将跳至,;程序将结束。


5

7,273字节×7个独特字节= 1911,非竞争性(语言晚于挑战)

501513010250341012432044041204045104011053033043511402401130443235151151105240424404004144031133304214014044433043401032201433022042551243201043511102223044114403120042140450415114434050440500114042432010430032533041340424320250451514210501020420444010403043040402343447403

在线尝试!

不幸的是,这是一个古老的挑战,这意味着我无法获得一种最新的语言。但是,这种语言是在没有挑战的情况下创建的(我只是在“相关问题”中偶然发现了它),但是事实证明,这是非常合适的。

PPCG上的7个程序通常以打包格式提交,将八个命令打包为三个字节(该语言有十二个命令,但是在源文件中只能出现八个命令,这意味着三个位就足够了)。但是,该语言还支持八进制格式,其中每个命令都以ASCII数字编写,这就是我在这里使用的格式,这意味着仅使用了七个不同的字节(该6命令在仅打印的程序中不是必需的一个简单的字符串)。

该程序非常简单;它由两个堆栈元素组成,一个长字符串仅逐字打印,a 7用于分隔元素(不幸的是不可避免),403这是在7中打印常量字符串的简单方法(40转义第二个堆栈元素,同时将其移至栈顶,然后3打印并丢弃旧的第一个栈元素,即403本身。

那么,如何获得短至269个字节的字符串?7支持多种I / O格式,其中一种格式是US-TTY,这是一种字符集(特别是Baudot的变体),在发明ASCII之前就已广泛使用。(5在第二个堆栈元素的开头(即程序的开头)指定了字符串的编码;其余部分是字符串内容本身。)这是一个五位字符集,命令0用于5可以安全地存储在字符串中,同时始终保持未转义的状态(这样,转义一次即可准确地复制原始字符),因此该语言使用成对的命令(36个选项)对US-TTY字符进行编码(32个选项,其中4个用于7解释器本身的指令)。当然,人们可能希望输出32个以上的唯一字符(字符串中会出现32个以上的字符),因此其中两个字符是“移位码”,可以在四个字符集之间切换(大写字母,小写字母) ,数字和用户定义的“图形扩展名”,其中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个字符的输入上,这个比例几乎可以忽略不计。这样,每个输入字符只能使用两个字节以上的输入乘以7个唯一字节的能力,这意味着此挑战的得分非常好。(我猜想一种专门针对此挑战而设计的语言将使用某种字符串压缩,而不是预先存在的字符集,但是即使Baudot和US-TTY并不是为打高尔夫球而设计的,它们仍然相当简洁)


这个漏洞是为了防止为了回答挑战而写语言,这显然不是。尽管我的分数最低,但我还是不能接受,尽管我仍然不能接受。
durron597

2

Python 2中,163 147 145 143个字节× 35 36 35独特= 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."

我尝试着从二进制或十六进制开始,然后转换为字符串,但是在转换过程中却失去了好处。
mbomb007'3

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。现在,我通过将文本存储为十六进制字符串来减少字节:

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

尺寸减小了,但字符更加独特。但是,如果我使用带32偏移量的压缩2位十进制字符串:

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

它具有相同的字节数,但保存3个唯一性。

我制定了一个新计划。如果我将Python长整数打包成7位字符,则可以通过以下方式提取每个整数:

# 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有一个更好的Python解决方案,得分5005。


解决方案+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移至第二行开头的空白处。
Sp3000

@ Sp3000感谢您的提示!
Vlad274 2015年

您有什么办法可以避免f f + 2 + o在复杂的情况下经历如此多次?
mbomb007'3

在最好的情况下,是否有一种简单的大写方法?循环遍历一个子例程,该子例程在字符串的该部分的每个子例程中添加32,从而为您节省了一些独特的字符,也许吗?
mbomb007'3

@ mbomb007我可以使用寄存器优化它,或者甚至可以从源代码本身读取一个空格。我是Fish的新手,所以我不知道这是否可能
Vlad274'3

1

05AB1E,380字节* 11个字符= 4180得分

这可能是不竞争的

"234413410442342343401431404112421343420421440410421432430413441112423432421431401400112130411432430431112431421421112424421434400441112402421424112414441112422401342344401131213112114314242234112311320243232300112231312304322303112240304323112244320302310313112304321234312112314242234112301230330324112233304241134114112403410433410420403112414401112342112413421421412141"3ô5öçJ

在线尝试!

将ASCII字符的基数5表示推到一起。
分成三部分,转换回十进制。
将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

Perl 5,137字节* 35唯一= 4795

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

在线尝试!


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."

在线尝试!



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.