两种力量的演变


34

这是最初由用户Helka Homba撰写的《 Hello World!》演变的转贴。

由于此处存在元共识,因此不应将其作为重复项关闭。

最初是在两年前被问到的,最后一次活跃在六个月前。我有权从赫尔卡Homba张贴此位置

自原始版本以来,已经发明了许多语言,并且许多人加入了该站点,却再也没有机会回答原始版本,因此我认为这种重新发布是可以接受的。


面临的挑战是制作一个可以输出2^n到stdout 的程序,程序n的编号在哪里。值得注意的是,在您提交的答案中,您的程序与程序之间的Levenshtein距离必须为10或更小。

这将如何工作

下面,我将使用C#提交第一个答案,该答案将显示2 ^(n = 1)= 2

下一位要回答的人必须使用最多10个单字符插入,删除或替换来修改代码,以便当以新答案的语言运行该代码时,它会打印2^n(带有n答案编号)。例如,第25个答案(假设它在Pyth中)将显示2 ^ 25或33554432。

这将一直持续到所有人陷入困境,因为没有新语言时,只需更改10个字符就可以运行最后一个答案的程序。共同的目标是看我们能保持多长时间,所以请不要进行任何晦涩或不必要的字符编辑(但这不是必需的)。

格式化

请按以下格式设置您的信息:

#Answer N - [language]

    [code]

[notes, explanation, observations, whatever]

其中N是答案编号(递增,N = 1、2、3,...)。

您不必知道更改了哪些确切字符。只要确保Levenshtein距离是0到10。

如果您使用某种语言回答,或者得到的代码只是一团糟,说明您做了什么以及为什么起作用,尽管这不是必需的。

规则

了解这一挑战的关键在于,一次只能一个人回答,每个答案取决于之前的回答

永远不会有两个答案使用相同的N。如果两个人碰巧同时回答某个N,则稍后回答的那个人(即使相差几秒钟)也应该大方删除他们的答案。

