Anaglot语法图


19

任务

用n种不同的语言编写一些可以重新排列到n个不同程序中的代码,每种输出从1到n的不同数字。

没有两种语言应该是相同的,但是只要它们具有不同的主要版本号,“相同语言”的不同版本将被视为不同的语言。对于这一挑战,REPL环境与其父语言没有区别,但仍然是一种语言。每种语言应在源代码的不同排列上运行,并在范围内输出不同的数字。

排列将以字节为单位,而不以字符为单位

您应该包括使用测试所使用的语言运行的每个排列。

计分

您的分数将是

计分方程

其中N是语言数,L是程序字节的唯一顺序数。

L不等于程序的长度

(除非程序为1或0字节)

是计算Conor O'Brien的L的Python脚本。

当且仅当程序中没有重复的字节时,L才等于程序阶乘的长度。

目标是最大化您的分数。



允许评论吗?
2015年

@Adám没有合理的方法来禁止评论
Wheat Wizard

所以,如果#是在5种语言的注释符号,很好的解决办法是1#2345
亚当

@Adám给您1/6的分数。我敢肯定,使用2字节程序(或1字节程序)很容易获得1分。加上更多的数字会降低您的分数。
马丁·恩德

Answers:


30

34种语言,19字节,得分:38,832,018,459,912,437,760,000

这是我汇总的一个快速答案,表明有可能获得比1更好的分数。

 12233echo*+--@#..;

1. NTFJ

#*22331+..@o;-- ech

这是通过字符代码输出的,这是元共识允许的。

在这里尝试

2. Tcsh

echo 2;#..1@2+33*--

3. 05AB1E

2231*+..@echo ;--#3

在线尝试!

4.其实

@..o; eho1#c3223-*+-

在线尝试!

5. Befunge 98

23+.@.21*#3o;-- ech

在线尝试!

6. Cubix

123+23*o@#;-- ech..

按字符代码输出

在这里尝试

展开的代码:

    1 2
    3 +
2 3 * o @ # ; -
- e c h . . . .
    . .
    . .

7. Haskell 8 REPL

3+2*2 --31#;@..echo

8.认真

@..o; eho1#c3223-+*-

在线尝试!

9.> <>

33*o;2+..@#12-- ech

按字符代码输出

在线尝试!

10. Befunge

33*1+.@.#22o;-- ech

在线尝试!

11.脑袋

323*+..@echo ;--#12

在线尝试!

12. 2貂

233*+..@echo ;--#12

在线尝试!

13.六角形

13;2#2+@*3o-- ech..

按字符代码输出

在线尝试!

展开的代码:

  1 3 ;
 2 # 2 +
@ * 3 o -
 - e c h
  . . .

14. R

12+2#*33..@o; ech

在线尝试!

15.公元前

12+3#*23..@o;-- ech

16. Python 3 REPL

13+3#*22..@o;-- ech

17. irb(Ruby 2.4 REPL)

13+2*2#3..@o;-- ech

18. PowerShell

12+2*3#3..@o;-- ech

19. Python 2 REPL

13+2*3#2..@o;-- ech

20. Python 1.6.1 REPL

23-3#-+*21..@o; ech

21. Ksh

echo 21;#..2@3+3*--

22.重击

echo 22;#..1@3+3*--

23. Zsh

echo 23;#..1@2+3*--

24. Applescript

23+1 --#2*3..@o;ech

25. Lua REPL

23+2 --#1*3..@o;ech

26.朱莉娅REPL

23+3 #2*1..@o;--ech

27. irb(Ruby 1.9.3 REPL)

13*2+3-2 #..@o;-ech

28.Haskell 7 REPL

13*2+2--3#;@.. echo

29。

echo --1#.23;@+2*.3

在线尝试!

30.尼姆

echo 33-2-1;#..@2+2*

31.鱼

echo 31;#3-2-..@2+2*

32. PHP

echo 32;#+123*@..--

<?php由于此meta不需要

在线尝试!

33. Golfscript

3.#.1223*@+o;-- ech

在线尝试!

34.八度

33+1 #22echo*--@..;

在线尝试!


5
这也是我讨厌REPL能力的语言的
Xcoder先生

1
如果您添加.其他语言,则可以有11。J:2#.2+3*3
Conor O'Brien

@WheatWizard 在这里
Conor


@WheatWizard J从技术上说是REPL。给代码加上前缀echo 以查看输出。
科纳·奥布莱恩

11

1种语言,0个字节,得分1

我不知道在这项挑战中将获得高分,所以让我们来看看这个地方。


在线尝试!

在Retina中,没有输入的空程序将打印1

分数= 1!/ 0!= 1/1 = 1


7
乍一看就像一个笑话,但迄今为止得分最高……
trichoplax

1字节单语言条目的分数相同,不是吗?
阿达姆(Adám)'17年

@Adám是的,例如1在R中
朱塞佩(Giuseppe)

5
在果冻中,这会输出0,所以2种语言=> score = 2
Xcoder先生17年

5
@ Mr.Xcoder不,这不是计分方式。您必须输出1到n,并且每个都应在单独的排列上。
小麦巫师

6

2种语言,2个字节,得分1

没有击败Leo的答案,但我认为我会提出一种2语言的解决方案(好吧,Wheat Wizard忍者在两者之间都给出了2分的答案)。

视网膜版画1

2`

在线尝试!

这与Leo的空程序基本相同。

Pyth,版画2

`2

在线尝试!

这样就repr(2)可以计算出"2"哪个打印为2


5

