Anaglot Polygrams


19

Tarefa

Escreva algum código que possa ser reorganizado em n programas diferentes em n idiomas diferentes, cada um produzindo um número distinto de 1 a n.

Não existem dois idiomas iguais, no entanto, versões diferentes de "o mesmo idioma" serão consideradas idiomas distintos, desde que tenham números de versão principais diferentes. Para esse desafio, os ambientes REPL não são distintos dos idiomas-pai, mas ainda são um idioma. Cada idioma deve ser executado em uma permutação distinta do código-fonte e gerar um número distinto no intervalo.

As permutações serão contadas em bytes e não em caracteres .

Você deve incluir cada permutação executada com o idioma em que é executada para fins de teste.

Pontuação

Sua pontuação será a

Equação de pontuação

Onde N é o número de idiomas e L é o número de pedidos exclusivos dos bytes do programa.

L não é igual à duração do programa

(a menos que o programa tenha 1 ou 0 bytes)

Aqui está um script python para calcular L, cortesia de Conor O'Brien.

L é igual ao comprimento do fatorial do programa se e somente se não houver bytes repetidos no programa.

O objetivo é maximizar sua pontuação.



são permitidos comentários?
Adám

@ Adám Não haveria nenhuma maneira razoável de proibir comentários
Assistente de trigo

Então, se #é o símbolo de comentário em 5 línguas, boa solução seria1#2345
Adám

@ Adám, que dá uma pontuação de 1/6. Tenho certeza de que uma pontuação de 1 é facilmente possível com um programa de 2 bytes (ou um programa de 1 byte). E adicionar mais dígitos reduz sua pontuação.
Martin Ender

Respostas:


30

34 idiomas, 19 bytes, pontuação: 38.832.018.459.912.437.760.000

Aqui está uma resposta rápida que reuni para mostrar que é possível obter uma resposta com pontuação melhor que 1.

 12233echo*+--@#..;

1. NTFJ

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

Isso gera via código de caractere, o que é permitido por meta consenso .

Experimente aqui

2. Tcsh

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

3. 05AB1E

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

Experimente online!

4. Na verdade

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

Experimente online!

5. Befunge 98

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

Experimente online!

6. Cubix

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

Saídas por código de caractere

Experimente aqui

Código desdobrado:

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

7. Haskell 8 REPL

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

8. Sério

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

Experimente online!

9.> <>

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

Saídas por código de caractere

Experimente online!

10. Befunge

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

Experimente online!

11. cérebro

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

Experimente online!

12. 2sable

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

Experimente online!

13. Hexagonia

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

Saídas por código de caractere

Experimente online!

Código desdobrado:

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

14. R

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

Experimente online!

15. bc

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

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. Julia 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. J

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

Experimente online!

30. Nim

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

31. peixe

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

32. PHP

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

<?phpnão é necessário devido a essa meta

Experimente online!

33. Golfscript

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

Experimente online!

34. Oitava

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

Experimente online!


5
E é por isso que eu odeio línguas REPL-capable
Mr. Xcoder

11
Se você adicionar .um outro idioma, poderá ter 11. J:2#.2+3*3
Conor O'Brien

@WheatWizard aqui
Conor O'Brien


@WheatWizard J é tecnicamente um REPL. Prefixe o código com echo para ver a saída.
Conor O'Brien

11

1 idioma, 0 bytes, pontuação 1

Eu não sei como as pontuações mais altas chegarão nesse desafio, então vamos ver esse ponto.


Experimente online!

Na Retina, o programa vazio sem entrada é impresso 1.

Pontuação = 1! / 0! = 1/1 = 1


7
Isso parece à primeira vista como uma resposta piada, mas tem a maior pontuação até agora ...
Trichoplax

A mesma pontuação para uma entrada de idioma único de 1 byte, não?
Adám

@ Adám sim, como 1no R, por exemplo
Giuseppe

5
Na geleia, isso gera 0, portanto, 2 idiomas => score = 2
Mr. Xcoder 9/17

5
@ Mr.Xcoder Não, não é assim que a pontuação funciona. Você deve enviar de 1 a n e cada um deve estar em uma permutação separada.
Assistente de trigo

6

2 idiomas, 2 bytes, pontuação 1

