Anaglot-Polygramme

19

Aufgabe

Schreiben Sie Code, der in n verschiedenen Programmen in n verschiedenen Sprachen neu angeordnet werden kann. Dabei wird jeweils eine eindeutige Zahl von 1 bis n ausgegeben.

Keine zwei Sprachen sollten gleich sein, jedoch werden unterschiedliche Versionen von "derselben Sprache" als unterschiedliche Sprachen betrachtet, solange sie unterschiedliche Hauptversionsnummern haben. Für diese Herausforderung unterscheiden sich REPL-Umgebungen nicht von ihren übergeordneten Sprachen, sind aber immer noch eine Sprache. Jede Sprache sollte auf einer unterschiedlichen Permutation des Quellcodes laufen und eine unterschiedliche Zahl im Bereich ausgeben.

Permutationen werden in Bytes und nicht in Zeichen gezählt .

Sie sollten jede Permutation einschließen, die mit der Sprache ausgeführt wird, in der sie zu Testzwecken ausgeführt wird.

Wertung

Ihre Punktzahl wird die sein

Bewertungsgleichung

Wobei N die Anzahl der Sprachen und L die Anzahl der eindeutigen Reihenfolgen der Programmbytes ist.

L ist nicht gleich der Länge des Programms

(es sei denn, das Programm ist 1 oder 0 Bytes)

Hier ist ein Python-Skript zur Berechnung von L mit freundlicher Genehmigung von Conor O'Brien.

L ist genau dann gleich der Länge der Fakultät des Programms, wenn das Programm keine wiederholten Bytes enthält.

Das Ziel ist es, Ihre Punktzahl zu maximieren.

Weizen-Assistent
quelle
Verbunden.
Martin Ender
sind kommentare erlaubt
Adám,
@ Adám Es gibt keine vernünftige Möglichkeit, Kommentare zu verbieten
Weizen-Assistent
Wenn #das Kommentarsymbol in 5 Sprachen 1#2345
Adám,
@Adam, das gibt Ihnen eine Punktzahl von 1/6. Ich bin mir sicher, dass mit einem 2-Byte-Programm (oder einem 1-Byte-Programm für diese Angelegenheit) eine Punktzahl von 1 leicht möglich ist. Das Hinzufügen weiterer Ziffern verringert Ihre Punktzahl.
Martin Ender

Antworten:

30

34 Sprachen, 19 Bytes, Ergebnis: 38.832.018.459.912.437.760.000

Hier ist eine kurze Antwort, die ich zusammengestellt habe, um zu zeigen, dass es möglich ist, eine Antwort zu erhalten, die besser als 1 ist.

 12233echo*+--@#..;

1. NTFJ

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

Diese Ausgänge über Zeichencode, der durch darf meta Konsensus .

Probieren Sie es hier aus

2. Tcsh

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

3. 05AB1E

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

Probieren Sie es online!

4. Eigentlich

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

Probieren Sie es online!

5. Befunge 98

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

Probieren Sie es online!

6. Cubix

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

Ausgaben nach Zeichencode

Probieren Sie es hier aus

Ungefalteter Code:

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

7. Haskell 8 REPL

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

8. Im Ernst

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

Probieren Sie es online!

9.> <>

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

Ausgaben nach Zeichencode

Probieren Sie es online!

10. Befunge

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

Probieren Sie es online!

11. brainbool

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

Probieren Sie es online!

12. 2sable

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

Probieren Sie es online!

13. Hexagonie

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

Ausgaben nach Zeichencode

Probieren Sie es online!

Ungefalteter Code:

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

14. R

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

Probieren Sie es online!

15. v.Chr

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

Probieren Sie es online!

30. Nim

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

31. Fisch

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

32. PHP

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

<?phpwird aufgrund dieser Meta nicht benötigt

Probieren Sie es online!

33. Golfscript

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

Probieren Sie es online!

34. Oktave

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

Probieren Sie es online!

Weizen-Assistent
quelle
5
Und deshalb hasse ich REPL-fähige Sprachen
Mr. Xcoder
1
Wenn Sie .und eine andere Sprache hinzufügen , können Sie 11 haben. J:2#.2+3*3
Conor O'Brien
@ WheatWizard hier
Conor O'Brien
1
@ WheatWizard FWIW, alle gültigen J-Permutationen
Conor O'Brien
@ WheatWizard J ist technisch eine REPL. Stellen Sie dem Code das Präfix voran echo , um die Ausgabe zu sehen.
Conor O'Brien
11

1 Sprache, 0 Bytes, Punktzahl 1

Ich weiß nicht, wie hoch die Punktzahl bei dieser Herausforderung sein wird, also lasst uns diesen Punkt einnehmen.


Probieren Sie es online!

In Retina wird das leere Programm ohne Eingabe gedruckt 1.

Ergebnis = 1! / 0! = 1/1 = 1

Löwe
quelle
7
Dies sieht auf den ersten Blick wie eine Scherzantwort aus, hat aber die höchste Punktzahl bisher ...
Trichoplax
Gleiche Punktzahl für einen einsprachigen 1-Byte-Eintrag, nein?
Adám
@ Adám ja, wie 1zum Beispiel in R
Giuseppe
5
In Gelee gibt dies aus 0, also 2 Sprachen => Score = 2
Mr. Xcoder
5
@ Mr.Xcoder Nein so funktioniert das Scoring nicht. Sie müssen 1 bis n ausgeben und jede sollte sich auf einer separaten Permutation befinden.
Weizen-Assistent
6

