Anaglot Polygram


19

Bài tập

Viết một số mã có thể được sắp xếp lại thành n chương trình khác nhau bằng n ngôn ngữ khác nhau, mỗi ngôn ngữ xuất ra một số riêng biệt từ 1 đến n.

Không có hai ngôn ngữ nên giống nhau tuy nhiên các phiên bản khác nhau của "cùng một ngôn ngữ" sẽ được coi là ngôn ngữ riêng biệt, miễn là chúng có số phiên bản chính khác nhau. Đối với thử thách này, môi trường REPL không khác biệt với ngôn ngữ gốc của chúng nhưng vẫn là ngôn ngữ. Mỗi ngôn ngữ nên chạy trên một hoán vị riêng biệt của mã nguồn và xuất ra một số riêng biệt trong phạm vi.

Hoán vị sẽ được tính bằng byte không tính bằng ký tự .

Bạn nên bao gồm mỗi hoán vị được chạy với ngôn ngữ mà nó được chạy cho mục đích thử nghiệm.

Chấm điểm

Điểm của bạn sẽ là

Phương trình chấm điểm

Trong đó N là số lượng ngôn ngữ và L là số thứ tự duy nhất của các byte chương trình.

L không bằng độ dài của chương trình

(trừ khi chương trình là 1 hoặc 0 byte)

Đây là một kịch bản python để tính L lịch sự của Conor O'Brien.

L bằng độ dài của giai thừa của chương trình khi và chỉ khi không có byte lặp lại trong chương trình.

Mục tiêu là để tối đa hóa điểm số của bạn.



ý kiến ​​được cho phép?
Adám

@ Adám Sẽ không có cách nào hợp lý để cấm bình luận
Wheat Wizard

Vì vậy, nếu #là biểu tượng nhận xét bằng 5 ngôn ngữ, giải pháp tốt sẽ là1#2345
Adám

@ Adám cho bạn điểm 1/6. Tôi chắc chắn có thể dễ dàng đạt được điểm 1 với chương trình 2 byte (hoặc chương trình 1 byte cho vấn đề đó). Và thêm nhiều chữ số làm giảm điểm số của bạn.
Martin Ender

Câu trả lời:


30

34 Ngôn ngữ, 19 byte, Điểm: 38.832.018.459.912.437.760.000

Đây là một câu trả lời nhanh mà tôi đã ném cùng nhau để cho thấy rằng có thể nhận được câu trả lời tốt hơn 1.

 12233echo*+--@#..;

1. NTFJ

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

Điều này xuất ra thông qua mã ký tự, được cho phép bởi sự đồng thuận meta .

Hãy thử nó ở đây

2. Tcsh

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

3. 05AB1E

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

Hãy thử trực tuyến!

4. Thật ra

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

Hãy thử trực tuyến!

5. Befunge 98

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

Hãy thử trực tuyến!

6. Đàn con

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

Đầu ra theo mã ký tự

Hãy thử nó ở đây

Mã chưa mở

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

7. Haskell 8 REPL

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

8. Nghiêm túc

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

Hãy thử trực tuyến!

9.

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

Đầu ra theo mã ký tự

Hãy thử trực tuyến!

10. Befunge

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

Hãy thử trực tuyến!

11. Brainbool

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

Hãy thử trực tuyến!

12. 2

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

Hãy thử trực tuyến!

13. Lục giác

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

Đầu ra theo mã ký tự

Hãy thử trực tuyến!

Mã chưa mở

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

14. R

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

Hãy thử trực tuyến!

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. Bản thảo

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

25. LẠI 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

Hãy thử trực tuyến!

30. Nim

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

31. cá

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

32. PHP

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

<?phpkhông cần thiết do meta này

Hãy thử trực tuyến!

33. Bản thảo

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

Hãy thử trực tuyến!

34. Octave

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

Hãy thử trực tuyến!


5
Và đó là lý do tại sao tôi ghét các ngôn ngữ có khả năng REPL
Ông Xcoder

1
Nếu bạn thêm .và một ngôn ngữ khác, bạn có thể có 11. J:2#.2+3*3
Conor O'Brien

@WheatWizard ở đây
Conor O'Brien


@WheatWizard J về mặt kỹ thuật là REPL. Tiền tố mã echo để xem đầu ra.
Conor O'Brien

11

1 ngôn ngữ, 0 byte, điểm 1

Tôi không biết điểm số cao sẽ đạt được như thế nào trong thử thách này, vì vậy hãy nắm lấy vị trí này.


Hãy thử trực tuyến!

Trong Retina, chương trình trống không có bản in đầu vào 1.

Điểm = 1! / 0! = 1/1 = 1


7
Cái nhìn này thoạt nhìn giống như một câu trả lời đùa, nhưng có số điểm cao nhất từ ​​trước đến nay ...
trichoplax

Điểm giống nhau cho mục nhập ngôn ngữ đơn 1 byte, không?
Adám

@ Adám yeah, 1ví dụ như trong R, chẳng hạn
Giuseppe

5
Trong thạch, kết quả này xuất ra 0, vì vậy 2 ngôn ngữ => điểm = 2
Ông Xcoder

5
@ Mr.Xcoder Không, đó không phải là cách hoạt động của tính điểm. Bạn phải xuất 1 đến n và mỗi lần phải nằm trên một hoán vị riêng.
Phù thủy lúa mì

6

2 ngôn ngữ, 2 byte, điểm 1

Không đánh bại câu trả lời của Leo, nhưng tôi nghĩ rằng tôi sẽ trình bày một giải pháp 2 ngôn ngữ (tốt, và ninja Wizard thuật sĩ sẽ là câu trả lời 2 điểm ở giữa).

