Anaglot Polygrams

19

Zadanie

Napisz kod, który można zmienić na n różnych programów w n różnych językach, z których każdy wypisuje inną liczbę od 1 do n.

Żadne dwa języki nie powinny być takie same, jednak różne wersje „tego samego języka” będą uważane za odrębne języki, o ile będą miały różne główne numery wersji. W przypadku tego wyzwania środowiska REPL nie różnią się od swoich języków macierzystych, ale nadal są językiem. Każdy język powinien działać na innej permutacji kodu źródłowego i wyświetlać odrębną liczbę w zakresie.

Permutacje będą liczone w bajtach, a nie w znakach .

Należy dołączyć każdą permutację, która jest uruchamiana w języku, w którym jest uruchamiana do celów testowych.

Punktacja

Twój wynik będzie

Równanie punktacji

Gdzie N jest liczbą języków, a L jest liczbą unikatowych porządków bajtów programów.

L nie jest równy długości programu

(chyba że program ma 1 lub 0 bajtów)

Oto skrypt Pythona do obliczenia L dzięki uprzejmości Conora O'Briena.

L jest równe długości silni programu, tylko wtedy, gdy w programie nie ma powtarzających się bajtów.

Celem jest maksymalizacja wyniku.

Kreator pszenicy
źródło
Związane z.
Martin Ender,
czy komentarze są dozwolone?
Adám
@ Adám Nie byłoby rozsądnego sposobu na zablokowanie komentarzy
Wheat Wizard
Więc jeśli #jest to symbol komentarza w 5 językach, dobrym rozwiązaniem byłoby1#2345
Adám
@ Adám, który daje wynik 1/6. Jestem pewien, że wynik 1 jest łatwo możliwy w przypadku programu 2-bajtowego (lub programu 1-bajtowego w tym przypadku). Dodanie większej liczby cyfr zmniejsza wynik.
Martin Ender,

Odpowiedzi:

30

34 języki, 19 bajtów, wynik: 38 832 018,459,912 437 760 000

Oto krótka odpowiedź, którą rzuciłem razem, aby pokazać, że możliwe jest uzyskanie odpowiedzi lepszej niż 1.

 12233echo*+--@#..;

1. NTFJ

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

Wyjście to odbywa się za pomocą kodu znakowego, który jest dozwolony przez meta konsensus .

Wypróbuj tutaj

2. Tcsh

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

3. 05AB1E

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

Wypróbuj online!

4. Właściwie

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

Wypróbuj online!

5. Befunge 98

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

Wypróbuj online!

6. Cubix

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

Dane wyjściowe według kodu znakowego

Wypróbuj tutaj

Rozłożony kod:

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

7. Haskell 8 REPL

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

8. Poważnie

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

Wypróbuj online!

9.> <>

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

Dane wyjściowe według kodu znakowego

Wypróbuj online!

10. Befunge

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

Wypróbuj online!

11. brainbool

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

Wypróbuj online!

12. 2sable

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

Wypróbuj online!

13. Sześciokąty

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

Dane wyjściowe według kodu znakowego

Wypróbuj online!

Rozłożony kod:

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

14. R

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

Wypróbuj online!

15. pne

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. Jabłczany

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

Wypróbuj online!

30. Nim

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

31. ryba

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

32. PHP

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

<?phpnie jest potrzebny z powodu tej meta

Wypróbuj online!

33. Golfscript

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

Wypróbuj online!

34. Oktawa

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

Wypróbuj online!

Kreator pszenicy
źródło
5
I dlatego nienawidzę języków obsługujących REPL
Mr. Xcoder,
1
Jeśli dodasz .inny język, możesz mieć 11. J:2#.2+3*3
Conor O'Brien
@WheatWizard tutaj
Conor O'Brien
1
@WheatWizard FWIW, wszystkie ważne permutacje J
Conor O'Brien
@WheatWizard J jest technicznie REPL. Poprzedź kod znakiem, echo aby zobaczyć wynik.
Conor O'Brien
11

1 język, 0 bajtów, wynik 1

Nie wiem, jak wysokie wyniki uzyskają w tym wyzwaniu, więc weźmy to miejsce.


Wypróbuj online!

W Retina pusty program bez wydruków wejściowych 1.

Wynik = 1! / 0! = 1/1 = 1

Lew
źródło
7
Na pierwszy rzut oka wygląda to jak żart, ale ma jak dotąd najwyższy wynik ...
trichoplax
Ten sam wynik dla 1-bajtowego wpisu w jednym języku, nie?
Adám
@ Adám tak, na przykład 1w R.
Giuseppe
5
W galarecie 0
daje to
5
@ Mr.Xcoder Nie, nie tak działa punktacja. Musisz wyprowadzać wartości od 1 do n, a każda z nich powinna mieć osobną permutację.
Kreator pszenicy,
6

2 języki, 2 bajty, wynik 1

