Perl 5 , của Ruby , JavaScript (Chrome), PHP , Python 2 , Python 3 , 1206 byte, ghi được 6 6 /1206 = 38,6865671641791
q=1//2;s=+0;s|0;"/.__id__;#";_="""q=1//2;s=+0;s|0;"/.__id__;#";_={0}{1}{0};R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q={0}{2}{0};print(_.format(Q,_,q[0:-12]+R,"%"))""";R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q="""|;#<?ob_end_clean();
eval($_='"$t"?0?[$q=37 .chr+113 .chr+38 .chr,$p=(96 .chr+39 .chr)*4,$n=10 .chr,$s=39 .chr*12,$S=34 .chr*3]:eval("printf=console.log;c=String.fromCharCode;$q=c(96);$p=c(37,113,38,39).repeat(4);$n=c(10);$s=c(39).repeat(12);$S=c(34,34,34)"):[]?[$q=q(!g)^PA,$p=HARHARHARHAR^od2od2od2od2,$n=R^X,$s=bbbbbbbbbbbb^EEEEEEEEEEEE,$S=hhh^JJJ]:[$q=O^h,$p=str_repeat(RHa3^w9GS,4),$n=R^X,$s=str_repeat(b^E,12),$S=HHH^jjj];//#');printf($x='q=1//2;s=+0;s|0;"/.__id__;#";_=%7$sq=1//2;s=+0;s|0;"/.__id__;#";_={0}{1}{0};R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q={0}{2}{0};print(_.format(Q,_,q[0:-12]+R,"%8$s"))%7$s;R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q=%7$s|;#<?ob_end_clean();%5$seval($_=%3$s%1$s%3$s);printf($x=%3$s%2$s%3$s,$_,$x,$q,$p,$n,$s,$S,"%8$s",![]||([]+[])?$n:"");//#%4$s%6$s%7$s;print(_.format(Q,_,q[0:-12]+R,"%8$s"))%9$s',$_,$x,$q,$p,$n,$s,$S,"%",![]||([]+[])?$n:"");//#`q&%`q&%`q&%`q&%''''''''''''""";print(_.format(Q,_,q[0:-12]+R,"%"))
Xác thực Perl, Ruby, PHP, Python 2 và Python 3 trực tuyến!
Lưu ý : chạy chương trình trên trong bảng điều khiển Inspector trong Chrome (có vẻ như hỗ trợ các đối số vị trí để console.log
) trả về chương trình chính xác.
Giải trình
Điều này hóa ra lâu hơn nhiều so với tôi mong đợi và tôi cũng khiến cuộc sống của mình khó khăn hơn một chút, vì vậy tôi có khả năng tiếp tục mày mò với nó. Tôi cũng muốn thêm nhiều ngôn ngữ nữa, nhưng tôi cần tìm thứ gì đó không phiền $
...
Đây là khá nhiều định dạng Quine tiêu chuẩn mà tính toán của báo giá để sử dụng là một chút khác nhau cho mỗi ngôn ngữ: trong Ruby %q&
được sử dụng, sử dụng PHP '
, JavaScript (Node.js) tận dụng `
và Perl 5 sử dụng q(
... )
. Vì chỉ có dấu ngoặc kép thay đổi, phần còn lại của chương trình vẫn có thể thực thi và cú pháp hợp lệ trong mỗi ngôn ngữ. Python 2 và 3 được bao bọc xung quanh chương trình trước đó bằng """
Python 2 và '''
Python 3.
Các chương trình Perl và Ruby kết quả không phải là các tiêu chuẩn, bổ sung q
/ %q
s được thêm vào mỗi lần lặp, nhưng chương trình đầu tiên trả về chính xác.
Kết quả là:
- Perl 5:
eval($_=q&
... q&);printf($x=q&
... q&,
... );//#'%`'%`'%`'%`''''''''''''"""
...
- Ruby:
eval($_=%q&
... %q&);printf($x=%q&
... %q&,
... );//#`'`'`'`'''''''''''''"""
...
- JavaScript (Chrome):
eval($_=`
... `);printf($x=`
... `,
... );//#%q&'%q&'%q&'%q&'''''''''''''"""
...
- PHP:
eval($_='
... ');printf($x='
... ',
... );//#`q&%`q&%`q&%`q&%''''''''''''"""
...
- Con trăn 2:
... _="""
... """;
... q="""
...''''''''''''""";print(_.format(Q,_,q[0:-12]+R,"%"))
- Con trăn 3:
... _='''
... ''';
... q='''
...""""""""""""''';print(_.format(Q,_,q[0:-12]+R,"%"))
Tôi đã làm việc này rất nhiều, tôi hy vọng tôi đã không bỏ lỡ bất cứ điều gì quan trọng ở đây. Tôi vẫn còn khá nhiều cách để đến bất cứ nơi nào gần điểm số của Jo King ...