Poligramas de Anaglot

19

Tarea

Escriba un código que se pueda reorganizar en n programas diferentes en n idiomas diferentes, cada uno de los cuales generará un número distinto de 1 a n.

No hay dos idiomas que sean iguales, sin embargo, las diferentes versiones de "el mismo idioma" se considerarán idiomas distintos, siempre que tengan diferentes números de versiones principales. Para este desafío, los entornos REPL no son distintos de sus idiomas principales, pero siguen siendo un idioma. Cada idioma debe ejecutarse en una permutación distinta del código fuente y generar un número distinto en el rango.

Las permutaciones se contarán en bytes, no en caracteres .

Debe incluir cada permutación que se ejecute con el idioma en el que se ejecuta con fines de prueba.

Puntuación

Tu puntaje será el

Ecuación de puntuación

Donde N es el número de idiomas y L es el número de ordenamientos únicos de los bytes del programa.

L no es igual a la duración del programa

(a menos que el programa tenga 1 o 0 bytes)

Aquí hay un script de Python para calcular L cortesía de Conor O'Brien.

L es igual a la longitud del factorial del programa si y solo si no hay bytes repetidos en el programa.

El objetivo es maximizar tu puntaje.

Asistente de trigo
fuente
Relacionado.
Martin Ender
¿se permiten comentarios?
Adám
@ Adám No habría una forma razonable de prohibir los comentarios
Wheat Wizard
Entonces, si #el símbolo de comentario está en 5 idiomas, una buena solución sería1#2345
Adám
@ Adám que te da una puntuación de 1/6. Estoy seguro de que una puntuación de 1 es fácilmente posible con un programa de 2 bytes (o un programa de 1 byte para el caso). Y agregar más dígitos reduce su puntaje.
Martin Ender

Respuestas:

30

34 idiomas, 19 bytes, puntaje: 38,832,018,459,912,437,760,000

Aquí hay una respuesta rápida que reuní para mostrar que es posible obtener una puntuación de respuesta mejor que 1.

 12233echo*+--@#..;

1. NTFJ

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

Esto sale a través del código de caracteres, que está permitido por meta consenso .

Pruébalo aquí

2. Tcsh

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

3. 05AB1E

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

Pruébalo en línea!

4. En realidad

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

Pruébalo en línea!

5. Befunge 98

[email protected]*#3o;-- ech

Pruébalo en línea!

6. Cubix

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

Salidas por código de caracteres

Pruébalo aquí

Código desplegado:

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

7. Haskell 8 REPL

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

8. En serio

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

Pruébalo en línea!

9.> <>

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

Salidas por código de caracteres

Pruébalo en línea!

10. Befunge

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

Pruébalo en línea!

11. brainbool

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

Pruébalo en línea!

12. 2sable

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

Pruébalo en línea!

13. Hexagonía

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

Salidas por código de caracteres

Pruébalo en línea!

Código desplegado:

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

14. R

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

Pruébalo en línea!

15. a.

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

Pruébalo en línea!

30. Nim

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

31. pescado

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

32. PHP

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

<?phpno es necesario debido a este meta

Pruébalo en línea!

33. Golfscript

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

Pruébalo en línea!

34. octava

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

Pruébalo en línea!

Asistente de trigo
fuente
55
Y es por eso que odio los idiomas con capacidad REPL
Sr. Xcoder
1
Si agrega .y otro idioma, puede tener 11. J:2#.2+3*3
Conor O'Brien
@WheatWizard aquí
Conor O'Brien
1
@WheatWizard FWIW, todas las permutaciones J válidas
Conor O'Brien
@WheatWizard J es técnicamente un REPL. Prefije el código con echo para ver la salida.
Conor O'Brien
11

1 idioma, 0 bytes, puntaje 1

No sé qué puntajes obtendrán en este desafío, así que tomemos este lugar.


Pruébalo en línea!

En Retina, se imprime el programa vacío sin entrada 1.

Puntuación = 1! / 0! = 1/1 = 1

León
fuente
77
A primera vista, parece una respuesta de broma, pero tiene el puntaje más alto hasta ahora ...
trichoplax
Misma puntuación para una entrada de 1 byte en un solo idioma, ¿no?
Adám
@ Adám sí, como 1en R, por ejemplo
Giuseppe
55
En gelatina, esto genera 0, entonces 2 idiomas => puntaje = 2
Mr. Xcoder
55
@ Mr.Xcoder No, no es así como funciona la puntuación. Debe generar de 1 a n y cada uno debe estar en una permutación separada.
Wheat Wizard
6

2 idiomas, 2 bytes, puntaje 1