此外...

  • 用户不能连续提交两个答案。(例如,由于我提交了答案1,所以我不能回答2,但是我可以回答3。)
  • 尽量避免在短时间内发布过多答案。
  • 每个答案必须使用不同的编程语言。
    • 您可以使用语言的不同主要版本,例如Python 2/3
    • 如果传统上使用两种不同的名称来称呼语言,则它们被视为不同的语言。(此处可能会有一些歧义,但不要让那毁了比赛。)
  • 您不必坚持使用ASCII,可以使用所需的任何字符。Levenshtein距离将以unicode 字符进行度量。
  • 输出应为2^n,不得为其他字符。(引导/尾随空格很好,如>>>或不可抑制的输出也可以ans=
  • 如果您的语言没有标准输出,请使用通常用于快速输出文本的任何内容(例如,console.logalert在JavaScript中)。
  • 当必须输出的2的幂变大时,您可能会假定内存无限,但不是整数大小。请注意整数溢出。
  • 您可以使用科学计数法或最自然的数字表示方式。(除一元以外,请勿以一元输出)

请确保您的答案有效。我们不想意识到有五个答案会中断。无效的答案应迅速解决,或者在有其他答案之前将其删除。

除非绝对必要,否则不要编辑答案。

计分

一旦事情解决,提交最多(有效)答案的用户将获胜。领带最多的累积投票给用户。

发布答案时编辑这些内容:

排行榜

13种语言

奥克斯

8种语言

齐柏林飞艇

4种语言

帕维尔(Pavel
Jonathan Allan)
Kritixi Lithos
Riker

3种语言

Boboquack

2种语言

bmarks
Conor O'Brien可
破坏西瓜
ovs
Tom Carpenter

1种语言

ATaco

丹尼斯
dzaima
埃里克Outgolfer
ETHproductions
ghosts_in_the_code
利奥
林恩·
马修斯Avellar
纳撒尼尔
Qwerp-DERP
R.甲
泰勒·斯科特
NIMI
Mistah菲金斯
PidgeyUsedGust
steenbergh

到目前为止使用的语言:

  1. C#(帕维尔)
  2. ///(boboquack)
  3. 视网膜(丹尼斯)
  4. 果冻(乔纳森·艾伦)
  5. Pyth(boboquack)
  6. > <>(可破坏西瓜)
  7. Minkolang(Kritixi石版画)
  8. Perl(帕维尔)
  9. Python(Qwerp-Derp)
  10. 直流(R.Kap)
  11. 木炭(乔纳森·艾伦)
  12. 自我修改BrainFuck(Leo)
  13. SOGL(dzaima)
  14. ShapeScript(乔纳森·艾伦)
  15. 派克(boboquack)
  16. 露比(纳撒尼尔)
  17. 05AB1E(ovs)
  18. STATA(bmarks)
  19. 卑诗省(Kritixi Lithos)
  20. 杰普(Okx)
  21. 2黑貂(Kritixi Lithos)
  22. 切达(乔纳森·艾伦)
  23. 塔(Oxx)
  24. 重击(齐柏林飞艇)
  25. 随便(Oxx)
  26. CJam(Outgolfer的Erik)
  27. MATL(Okx)
  28. MATLAB(汤姆·卡彭特)
  29. 八度(Kritixi Lithos)
  30. R(ovs)
  31. JavaScript ES7(汤姆·卡彭特)
  32. 凸面(Okx)
  33. Mathematica(ghosts_in_the_code)
  34. 点(Okx)
  35. 堆叠式(Conor O'Brien)
  36. GolfScript(Okx)
  37. 其实(林恩)
  38. RProgN(Okx)
  39. 方案(bmark)
  40. 元素(Oxx)
  41. J(块)
  42. Cubix(ETH生产)
  43. zsh(齐柏林飞艇)
  44. VBA(泰勒·斯科特)
  45. 鱼(齐柏林飞艇)
  46. 网状(Oxx)
  47. Perl 6(Pavel)
  48. RProgN2(ATaco)
  49. PHP(Matheus Avellar)
  50. 乔尔夫(科纳·奥布赖恩)
  51. 哈斯克尔(妮米)
  52. Befunge-98(Mistah Figgins)
  53. Gnuplot(齐柏林飞艇)
  54. QBIC(steenbergh)
  55. 雾(骑士)
  56. Qwerty-RPN(Okx)
  57. Korn Shell(ksh)(齐柏林飞艇)
  58. 朱莉娅(里克)
  59. Python 3(Pavel)
  60. Vimscript(Riker)
  61. 短跑(齐柏林飞艇)
  62. Vitsy(Okx)
  63. csh(齐柏林飞艇)
  64. 欧姆(Oxx)
  65. 波什(齐柏林飞艇)
  66. es-shell(Riker)
  67. Gol> <>(PidgeyUsedGust)

按最旧的排序时,此问题最有效


2
摘录确实很不错
Kritixi Lithos

@KritixiLithos我不知道该怎么做,尽管可以随意编辑!
帕维尔

1
@TomCarpenter可以接受,我将进行编辑。
帕维尔

1
“ Levenshtein距离将以UTF-8字符度量”是否表示编辑距离是在Unicode码点的字符串之间计算的(“ UTF-8”是红色鲱鱼,因为从这个意义上说,是否使用UTF-8,UTF-16,UCS4或其他)?
萨米·里德斯

1
@SamiLiedes帕维尔在聊天中回复,这只是Unicode代码点。(即,如果代码点是不同的,这是一个性格差异)
Rɪᴋᴇʀ

Answers:


5

答案64,欧姆,距离10

64º,;S)1'a"bc"<<x
2^63 
x
#??92a5*2p@^54┘#--2'3k:'2k*.@2(#"#28@P2*Jp;math 2\^45#2^41 NB.`#(expt 2 39); ^ 
exit
 @n.out (*2 32#e#a44******O@) //2 25)
"e
"2ej
:py print(2**60)
"%d" $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024print(2**53)--0;#0}}//4|#6904r"$2 #puts 16384 8*di 2^18o8*'*[[[268*^?>

添加 64º,;S)1'a

只有64º,实际的代码,其余的只是垃圾。

该程序将打印正确的输出,但是STDIN 打印后2 64也会要求一些输出。


这到底是怎么回事?不错的工作。
大卫·阿奇博尔德

5

答案17:05AB1E,距离3

#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~
#    System<.Console<.<.
#1024p#rint(512);
#0}}//4|
#β”6904”±r«"$2 
puts 16384 8*

在线尝试!


利用05AB1E不会抛出错误的事实做得很好。
Okx

5

答案24:重击,距离8

#23#2ej
printf $[2**24]
#'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~
#    System<.Console<.<.
#1024p#rint(512);
#0}}//4|
#ß”6904”±r«"$2 
#puts 16384 8*di 2^18o8*'

在线尝试!


5

答案51,Haskell,距离10

--2@2(#"#28@P2*Jp;math 2\^45#2^41 NB.`(expt 2 39); ^ exit @n.out (*2 32#e#a44******O@)//2 25)#e#2ej#printf("% $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024
print(2^51)--;#0}}//4|#6904r"$2 #puts 16384 8*di 2^18o8*'*[[[268*^?>

删除2 NL,取代^在期初-,前置另外-,删除*print,更换2次*^,覆盖4951,插入--后打印。


您删除了换行符...我的歌唱时光
Pavel

认真地为什么你要删除换行符
破坏的柠檬

因为haskell注释为--,所以它的编辑距离比前置--两次要短。
帕维尔

@DestructibleWatermelon:行注释--为2个字节,删除NL仅1个
nimi

5

答案67,Gol> <>,距离6

我们使用蹦床#只是反向添加代码。通过移除S)1'a所述;可重复使用,仅需要6个字符被添加。

#64º,;n*:"C"
"bc"<<x
2^66
x
#??92a5*2p@^54┘#--2'3k:'2k*.@2(#"#28@P2*Jp;math 2\^45#2^41 NB.`#(expt 2 39); ^ 
quit()
@n.out (*2 32#e#a44******O@) //2 25)
"e
"2ej
:
py 
p
riker
i
n
t
(2**60)
"%d" $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#

在线尝试!

我认为保留#允许其他一些语言将其用作注释行。


只是FWIW,如果对最后的答案有赏金,您的答案可能不会得到。答案链挑战的一般赢家是保持1-2周的最后一个答题者,或者是答案最多的人。
Rɪᴋᴇʀ

1
真的不在乎赏金-只是以为让它死掉真可惜。
PidgeyUsedGust

4

答案4:果冻距离3

/class HelloWorld {static void Main() 0{
    System.Console.Write(2);
0}}//4|
8Ḥ

在线尝试!

所有插入:00Ḥ

0{0}在那里抑制解析错误(由于{}分别使用left和right参数将monads变成dyad的迅捷,因此从空列表中弹出)。

“减半”为8,结果为16。


1
为什么第一个{(后class HelloWorld)不需要0前一个,而其他两个都需要呢?
帕维尔

在任何内容运行之前,每一行都被解析为链接(函数),最后一行是程序的入口点。没有()第一行的第二个大括号之前,解析器就可以了。第三行不能以大括号开头,因为没有可操作的单子。
乔纳森·艾伦,

4

答案5:Pyth

32 "/class HelloWorld {static void Main() 0{
    System.Console.Write(2);
0}}//4|
8Ḥ

打印数字文字32,然后在2和之间的空格"禁止打印(自动完成的)字符串文字。

+4个字符- 32 "

在herokuapp上尝试




3

答案20:Japt,距离8

2**20$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~
#    System<.Console<.<.
#1024p#rint(512);
#0}}//4|
#ß”6904”±r«"$2 
#puts 16384 8*di 2^18*/

在线尝试!

修改内容:

在程序开始时更改2^192**20,以计算功效(4)

在第一行替换#$,以便将所有超出的内容解释为JS(1)

在最后一行,删除/*/在程序末尾添加a ,因此注释占用了整个程序(3)


抱歉,我的回答不正确。最后一位应该是8而不是
7。– bmarks

@bmarks谢谢,编辑。
Okx

3

答案27:MATL,距离4

27W%2 25)#e#2ej#printf $[2**24]#'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024p#rint(512);#0}}//4|#ß”6904”±r«"$2 #puts 16384 8*di 2^18o8*'

在线尝试!

添加 27W%

说明:

  W   2 to the power of
27    27
   %  Start of single line comment

3

答案50:快乐,距离10

^2@2(#"#28@P2*Jp;math 2\^45#2^41 NB.`(expt 2 39); ^ exit @n.out (*2 32#e#a44******O@)//2 25)#e#2ej#printf("% $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~
#    System<.Console<.<.#1024
print(2**49);#0}}//4|
#6904r"$2 #puts 16384 8*di 2^18o8*'*[[[268*^?>

在这里尝试!

前置式 ^2@2((+5)

删除±ß#ß6904±r(+2)

ó已从移除óout(+1)中

<?已从移除<?#"#28@P2*(+2)

合计:10。 删除所有非ASCII字符!

说明

( 停止解析,因此代码如下所示:

^2@2
^      exponentiate
 2     two
  @2   to the 50 (char code of 2)

3

答案52. Befunge-98,距离8 + 2

感谢@DestructibleWatermelon打高尔夫球!

--2'3k:'2k*.@2(#"#28@P2*Jp;math 2\^45#2^41 NB.`(expt 2 39); ^ exit @n.out (*2 32#e#a44******O@)//2 25)#e#2ej#printf("%d" $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024
print(2^51)--;#0}}//4|#6904r"$2 #puts 16384 8*di 2^18o8*'*[[[268*^?>

在线尝试!

新增'3k2,和'2k*.之间2@

--不执行任何操作,
'3k2将52 2s放入堆栈,然后
'2k*.@相乘,打印数字,然后退出

此外,我添加了一个d"后,printf("%让其他人的生活更加轻松,因为我有2个额外的字符。它不会影响Befunge-98程序。


3

答案42:Cubix,距离8

2^41 NB.`(expt 2 39); ^ exit @ⁿ.óout (*2 32#e#a44******O@)//2 25)#e#2ej#printf $[2**24]#'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024p#rint(512);#0}}//4|#ß6904±r"$2 #puts 16384 8*di 2^18o8*'*

在线尝试!

lert(2**31中间改为44******O@


3

答案60,Vimscript,距离10

"bc<<<2^57 #x??92a5*2p@^54┘#--2'3k:'2k*.@2(#"#28@P2*Jp;math 2\^45#2^41 NB.`#(expt 2 39); ^ exit @n.out (*2 32#e#a44******O@) //2 25)
"e
"2ej
:py print(2**60)
"%d" $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024print(2**53)--0;#0}}//4|#6904r"$2 #puts 16384 8*di 2^18o8*'*[[[268*^?>

#将中间两行开头的2更改为""在第一行:py<space>前面和最后一行前面添加了一个。

为了澄清:

" 是vimscript中的一行注释(至少在一行的开头),不需要匹配。

Vim可以运行python代码,因此,这实际上等同于要求python给出答案。


如果这正在运行Python代码,为什么不像其他地方一样出现此错误?
帕维尔

@Pavel仅最后一行作为python代码运行。
Rɪᴋᴇʀ

抱歉,在修复之前先发表了该评论。
帕维尔

3

答案8:Perl

#327;N.""/class HelloWorld {static void Main() 0{;n***~
#    System.Console.
print(256);
#0}}//4|
#8Ḥ

恰好10的距离:+4 #表示注释,+ 1换行符之后System.Console.,+3表示转换writeprint,+2表示转换2256

我本来不想参加,但是我想确保在任何事情变得疯狂之前添加一些常规lang。

在线尝试!


3

答案49:PHP,距离6

<?#"#28@P2*Jp;math 2\^45#2^41 NB.`(expt 2 39); ^ exit @n.óout (*2 32#e#a44******O@)//2 25)#e#2ej#printf("% $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~
#    System<.Console<.<.#1024
print(2**49);#0}}//4|
#ß6904±r"$2 #puts 16384 8*di 2^18o8*'*[[[268*^?>

添加 <??>分别打开和关闭PHP标签。

替换4849

# 在PHP上开始注释,因此除了

<? print(2**49); ?>

以下是正确语法高亮化并输出以帮助可视化的屏幕截图:

screenshot


2

答案2:///

/class HelloWorld {static void Main() {
    System.Console.Write(2);
}}//4

+4个字符- ///4

在线尝试!


关于您删除的答案:我将8小时的要求更改为更主观的“只尽量不要发布过多 ”。随时取消删除。
帕维尔

@Pavel我想再次发布另一个答案!:P
boboquack

@boboquack关于您刚刚提出的问题的编辑:Different versions of the same language count as the same language.在“使用的语言...”下单独列出“ Python”似乎就足够了。
R. Kap

@ R.Kap谢谢,这实际上不是我想要编辑的内容。浏览器只是自动保存了我在其中复制语言名称的帖子的先前未建议的编辑,只是要注意您已经使用语言名称进行了编辑。当我将多张海报添加到列表中时,我不知道的时候出现了我保存的版本。
boboquack '17


2

答案11:木炭,距离5

A#327;N.""/class HelloWorld {static void Main() 0{;n***~
#    System.Console.
1024p#rint(512);
#0}}//4|
β2048

在线尝试!

大写希腊字母β是变量,在后面分配了ASCII字符。最终值是隐式打印的。


等等,您为什么更改您的回答10?我的是第十个答案。
R. Kap

@ R.Kap我已经像以前一样进行编辑,回到了11。
乔纳森·艾伦,

请注意,如果您将来碰巧使用木炭(很明显)会更短
ASCII码,仅ASCII

仅限@ASCII啊,对-​​谢谢!
乔纳森·艾伦

2

答案10:dc,距离为5

#327;N.""/class HelloWorld {static void Main() 0{;n***~
#    System.Console.
1024p#rint(512);
#0}}//4|
#8

这是一个dc输出有效的程序1024

在线尝试!


那不是挑战的工作方式,您的答案是第十,应该打印2 ^ 10
Leo

@Leo哦,对此感到抱歉。这就是我没有正确阅读帖子所得到的。编辑:它已更新
R. Kap

2

答案12:自我修改的Brainfuck

A#327;N<.""/class HelloWorld {static void Main() 0{;n***~
#    System<.Console<.<.
1024p#rint(512);
#0}}//4|
#β6904

在线尝试!

SMBF就像Brainfuck一样,只是源代码在开始位置左侧的磁带上可用。在这里,我们在代码末尾有要反向打印的数字,并且<.四次以打印所有四个数字。

我在代码中<每个之前添加了一个.(其中有3个),一个extra <.,并修改了最终的数字。距离应为8。



2

答案31:JavaScript ES7,距离7

alert(2**31)//2 25)#e#2ej#printf $[2**24]#'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024p#rint(512);#0}}//4|#ß”6904”±r«"$2 #puts 16384 8*di 2^18o8*'

ES7支持 **操作员供电。

您可以在此处尝试在线


2

答案33:Mathematica,距离9

2^33 (*2 32#e#alert(2**31)//2 25)#e#2ej#printf $[2**24]#'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024p#rint(512);#0}}//4|#ß”6904”±r«"$2 #puts 16384 8*di 2^18o8*'*)

说明

将所有内容放入注释并输出2 ^ 33

在提出您自己的答案之前,请先验证此答案是否有效,因为我对此并不陌生,并且不想最终打破束缚。


2

答案37:实际上,距离7

2:37@ⁿ.óout (*2 32#e#alert(2**31)//2 25)#e#2ej#printf $[2**24]#'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024p#rint(512);#0}}//4|#ß6904±r"$2 #puts 16384 8*di 2^18o8*'*

替换  36?#:37@ⁿ.ó

在线尝试!


2

答案38:RProgN,距离10

2 38 ^ exit @ⁿ.óout (*2 32#e#alert(2**31)//2 25)#e#2ej#printf $[2**24]#'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024p#rint(512);#0}}//4|#ß6904±r"$2 #puts 16384 8*di 2^18o8*'*

在线尝试!

替换2:372 38 ^ exit (10)(注意尾随空格)

说明:

2            2
     ^       to the power of
  38         38
       exit  Stop the prgram

2

答案47:Perl 6,距离10

#28@P2*Jp;math 2\^45#2^41 NB.`(expt 2 39); ^ exit @n.óout (*2 32#e#a44******O@)//2 25)#e#2ej#printf("% $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~
#    System<.Console<.<.#1024
print(2**47);#0}}//4|
#ß6904±r"$2 #puts 16384 8*di 2^18o8*'*

Perl 6被认为与Perl不同。我试图在"%后面添加C来设置C printf,希望有人使用它。

在线尝试!


2

答案48:RProgN2,距离9

"#28@P2*Jp;math 2\^45#2^41 NB.`(expt 2 39); ^ exit @n.óout (*2 32#e#a44******O@)//2 25)#e#2ej#printf("% $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~
#    System<.Console<.<.#1024
print(2**47);#0}}//4|
#ß6904±r"$2 #puts 16384 8*di 2^18o8*'*[[[268*^

"在开始处添加了a,以阻止一切中断,[[[最后清除内存,并268*^计算新的答案。隐式打印。

在线尝试!


您确定这很重要吗?我已经发布了RProgN版本1的答案,并且我认为不允许使用同一语言的多个版本。
Okx

RProgN 2是RProgN 1的完整翻版,非常类似于Perl 6与Perl 5的不同之处,这被认为是有效的。
ATaco '17

2

答案66,es(shell)+ bc,距离8

#64º,;S)1'a
"bc"<<x
2^66
x
#??92a5*2p@^54┘#--2'3k:'2k*.@2(#"#28@P2*Jp;math 2\^45#2^41 NB.`#(expt 2 39); ^ 
quit()
@n.out (*2 32#e#a44******O@) //2 25)
"e
"2ej
:
py 
p
riker
i
n
t
(2**60)
"%d" $[2**43]bye'$/*#"A#327;N<."$"/class HelloWorld {static void Main() 0{;n***~#    System<.Console<.<.#1024print(2**53)--0;#0}}//4|#6904r"$2 #puts 16384 8*di 2^18o8*'*[[[268*^?>

更改exitquit(),并iker在第一个之后添加r。我无法抗拒,我想再添加4个字符。


但是我们需要朝着一个目标努力;
破坏的柠檬

这听起来像我8的距离。
萨米·里德斯

@SamiLiedes你说得对,正在解决。
Rɪᴋᴇʀ
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.