Não supera a resposta de Leo, mas pensei em apresentar uma solução em 2 idiomas (bem, e o Wheat Wizard ninja conseguiu uma resposta de pontuação 2 no meio).

Retina , impressões1

2`

Experimente online!

É essencialmente o mesmo que o programa vazio de Leo.

Pitão , impressões2

`2

Experimente online!

É repr(2)assim que calcula o "2"que é impresso como 2.


5

26 idiomas, 46 bytes, Pontuação: 1.68861953e-28 (0.000000000000000000000000000168861953)

Todos os idiomas são comuns (ou seja, são realmente usados ​​por pessoas em desenvolvimento) e não há solução REPL em nenhum idioma. Essa resposta nunca vai ganhar, mas isso não é motivo para não publicá-la ...

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

1. Python 2

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

Experimente online!

2. Python 3

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

Experimente online!

3. Ruby

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

Experimente online!

4. CoffeeScript

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

Experimente online!

5. PHP

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

Experimente online!

6. Perl 5

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

Experimente online!

7. Perl 6

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

Experimente online!

8. JavaScript (ES5)

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

Experimente online!

9. JavaScript (ES6)

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

Experimente online!

10. JavaScript (ES7)

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

Experimente online!

11. Lote

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

Não foi possível encontrar um intérprete online para este. Tente executar esse código no prompt de comando, se você estiver no Windows.

12. Bash

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

Experimente online!

13. CSS

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

Experimente online!

14. Menos

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

Experimente online!

15. caneta

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

Experimente online!

16. TypeScript

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

Experimente online!

17. Oitava

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

Experimente online!

18. Swift

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

Experimente online!

19. Julia

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

Experimente online!

20. Maxima

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

Experimente online!

21. Clojure

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

Experimente online!

22. Groovy

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

Experimente online!

23. CommonLisp

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

Experimente online!

24. EmacsLisp

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

Experimente online!

25. PicoLisp

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

Experimente online!

26. Logo

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

Experimente online!


11
E Swift, exibindo 18:print(18)//#**alechous: f{}:2345679+ ""enttd*
Sr. Xcoder 10/10

Suponha que isso aumente sua pontuação em cerca de 0,002e-20 :))
Sr. Xcoder

3
pfft. 2017 será o ano do Befunge Web Framework!
Skyler

Os comentários estão indo só para transformar toda esta questão à loucura ...
Mathime

btw Applescript, que pode ser visto na minha resposta, funciona sem um REPL, mas requer --comentários. Se você adicionar, --provavelmente também poderá trabalhar em pelo menos um tipo de haskell.
Assistente de trigo

3

12 idiomas, 16 bytes - Pontuação: 0.003

print(0b11000)#1

Imprime 1em 2sable

print(0b1100)#10

Imprimir 10em 05AB1E

print(0b11)#1000

Reorganizando os números binários imprime 2-9, 11-12 em:

  • Cristal
  • Julia 0.5
  • J-uby
  • Lírio
  • Perl 5
  • Perl 6
  • Python 3
  • Python 2
  • Pitão
  • Rubi

L = 145297152000 12! = 479001600

Acabei de usar o TiO para obter uma lista de idiomas válidos para isso (se todos são considerados únicos?). Removido alguns idiomas duplicados, graças à entrada do Assistente de Trigo. Essa resposta parece muito baixa, embora eu sinta que tem potencial.


Julia 0.4 e 0.5 têm o mesmo número de versão principal. E o mesmo acontece com o Python 2 (PyPy) e o Python 2. No entanto, isso provavelmente funcionará no Python 1
Assistente de trigo

Você pode deixar de lado a impressão e chamá-la de repl? Quantos destes têm repls?
101317 Brian McCutchon

@BrianMcCutchon Lily, Perl e Crystal não têm repls. Todos os outros fazem.
Wheat Wizard

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=>//

Japt (4)

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

Sua pontuação é 4.73508590206e-15btw.
Wheat Wizard

É isso? 4 fatorial é 24. Que dividido por 17 é aproximadamente 1,4
Lucas

Não dividido por 17, mas por 5068545850368000, o número de maneiras de reorganizar a sequência.
Wheat Wizard

Opa Leia mal isso. Obrigado por apontar isso.
Luke

@WheatWizard Ai, eu também senti falta disso.
Adám
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.