26种语言,46个字节,得分:1.68861953e-28(0.000000000000000000000000000168861953)

所有的语言都是主流语言(即开发人员实际使用的语言),并且没有任何语言的REPL解决方案。这个答案永远不会赢,但这不是不发布它的原因...

//#**print()ale123456789+chous :f{}:""enttd *;

1. Python 2

print 1#//**()alechous:f{}:23456789+ ""enttd*;

在线尝试!

2. Python 3

print(2)#//**alechous13456789+: f{}: ""enttd*;

在线尝试!

3.红宝石

puts 3#//**()alecho:f12456789+{}rin: ""enttd*;

在线尝试!

4. CoffeeScript

alert 4#//**()pinchous:12356789+f{}: ""enttd*;

在线尝试!

5. PHP

echo 5/*alrt#()pinus:f{:12346789+} ""enttd;**/

在线尝试!

6. Perl 5

print 6#/*ale()chous:12345789+f{:} */""enttd*;

在线尝试!

7. Perl 6

print 7#/*ale)(chous:f12345689+{:} */""enttd*;

在线尝试!

8. JavaScript(ES5)

alert(8)//pin 12345679+#*chous:f{:} *""enttd*;

在线尝试!

9. JavaScript(ES6)

alert(9)//inp 12345678+#*chous: f{:}*""enttd*;

在线尝试!

10. JavaScript(ES7)

alert(9+1)//pni #*chous2345678: f{:}*""enttd*;

在线尝试!

11.批次

echo 9+2 ::alrt()//pni#*usf{1345678}*""enttd*;

找不到与此相关的在线翻译。如果您使用的是Windows,请尝试在命令提示符中运行此代码。

12.重击

echo 12 #::alrt(3456789+)//pni*usf{}*""enttd*;

在线尝试!

13. CSS

*:after{content:"13" /*h# l(2456789+)pisud;*/}

在线尝试!

14.更少

*:after{content:"14" /*#h l(2356789+)pisud;*/}

在线尝试!

15.触控笔

*:after{content:"15" /*#hl (2346789+)pisud;*/}

在线尝试!

16. TypeScript

alert(16)//inp #*chous2345789+: :{f}*""entt*d;

在线尝试!

17.八度

disp(17)#//n *chou2345689+: :{f}*""entt*alert;

在线尝试!

18.斯威夫特

print(18)//ds# *chou2345679+: :{f}""ent*ale*t;

在线尝试!

19.朱莉娅

print(19)#ds// *chou2345678+: :{f}""ent*ale*t;

在线尝试!

20.千里马

print(18+2);/*#ds ouch 345679::{f}""entale*t*/

在线尝试!

21. Clojure

(print "21");/*#ds ouch3456789+::{f}entale*t*/

在线尝试!

22. Groovy

print 19+3//();*#ds oh245678::{fuc*}entalet*""

在线尝试!

23. CommonLisp

(print 23);//*#ds oh1456789+::{fuc*}entalet*""

在线尝试!

24. EmacsLisp

(print 24);//*#ds oh1356789+::{fuc*}entalet*""

在线尝试!

25. PicoLisp

(print 25);//*#ds oh1346789+::{fuc*}entalet*""

在线尝试!

26.徽标

print 21+5 ;//*#dsoh346789::{fuc*}entalet*""()

在线尝试!


1
和Swift,显示18:print(18)//#**alechous: f{}:2345679+ ""enttd*
Xcoder先生17年

假设这会使您的得分提高约0.002e-20 :))
Xcoder先生17年

3
pfft。2017年将是Befunge Web框架的一年!
斯凯勒

评论只会把整个问题变成精神错乱……
Mathime

顺便说一句,可以在我的答案中看到的Applescript在没有REPL的情况下有效,但确实需要--发表评论。如果添加--,则可能还可以处理至少一种类型的haskell。
小麦巫师

3

12种语言,16字节-得分:0.003

print(0b11000)#1

12sable打印

print(0b1100)#10

1005AB1E打印

print(0b11)#1000

重新排列二进制数字将打印2-9、11-12:

  • 水晶
  • 朱莉娅0.5
  • 优比
  • 百合
  • Perl 5
  • Perl 6
  • Python 3
  • Python 2
  • 蟒蛇
  • 红宝石

L = 145297152000 12!= 479001600

我只是使用TiO列出了有效的语言列表(如果这些都被认为是唯一的?)。多亏了Wheat Wizard的输入,删除了一些重复的语言。这个答案看起来很低,尽管我觉得它有潜力。


Julia 0.4和0.5具有相同的主版本号。Python 2(PyPy)和Python 2也是如此。不过,这可能会在Python 1中起作用
Wheat

您能放弃印刷品吗?其中有多少个代表?
布赖恩·麦卡顿

@BrianMcCutchon Lily,Perl和Crystal没有代表。其他所有的都做。
小麦巫师

1

JavaScript(ES6),Python 2,Python 3,Japt,4.735e-15

# ()//1234=>inprt

ES6(1)

p=>1//rint 234()#

的Python 2(2)

print 2#134=>//()

的Python 3(3)

print(3)# 124=>//

杰普(4)

#rint>=3/2)p (4/1

你的分数是4.73508590206e-15顺便说一句。
小麦巫师

是吗?4阶乘是24。除以17大约是1.4
路加福音

不除以17,而是除以5068545850368000(重新排列字符串的方式)的数量。
小麦巫师

哎呀。误读了。感谢您指出。
路加福音

@WheatWizard哎呀,我也错过了。
阿达姆(Adám)'17年
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.