No supera la respuesta de Leo, pero pensé en presentar una solución de 2 idiomas (bueno, y Wheat Wizard ninja obtuvo una respuesta de puntaje 2 de todos modos).

Retina , impresiones1

2`

Pruébalo en línea!

Esto es esencialmente lo mismo que el programa vacío de Leo.

Pyth , impresiones2

`2

Pruébalo en línea!

Esto es repr(2)así, calcula "2"cuál se imprime como 2.

Martin Ender
fuente
5

26 idiomas, 46 bytes, puntuación: 1.68861953e-28 (0.000000000000000000000000000168861953)

Todos los idiomas son los principales (es decir, en realidad son utilizados por personas en desarrollo) y no existe una solución REPL en ningún idioma. Esta respuesta nunca va a ganar, pero esa no es una razón para no publicarla ...

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

1. Python 2

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

Pruébalo en línea!

2. Python 3

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

Pruébalo en línea!

3. Ruby

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

Pruébalo en línea!

4. CoffeeScript

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

Pruébalo en línea!

5. PHP

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

Pruébalo en línea!

6. Perl 5

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

Pruébalo en línea!

7. Perl 6

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

Pruébalo en línea!

8. JavaScript (ES5)

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

Pruébalo en línea!

9. JavaScript (ES6)

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

Pruébalo en línea!

10. JavaScript (ES7)

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

Pruébalo en línea!

11. Lote

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

No se pudo encontrar un intérprete en línea para este. Intente ejecutar este código en el símbolo del sistema, si está en Windows.

12. Bash

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

Pruébalo en línea!

13. CSS

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

Pruébalo en línea!

14. Menos

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

Pruébalo en línea!

15. Stylus

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

Pruébalo en línea!

16. TypeScript

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

Pruébalo en línea!

17. octava

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

Pruébalo en línea!

18. Swift

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

Pruébalo en línea!

19. Julia

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

Pruébalo en línea!

20. Maxima

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

Pruébalo en línea!

21. Clojure

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

Pruébalo en línea!

22. Groovy

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

Pruébalo en línea!

23. CommonLisp

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

Pruébalo en línea!

24. EmacsLisp

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

Pruébalo en línea!

25. PicoLisp

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

Pruébalo en línea!

26. Logo

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

Pruébalo en línea!

Arjun
fuente
1
Y Swift, mostrando 18: print(18)//#**alechous: f{}:2345679+ ""enttd*
Sr. Xcoder
Supongamos que esto aumentará su puntaje en aproximadamente 0.002e-20 :))
Sr. Xcoder
3
No. ¡2017 será el año del Befunge Web Framework!
Skyler
Los comentarios solo convertirán toda esta pregunta en una locura ...
Mathime
Por cierto, Applescript, que se puede ver en mi respuesta, funciona sin REPL, pero requiere --comentarios. Si agregas-- , probablemente también pueda trabajar en al menos un tipo de haskell.
Wheat Wizard
3

12 idiomas, 16 bytes - Puntuación: 0.003

print(0b11000)#1

Imprime 1en 2sable

print(0b1100)#10

Imprimir 10en 05AB1E

print(0b11)#1000

Reorganizar los números binarios imprime 2-9, 11-12 en:

  • Cristal
  • Julia 0.5
  • J-uby
  • Lirio
  • Perl 5
  • Perl 6
  • Python 3
  • Python 2
  • Pitón
  • Rubí

L = 145297152000 12! = 479001600

Acabo de usar TiO para una lista de idiomas válidos para esto (¿Si todos estos se consideran únicos?). Se eliminaron algunos idiomas duplicados gracias a la entrada del asistente de trigo. Esta respuesta parece bastante baja, aunque siento que tiene potencial.

qoou
fuente
Julia 0.4 y 0.5 tienen el mismo número de versión principal. Y también lo hace Python 2 (PyPy) y Python 2. Sin embargo, esto probablemente funcionará en Python 1
Wheat Wizard
¿Puedes dejar la impresión y llamarlo réplica? ¿Cuántos de estos tienen respuestas?
Brian McCutchon
@BrianMcCutchon Lily, Perl y Crystal no tienen respuestas. Todos los demás lo hacen.
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
Luke
fuente
Tu puntuación es por 4.73508590206e-15cierto.
Wheat Wizard
¿Lo es? 4 factorial es 24. Eso dividido por 17 es aproximadamente 1.4
Lucas
No dividido por 17 sino por 5068545850368000, la cantidad de formas de reorganizar la cadena.
Wheat Wizard
Ups Leí mal eso. Gracias por mencionarlo.
Lucas
@WheatWizard Ouch, también me perdí eso.
Adám