Võng mạc , bản in1

2`

Hãy thử trực tuyến!

Điều này về cơ bản giống như chương trình trống của Leo.

Bình , in2

`2

Hãy thử trực tuyến!

Điều này là repr(2)để nó tính toán "2"được in như 2.


5

26 ngôn ngữ, 46 byte, Điểm: 1.68861953e-28 (0,00000000000000000000000000000168861953)

Tất cả các ngôn ngữ là ngôn ngữ chính (tức là chúng thực sự được sử dụng bởi những người đang phát triển) và không có giải pháp REPL trong bất kỳ ngôn ngữ nào. Câu trả lời này sẽ không bao giờ thắng, nhưng đó không phải là lý do để không đăng nó ...

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

1. Python 2

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

Hãy thử trực tuyến!

2. Python 3

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

Hãy thử trực tuyến!

3. Ruby

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

Hãy thử trực tuyến!

4. Cà phê

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

Hãy thử trực tuyến!

5. PHP

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

Hãy thử trực tuyến!

6. Perl 5

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

Hãy thử trực tuyến!

7. Perl 6

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

Hãy thử trực tuyến!

8. JavaScript (ES5)

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

Hãy thử trực tuyến!

9. JavaScript (ES6)

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

Hãy thử trực tuyến!

10. JavaScript (ES7)

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

Hãy thử trực tuyến!

11. Mẻ

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

Không thể tìm thấy một thông dịch viên trực tuyến cho cái này. Hãy thử chạy mã này trong Dấu nhắc Lệnh, nếu bạn đang ở trên Windows.

12. Bash

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

Hãy thử trực tuyến!

13. CSS

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

Hãy thử trực tuyến!

14. Ít hơn

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

Hãy thử trực tuyến!

15. Bút stylus

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

Hãy thử trực tuyến!

16. TypeScript

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

Hãy thử trực tuyến!

17. Octave

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

Hãy thử trực tuyến!

18. Swift

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

Hãy thử trực tuyến!

19. Julia

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

Hãy thử trực tuyến!

20. Tối đa

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

Hãy thử trực tuyến!

21. Áo choàng

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

Hãy thử trực tuyến!

22. Groovy

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

Hãy thử trực tuyến!

23. CommonLisp

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

Hãy thử trực tuyến!

24. EmacsLisp

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

Hãy thử trực tuyến!

25. PicoLisp

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

Hãy thử trực tuyến!

26. Logo

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

Hãy thử trực tuyến!


1
Và Swift, hiển thị 18:print(18)//#**alechous: f{}:2345679+ ""enttd*
Ông Xcoder

Giả sử điều này sẽ tăng điểm của bạn thêm khoảng 0,002e-20 :))
Ông Xcoder

3
pfft. Năm 2017 sẽ là năm của Khung web Befunge!
Skyler

Nhận xét sẽ biến toàn bộ câu hỏi này thành điên rồ
Mathime

btw Applescript có thể được nhìn thấy trong câu trả lời của tôi hoạt động mà không cần REPL, nhưng không yêu cầu --bình luận. Nếu bạn thêm, --có lẽ bạn cũng có thể làm việc trong ít nhất một loại haskell.
Thuật sĩ lúa mì

3

12 ngôn ngữ, 16 byte - Điểm: 0,003

print(0b11000)#1

In 1trong 2 giây

print(0b1100)#10

In 10trong 05AB1E

print(0b11)#1000

Sắp xếp lại các số nhị phân in 2-9, 11-12 trong:

  • Pha lê
  • Julia 0,5
  • J-uby
  • Lily
  • Perl 5
  • Perl 6
  • Con trăn 3
  • Con trăn 2
  • Con trăn
  • Hồng ngọc

L = 145297152000 12! = 479001600

Tôi chỉ sử dụng TiO cho danh sách các ngôn ngữ hợp lệ cho việc này (Nếu tất cả những ngôn ngữ này được coi là duy nhất?). Đã xóa một số ngôn ngữ trùng lặp nhờ đầu vào từ Wheat Wizard. Câu trả lời này có vẻ khá thấp, mặc dù tôi cảm thấy nó có tiềm năng.


Julia 0,4 và 0,5 có cùng số phiên bản chính. Và Python 2 (PyPy) và Python 2. cũng vậy. Tuy nhiên, điều này có thể sẽ hoạt động trong Python 1
Wheat Wizard

Bạn có thể rời khỏi bản in và gọi nó thay thế? Có bao nhiêu trong số này có thay thế?
Brian McCutchon

@BrianMcCutchon Lily, Perl và Crystal không có người thay thế. Tất cả những người khác làm.
Thuật sĩ lúa mì

1

JavaScript (ES6), Python 2, Python 3, Japt, 4.735e-15

# ()//1234=>inprt

ES6 (1)

p=>1//rint 234()#

Con trăn 2 (2)

print 2#134=>//()

Con trăn 3 (3)

print(3)# 124=>//

Japt (4)

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

Điểm của bạn là 4.73508590206e-15btw.
Thuật sĩ lúa mì

Là nó? 4 giai thừa là 24. Chia cho 17 là khoảng 1,4
Luke

Không chia cho 17 mà bằng 5068545850368000, số cách sắp xếp lại chuỗi.
Phù thủy lúa mì

Rất tiếc. Đọc sai mà. Cảm ơn đã chỉ ra điều đó.
Lu-ca

@WheatWizard Ouch, tôi cũng nhớ điều đó.
Adám
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.