Nie wyprzedza odpowiedzi Leo, ale pomyślałem, że przedstawię rozwiązanie w dwóch językach (no cóż, a ninja Wheat Wizard miał odpowiedź pomiędzy 2 punktami).

Siatkówka , odciski1

2`

Wypróbuj online!

Jest to w zasadzie to samo, co pusty program Leo.

Pyth , odciski2

`2

Wypróbuj online!

To jest repr(2)tak, że oblicza, "2"co zostanie wydrukowane jako 2.

Martin Ender
źródło
5

26 języków, 46 bajtów, wynik: 1,68861953e-28 (0,00000000000000000000000000000168861953)

Wszystkie języki są powszechne (tzn. Są używane przez ludzi w fazie rozwoju) i nie ma rozwiązania REPL w żadnym języku. Ta odpowiedź nigdy nie wygra, ale to nie jest powód, aby jej nie publikować ...

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

1. Python 2

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

Wypróbuj online!

2. Python 3

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

Wypróbuj online!

3. Ruby

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

Wypróbuj online!

4. CoffeeScript

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

Wypróbuj online!

5. PHP

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

Wypróbuj online!

6. Perl 5

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

Wypróbuj online!

7. Perl 6

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

Wypróbuj online!

8. JavaScript (ES5)

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

Wypróbuj online!

9. JavaScript (ES6)

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

Wypróbuj online!

10. JavaScript (ES7)

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

Wypróbuj online!

11. Partia

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

Nie można znaleźć tłumacza online dla tego. Spróbuj uruchomić ten kod w wierszu polecenia, jeśli korzystasz z systemu Windows.

12. Bash

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

Wypróbuj online!

13. CSS

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

Wypróbuj online!

14. Mniej

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

Wypróbuj online!

15. Rysik

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

Wypróbuj online!

16. TypeScript

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

Wypróbuj online!

17. Oktawa

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

Wypróbuj online!

18. Szybki

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

Wypróbuj online!

19. Julia

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

Wypróbuj online!

20. Maxima

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

Wypróbuj online!

21. Clojure

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

Wypróbuj online!

22. Groovy

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

Wypróbuj online!

23. CommonLisp

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

Wypróbuj online!

24. EmacsLisp

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

Wypróbuj online!

25. PicoLisp

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

Wypróbuj online!

26. Logo

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

Wypróbuj online!

Arjun
źródło
1
I Szybki, wyświetlający 18:print(18)//#**alechous: f{}:2345679+ ""enttd*
Pan Xcoder
Załóżmy, że zwiększy to twój wynik o około 0,002e-20 :))
Mr. Xcoder
3
pfft. 2017 będzie rokiem Befunge Web Framework!
Skyler
Komentarze zamieniają całe to pytanie w szaleństwo…
Mathime,
btw Applescript, który można zobaczyć w mojej odpowiedzi, działa bez REPL, ale wymaga --komentarzy. Jeśli dodasz --, prawdopodobnie możesz także pracować w co najmniej jednym rodzaju haskell.
Kreator pszenicy
3

12 języków, 16 bajtów - wynik: 0,003

print(0b11000)#1

Drukuje 1w 2sable

print(0b1100)#10

Wydrukuj 10w 05AB1E

print(0b11)#1000

Ponowne rozmieszczenie liczb binarnych drukuje 2-9, 11-12 w:

  • Kryształ
  • Julia 0.5
  • J-uby
  • Lilia
  • Perl 5
  • Perl 6
  • Python 3
  • Python 2
  • Pyton
  • Rubin

L = 145297152000 12! = 479001600

Właśnie użyłem TiO do listy prawidłowych języków do tego (jeśli wszystkie są uważane za unikalne?). Usunięto niektóre zduplikowane języki dzięki wprowadzeniu z Kreatora pszenicy. Ta odpowiedź wydaje się dość niska, choć uważam, że ma potencjał.

qoou
źródło
Julia 0.4 i 0.5 mają ten sam główny numer wersji. Podobnie jak Python 2 (PyPy) i Python 2. Jednak to prawdopodobnie zadziała w Python 1
Wheat Wizard
Czy możesz zrezygnować z wydruku i nazwać go repl? Ile z nich ma repliki?
Brian McCutchon,
@BrianMcCutchon Lily, Perl i Crystal nie mają odpowiedzi. Wszystkie pozostałe tak.
Kreator pszenicy,
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
Łukasz
źródło
Twój wynik to 4.73508590206e-15btw.
Kreator pszenicy,
Czy to jest 4 silnia wynosi 24. To podzielone przez 17 to w przybliżeniu 1,4
Łukasz
Nie podzielony przez 17, ale przez 5068545850368000, liczba sposobów zmiany kolejności łańcucha.
Kreator pszenicy,
Ups Źle to przeczytałem. Dzięki za zwrócenie na to uwagi.
Łukasz
@WheatWizard Ouch, też tęskniłem.
Adám