Анаглот Полиграммы

19

задача

Напишите некоторый код, который можно переставить в n разных программ на n разных языках, каждый из которых будет иметь различное число от 1 до n.

Не должно быть одинаковых двух языков, однако разные версии «одного и того же языка» будут считаться разными языками, если они имеют разные основные номера версий. Для этой задачи среды REPL не отличаются от своих родительских языков, но все еще остаются языком. Каждый язык должен работать с определенной перестановкой исходного кода и выводить отдельное число в диапазоне.

Перестановки будут учитываться в байтах, а не в символах .

Вы должны включить каждую перестановку, которая запускается с языком, на котором она запускается для целей тестирования.

счет

Ваша оценка будет

Оценочное уравнение

Где N - количество языков, а L - количество уникальных порядков байтов программ.

L не равно длине программы

(если программа не имеет 1 или 0 байтов)

Вот скрипт на python для вычисления L, предоставленный Конором О'Брайеном.

L равна длине факториала программы тогда и только тогда, когда в программе нет повторяющихся байтов.

Цель состоит в том, чтобы максимально увеличить ваш счет.

Мастер пшеницы
источник
Связанный.
Мартин Эндер
комментарии разрешены?
Адам
@ Adám Не было бы разумного способа запретить комментарии
Wheat Wizard
Так что, если #это символ комментария на 5 языках, хорошее решение будет1#2345
Адам
@ Адам, который дает тебе оценку 1/6. Я уверен, что оценка 1 легко возможна с 2-байтовой программой (или 1-байтовой программой в этом отношении). А добавление большего количества цифр уменьшает ваш счет.
Мартин Эндер

Ответы:

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. Кш

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

22. Баш

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

23. Зш

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

24. Яблочный

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

25. Lua REPL

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

26. Юлия РЕПЛ

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

Попробуйте онлайн!

30. Ним

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

31. рыба

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

32. PHP

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

<?phpне нужен из-за этой мета

Попробуйте онлайн!

33. Гольфскрипт

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

Попробуйте онлайн!

34. Октава

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

Попробуйте онлайн!

Мастер пшеницы
источник
5
И именно поэтому я ненавижу языки с поддержкой REPL
Mr. Xcoder
1
Если вы добавите .и другой язык, вы можете иметь 11. J:2#.2+3*3
Конор О'Брайен
@WheatWizard здесь
Конор О'Брайен
@WheatWizard J технически является REPL. Префикс кода, echo чтобы увидеть вывод.
Конор О'Брайен,
11

1 язык, 0 байтов, оценка 1

Я не знаю, насколько высокие результаты получат в этом соревновании, поэтому давайте возьмем это место.


Попробуйте онлайн!

В Retina пустая программа без входных распечаток 1.

Оценка = 1! / 0! = 1/1 = 1

Лео
источник
7
Это на первый взгляд , как шутка ответ, но имеет самый высокий балл до сих пор ...
Trichoplax
Та же оценка для 1-байтовой записи на одном языке, нет?
Адам
@ Adám да, как 1в R, например
Джузеппе
5
В желе это выводит 0, поэтому 2 языка => счет = 2
г-н Xcoder
5
@ Mr.Xcoder Нет, это не то, как работает оценка. Вы должны вывести от 1 до n, и каждый должен быть в отдельной перестановке.
Wheat Wizard
6

2 языка, 2 байта, оценка 1

Не побеждает ответ Лео, но я подумал, что представлю решение с двумя языками (ну, а Ниндзя Пшеничный Волшебник все равно получит ответ со счетом 2).

Сетчатка , принты1

2`

Попробуйте онлайн!

По сути, это то же самое, что и пустая программа Лео.

Пит , принты2

`2

Попробуйте онлайн!

Это repr(2)так, он вычисляет, "2"который печатается как 2.

Мартин Эндер
источник
5

26 языков, 46 байтов, оценка: 1,681919e-28 (0,000000000000000000000000000168861953)

Все языки являются основными (то есть они фактически используются людьми в процессе разработки), и на любом языке нет решения REPL. Этот ответ никогда не победит, но это не причина, чтобы не публиковать его ...

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

1. Python 2

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

Попробуйте онлайн!

2. Питон 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. ПикоЛисп

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

Попробуйте онлайн!

26. Логотип

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

Попробуйте онлайн!

Арджун
источник
1
И Свифт, отображающий 18:print(18)//#**alechous: f{}:2345679+ ""enttd*
Мистер Xcoder
Предположим, это увеличит ваш счет примерно на 0,002e-20 :))
Mr. Xcoder
3
Пфф. 2017 год станет годом веб-фреймворка Befunge!
Скайлер
Комментарии просто превратят весь этот вопрос в безумие ...
Mathime
Кстати, Applescript, который можно увидеть в моем ответе, работает без REPL, но требует --комментариев. Если вы добавите, --вы, вероятно, также сможете работать хотя бы с одним типом haskell.
Пшеничный волшебник
3

12 языков, 16 байт - оценка: 0,003

print(0b11000)#1

Отпечатки 1в 2sable

print(0b1100)#10

Печать 10в 05AB1E

print(0b11)#1000

Перестановка двоичных чисел печатает 2-9, 11-12 в:

  • кристалл
  • Юлия 0,5
  • J-убий
  • Лили
  • Perl 5
  • Perl 6
  • Python 3
  • Python 2
  • питон
  • Рубин

L = 145297152000 12! = 479001600

Я просто использовал TiO для списка допустимых языков для этого (если они все считаются уникальными?). Удалены некоторые дублирующие языки благодаря вкладу Wheat Wizard. Этот ответ выглядит довольно низким, хотя я чувствую, что у него есть потенциал.

qoou
источник
Юлия 0.4 и 0.5 имеют одинаковый основной номер версии. Также как и Python 2 (PyPy) и Python 2. Однако это, вероятно, будет работать в Python 1
Wheat Wizard
Можете ли вы оставить печать и назвать это repl? У скольких из них есть ответы?
Брайан Маккатон
@BrianMcCutchon У Лили, Перла и Кристалла нет ответов. Все остальные делают.
Пшеничный волшебник
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=>//()

Питон 3 (3)

print(3)# 124=>//

Джапт (4)

#rint>=3/2)p (4/1
Люк
источник
Ваш счет, 4.73508590206e-15кстати.
Wheat Wizard
Это? 4 факториал равен 24. Это делится на 17 примерно 1,4
Лука
Не делится на 17, а на 5068545850368000, количество способов перестановки строки.
Пшеничный волшебник
К сожалению. Неправильно прочитанное. Спасибо за указание на это.
Люк
@WheatWizard Ой, я тоже это пропустил.
Адам