2 Sprachen, 2 Bytes, Punktzahl 1

Schlägt Leos Antwort nicht, aber ich dachte, ich würde eine 2-sprachige Lösung präsentieren (naja, und der Weizen-Assistent hat sowieso eine 2-Punkte-Antwort dazwischen gegeben).

Netzhaut , Drucke1

2`

Probieren Sie es online!

Dies ist im Wesentlichen dasselbe wie das leere Programm von Leo.

Pyth , druckt2

`2

Probieren Sie es online!

Dies ist repr(2)so, dass es berechnet, "2"was als gedruckt wird 2.

Martin Ender
quelle
5

26 Sprachen, 46 Byte, Ergebnis: 1.68861953e-28 (0.000000000000000000000000000168861953)

Alle Sprachen sind Mainstream-Sprachen (dh sie werden von Entwicklern verwendet) und es gibt in keiner Sprache eine REPL-Lösung. Diese Antwort wird niemals gewinnen, aber das ist kein Grund, sie nicht zu posten ...

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

1. Python 2

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

Probieren Sie es online!

2. Python 3

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

Probieren Sie es online!

3. Ruby

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

Probieren Sie es online!

4. CoffeeScript

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

Probieren Sie es online!

5. PHP

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

Probieren Sie es online!

6. Perl 5

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

Probieren Sie es online!

7. Perl 6

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

Probieren Sie es online!

8. JavaScript (ES5)

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

Probieren Sie es online!

9. JavaScript (ES6)

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

Probieren Sie es online!

10. JavaScript (ES7)

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

Probieren Sie es online!

11. Charge

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

Konnte keinen Online-Dolmetscher für diesen finden. Versuchen Sie, diesen Code in der Eingabeaufforderung auszuführen, wenn Sie unter Windows arbeiten.

12. Bash

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

Probieren Sie es online!

13. CSS

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

Probieren Sie es online!

14. Weniger

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

Probieren Sie es online!

15. Stylus

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

Probieren Sie es online!

16. TypeScript

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

Probieren Sie es online!

17. Oktave

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

Probieren Sie es online!

18. Schnell

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

Probieren Sie es online!

19. Julia

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

Probieren Sie es online!

20. Maxima

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

Probieren Sie es online!

21. Clojure

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

Probieren Sie es online!

22. Groovy

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

Probieren Sie es online!

23. CommonLisp

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

Probieren Sie es online!

24. EmacsLisp

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

Probieren Sie es online!

25. PicoLisp

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

Probieren Sie es online!

26. Logo

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

Probieren Sie es online!

Arjun
quelle
1
Und Swift zeigt 18:print(18)//#**alechous: f{}:2345679+ ""enttd*
Mr. Xcoder
Angenommen, dies erhöht Ihre Punktzahl um etwa 0,002e-20 :))
Mr. Xcoder
3
pfft. 2017 wird das Jahr des Befunge Web Framework!
Skyler
Kommentare werden nur diese ganze Frage in Wahnsinn
verwandeln
Übrigens: Applescript, das in meiner Antwort zu sehen ist, funktioniert ohne REPL, erfordert jedoch --Kommentare. Wenn Sie hinzufügen --, können Sie wahrscheinlich auch in mindestens einer Art von Hash arbeiten.
Weizen-Zauberer
3

12 Sprachen, 16 Bytes - Score: 0,003

print(0b11000)#1

Druck 1in 2sable

print(0b1100)#10

Drucken Sie 10in 05AB1E

print(0b11)#1000

Die Neuanordnung der Binärzahlen erfolgt in den Formaten 2-9, 11-12:

  • Kristall
  • Julia 0.5
  • J-uby
  • Lilie
  • Perl 5
  • Perl 6
  • Python 3
  • Python 2
  • Python
  • Rubin

L = 145297152000 12! = 479001600

Ich habe TiO nur für eine Liste der gültigen Sprachen verwendet (Wenn diese alle als einzigartig gelten?). Einige doppelte Sprachen wurden dank der Eingabe vom Weizen-Assistenten entfernt. Diese Antwort sieht ziemlich niedrig aus, obwohl ich der Meinung bin, dass sie Potenzial hat.

qoou
quelle
Julia 0.4 und 0.5 haben die gleiche Hauptversionsnummer. Und Python 2 (PyPy) und Python 2. Dies wird jedoch wahrscheinlich in Python 1
Wheat Wizard
Können Sie den Ausdruck weglassen und es als Antwort bezeichnen? Wie viele davon haben Antworten?
Brian McCutchon
@ Brian McCutchon Lily, Perl und Crystal haben keine Antworten. Alle anderen tun es.
Weizen-Assistent
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
quelle
Deine Punktzahl ist 4.73508590206e-15übrigens.
Weizen-Assistent
Ist es? 4 Fakultät ist 24. Die durch 17 geteilt ist ungefähr 1,4
Luke
Nicht durch 17 geteilt, sondern durch 5068545850368000, die Anzahl der Möglichkeiten, die Zeichenfolge neu anzuordnen.
Weizen-Zauberer
Hoppla. Verstehe das falsch. Vielen Dank für den Hinweis.
Luke
@ WheatWizard Autsch, das habe ich auch verpasst.
Adám