আদেশের কুইন


10

একটি প্রোগ্রাম লিখুন যা, যখন বিভিন্ন ভাষায় চালিত হয়, তখন প্রতিটি ভাষার কোডের আলাদা বাইট অনুচ্ছেদ আউটপুট করে। সঠিক উত্স কোডটি একটি অনুমান হিসাবে গণনা করা হয়।

এখানে "ভিন্ন ভাষা" বিভিন্ন সংস্করণ (পাই 2 এবং পাই 3) বা বিভিন্ন মানক পতাকা হতে পারে। এটি বিভিন্ন আউটপুট যা বিভিন্ন সংস্করণকে বাধ্য করে।

প্রোগ্রামের জন্য প্রতিটি ভাষায় যথাযথ কুইন বিধি প্রযোজ্য। আপনার স্কোর হিসাবে গণনা করা হয় (Language count)^6/(Code length in bytes), উচ্চতর স্কোর আরও ভাল হয়।

নমুনা:

যদি আপনার কোড AABএবং তিনটি বিভিন্ন ভাষায় আয় চলমান ABA, AABএবং AABতারপর, তার স্কোর হল 2^6/3(শুধুমাত্র দুই এক AABCOUNT)। ABAঅর্থহীন হলে ঠিক আছে।


1
আলাদা ভাষা হিসাবে কী গণনা করা হয়?
লাইকোনি

4
সঠিক কোয়েনের কোন সংজ্ঞা প্রযোজ্য? ( মার্টিনস , বা আইস ২৩৩ এর , বা এই মেটা থ্রেডগুলিতে অন্য কোনও সংজ্ঞা হতে পারে?) যথাযথ কুইন বিধিগুলি কি কেবল প্রোগ্রামের ব্যাখ্যাগুলিতে প্রয়োগ হয় যা আসলে কুইনস? (এটির মূল্যের জন্য, আমি মনে করি না যে যথাযথ কুইন বিধি প্রয়োগ করে এই চ্যালেঞ্জটি আরও উন্নত হয়েছে))
লিন

আপনার উদাহরণটিতে কাজ করে স্পষ্ট করে বলতে - আমার কোডটি যদি ভাষা -1 এবং ভাষা -2 এ AABমুদ্রিত AABহয় ABA, আমি ধরে নিয়েছি যে ভাষা -1 প্রোগ্রাম হিসাবে দেখলে এটি অবশ্যই একটি উপযুক্ত কুইন হতে হবে, এবং এর ব্যাখ্যার সাথে জড়িত কোনও বিধিনিষেধ নেই as একটি ভাষা -2 প্রোগ্রাম। এটা কি সঠিক?
লিন

1
কোড দৈর্ঘ্য অক্ষর বা বাইটে গণনা করা হয়? বিভিন্ন চরিত্রের এনকোডিংগুলির সাথে আমাদের কী করা উচিত?
dylnan

1
বাইট বনাম চরিত্রগুলি সম্পর্কে কী?
dylnan

উত্তর:


10

Befunge-98 , > <> , গোল> <> , বিদারণ , Wumpus , অঙ্কবাচক , মোম ফল এবং এলিস স্কোর: 8 6 /88 = 2978.909

"65*4+059*$!#.39*0jp2+'Wk,@ ''5&.'\d&o@o&88#+\@ol?!,'.'0.6'!+Ox,++tttt=++%-$#}.6~.F4*`*R

বেফুঞ্জে এটি ব্যবহার করে দেখুন! এটি <>> এ চেষ্টা করে দেখুন! গোল> <> এ এটি ব্যবহার করে দেখুন! ফিশনে এটি চেষ্টা করুন! উম্পাসে চেষ্টা করে দেখুন! কার্ডিনাল এ চেষ্টা করুন! বীভ্যাক্স এ চেষ্টা করুন! অ্যালিসে চেষ্টা করে দেখুন!

প্রতিপাদন!

প্রচুর 2 ডি ভাষা, সমস্ত আপত্তিজনক মোড়ানো স্ট্রিং আক্ষরিক। আউটপুট মধ্যে পার্থক্য এইভাবে:

> <>, গোল> <> এবং Befunge-98 সমস্ত (ছাড়া কোড পিছন প্রিন্ট "গত তিন, বিভিন্ন পদে অক্ষর), R*", O"*এবং "R*যথাক্রমে। বীভাক্সেরও পিছনে কোড রয়েছে তবে শেষ তিনটি অক্ষর আউটপুটটির প্রথম বিভাগে ছেদ করা হয়েছে। এলিস, বেশিরভাগ পিছন সব পলান অক্ষরের জন্য ব্যতীত ( ', \এবং ") পরিবর্তে সামনের সরানো হয়েছে।

Wumpus শুধুমাত্র প্রকৃত quine, বিদারণ রাখে "কোড পরিবর্তে শুরুতে শেষে এবং অঙ্কবাচক রাখে "মধ্যে 0এবং 5শুরু কাছাকাছি।

বিভিন্ন আদেশের প্রমাণ

ব্যাখ্যা:

Befunge-98:

"  Wrapping string literal pushes all other characters + a space to the stack
 65*4+  Push " to the stack
      059*$!#.39*0j   Push 1,27 to the stack
                   p  Pops the top three values of the stack (27,1,34)
                    2+  Adds 2 to the space to make "
                      'Wk,@  Prints the top 88 characters of the stack and terminates

> <> এবং গোল> <>:

সত্যি কথা বলতে কি আমি এখানে খুব একটা করিনি। এই দুটি ভাষার সম্পাদনের মধ্যে একমাত্র পার্থক্য হ'ল @কমান্ড, যা প্রতিটি ভাষার জন্য বিভিন্ন উপায়ে স্ট্যাকের শীর্ষ তিনটি মানকে ঘোরায়।

"  Wrapping string literal pushes all other characters to the stack
 65*4+  Push 34 (") to the stack
      059*$!#.  Jump to cell 45,0
                                   \@  Rotate the top three values of the stack 
                                     ol?!,'.'0.  Output the whole stack, ending in a divide by 0/stack underflow error

বিদারণ:

 "............R  Spawn a pointer going right

 "  Switch to printing mode and print every other character
 "  Switch off printing mode
  6  Teleport to other 6
 "........6'!+O   Print the "

Wumpus:

"  Bouncing string literal
 65*4+  Push a (")
      059*$!#.   Push 0 and jump to cell 0,45
                                        \  Reflect off mirror
                                       +   Add 0 to top of stack
                                 @o&88#    Print the top 88 characters of the stack

মৌলিক:

                                 %   Spawn two pointer going left/right (up/down despawn immediately)
                                  -$  Right pointer jumps to cell -1,0
                      x,++tttt=++     Left pointer prints "
"  While right pointer switches to print mode and prints the code

মোম গ্রুপ:

 "................*`*   Spawn pointers going in every direction
                        Every other * also spawns pointers, but they do nothing
                   `    Turn on print mode for two of the pointers going in different directions
                        This prints everything but the `
          #}.6~.F4*     Print a `

এলিস:

"  Wrapping string literal pushes all other characters to the stack
   Except 's and mirrors
 65*4+  Push " to the stack
      059*$!#.  Does nothing
              39*0j  Jumps to cell 39,0
                         ''5&.    Push ' and duplicate it 5 times
                              '\  Push \
                                d&o@  Print the whole stack

6

পার্ল 5 , রুবি , জাভাস্ক্রিপ্ট (যেমন, Chrome), পিএইচপি , পাইথন 2 , পাইথন 3 , 1206 বাইট, স্কোর 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,"%"))

পার্ল, রুবি, পিএইচপি, পাইথন 2 এবং পাইথন 3 অনলাইনে বৈধতা দিন!

দ্রষ্টব্য : ক্রোমের ইন্সপেক্টর কনসোলে উপরোক্ত প্রোগ্রামটি চালানো (যাতে অবস্থানগত তর্কগুলি সমর্থন করে বলে মনে হয় console.log) সঠিক প্রোগ্রামটি দেয়।

ব্যাখ্যা

এটি আমার প্রত্যাশার চেয়ে অনেক বেশি দীর্ঘ হয়েছিল এবং আমি আমার জীবনকে আরও কিছুটা শক্ত করে তুলেছি, তাই আমি সম্ভবত এটির সাথে ঝুঁকতে থাকব। আমি আরও বেশি ভাষায় যুক্ত করতে চাই তবে আমার এমন কিছু সন্ধান করা দরকার যা $সিগিলের জন্য কিছু মনে করবে না ...

এই প্রায় কাছাকাছি একটি প্রমিত quine বিন্যাস কোথায় ব্যবহার করার জন্য মূল্যউদ্ধৃতি হিসাব প্রতিটি ভাষার জন্য একটু ভিন্ন হল: রুবি মধ্যে %q&ব্যবহার করা হয়, পিএইচপি ব্যবহার ', জাভাস্ক্রিপ্ট (Node.js) ব্যবহার করে `এবং পার্ল 5 সদ্ব্যবহার q(... )। যেহেতু কেবল উদ্ধৃতিগুলি পরিবর্তন হয়, প্রোগ্রামটির বাকী অংশগুলি এখনও প্রতিটি ভাষায় কার্যকর এবং বৈধ বাক্য গঠন। পাইথন 2 এবং 3 ব্যবহার পূর্ববর্তী প্রোগ্রাম প্রায় আবৃত করা হয় """পাইথন 2 এবং '''পাইথন 3 জন্য।

ফলস্বরূপ পার্ল এবং রুবি প্রোগ্রামগুলি স্ট্যান্ডার্ড কুইন নয়, প্রতিটি পুনরাবৃত্তিকে অতিরিক্ত q/ %qগুলি যোগ করা হয়, তবে প্রথম প্রোগ্রামটি সঠিকভাবে ফিরে আসে।

ফলাফলগুলি হ'ল:

  • পার্ল 5:
    eval($_=q&... q&);printf($x=q&... q&,... );//#'%`'%`'%`'%`''''''''''''"""...
  • রুবি:
    eval($_=%q&... %q&);printf($x=%q&... %q&,... );//#`'`'`'`'''''''''''''"""...
  • জাভাস্ক্রিপ্ট (ক্রোম):
    eval($_=`... `);printf($x=`... `,... );//#%q&'%q&'%q&'%q&'''''''''''''"""...
  • পিএইচপি:
    eval($_='... ');printf($x='... ',... );//#`q&%`q&%`q&%`q&%''''''''''''"""...
  • পাইথন 2:
    ... _="""... """;... q="""...''''''''''''""";print(_.format(Q,_,q[0:-12]+R,"%"))
  • পাইথন 3:
    ... _='''... ''';... q='''...""""""""""""''';print(_.format(Q,_,q[0:-12]+R,"%"))

আমি এটি অনেক পুনরায় কাজ করেছি, আমি আশা করি যে আমি এখানে কোনও কী মিস করিনি। জো কিংয়ের স্কোরের কাছে যে কোনও জায়গায় যাওয়ার এখনও আমার কাছে বেশ উপায় আছে ...


2

জেলি , এবং এম , 2 6 /14 = 4.57

1Ɗṙ@“1Ɗṙ@ȮṾ”ȮṾ

জেলি এটি চেষ্টা করুন!

এম এ চেষ্টা করুন!

Ɗṙ@ȮṾ1“Ɗṙ@ȮṾ1” জেলি মধ্যে

1Ɗṙ@ȮṾ“1Ɗṙ@ȮṾ” এম


আমি নিশ্চিত নই যে চারকোলটি একটি যথাযথ কুইন হিসাবে গণ্য হয়েছে
এইচ.পি.উইজ

@ এইচ.পি.উইজ আমি এমন মন্তব্য করে যাচ্ছি add আমি ওপি
দাইলানান

@ l4m2 আপনি কি কাঠকয়লা প্রোগ্রামকে একটি সঠিক কুইন হিসাবে বিবেচনা করছেন? না দিলে মুছে ফেলব।
dylnan

আমার ধারণা Quineপিএইচপি এর মতো ?
l4m2


2

পাইথন 2 এবং পাইথন 3 , 2 6 /61 = 1.05

s='s=%r;print(s%%s[::(1/2>0)*2-1])';print(s%s[::(1/2>0)*2-1])

পাইথন 2 এ এটি ব্যবহার করে দেখুন!

পাইথন 3 এ এটি ব্যবহার করে দেখুন!

জো কিংকে ধন্যবাদ 12 বাইট সংরক্ষণ করা।

পাইথন 2 প্রিন্ট

s=')]1-2*)0>2/1(::[s%%s(tnirp;r%=s';print(s%s[::(1/2>0)*2-1])

পাইথন 3 প্রিন্ট

s='s=%r;print(s%%s[::(1/2>0)*2-1])';print(s%s[::(1/2>0)*2-1])

বাস্তবে দেখা যায় যে ব্যবহার 1/2হয় .5পাইথন 3 এবং 0পাইথন 2।


1

ব্যাশ / GolfScript, 72 বাইট, স্কোর 2 6 /72 = 8/9 (~ 0,888 ...)

.~0 () 
{ 
    declare "-f" @* ".~0" " ()
 "+@n.;
    echo '.~0;'
}
.~0;

প্রথম দুটি লাইনে একটি একক চলমান স্থান রয়েছে।

বাশ এ এটি অনলাইন চেষ্টা করুন।
এটি গল্ফস্ক্রিপ্টে অনলাইনে চেষ্টা করুন।

" একটি পলিকুইন লিখুন " চ্যালেঞ্জের জন্য @ জিমি 23013 এর উত্তরে কেবল পরিবর্তন । যে পরিবর্তনটি করা হয়েছিল তা হ'ল তৃতীয় লাইনের পরের স্থানটি সরিয়ে নিয়ে পরিবর্তন \n"+@n.;করা \n "+@n;

বাশ 1 এবং 2 এর মতো লাইন প্রিন্ট করবে:

.~0 ()    <- Trailing space
{         <- Trailing space

এবং গল্ফস্ক্রিপ্ট 1 এবং 2 এর মতো লাইন প্রিন্ট করবে:

.~0 ()   <- No trailing space
 {       <- Both leading and trailing space

এখানে বেস প্রোগ্রাম, বাশ আউটপুট এবং গল্ফস্ক্রিপ্ট আউটপুট যথাক্রমে নতুন-লাইনগুলির সাথে প্রতিস্থাপন করা হবে \n:

.~0 () \n{ \n    declare "-f" @* ".~0" " ()\n "+@n.;\n    echo '.~0;'\n}\n.~0;
.~0 () \n{ \n    declare "-f" @* ".~0" " ()\n "+@n.;\n    echo '.~0;'\n}\n.~0;
.~0 ()\n { \n    declare "-f" @* ".~0" " ()\n "+@n.;\n    echo '.~0;'\n}\n.~0;

      ^^^ Note the difference here
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.