একটি প্যালিনড্রোম-পলিগ্লোট-কুইন লিখুন


25

একটি প্রোগ্রাম একটি যে: একটি "palipolyquine" লিখ quine , একটি বহুভাষিক , এবং একটি যে শব্দ কবিতা প্রভৃতি উলটা করিয়া পড়িলেও একই থাকে ।

নিয়মাবলী:

  • বহুভোজী ভাষার সংখ্যা কোড আকারের চেয়ে বেশি পছন্দনীয়।
  • সংক্ষিপ্ত উত্তর (বাইটে) জিতবে, টাইয়ের ক্ষেত্রে।
  • পলিগ্লোট এবং কুইন বিধিগুলি এখানে দেখুন: একটি পলিকুইন লিখুন

আমার উদাহরণ (আমার কাছে পরীক্ষাগুলি সহ একটি ভান্ডার -উত্স রয়েছে):

সি # / জাভা (1747 বাইট):

/**///\u000A\u002F\u002A
using System;//\u002A\u002F
class Program{public static void//\u000A\u002F\u002A
Main//\u002A\u002Fmain
(String[]z){String s="`**?`@#_^using System;?_#^class Program{public static void?@#_^Main?_#main^(String[]z){String s=!$!,t=s;int i;int[]a=new int[]{33,94,38,64,35,95,96,63,36};String[]b=new String[]{!&!!,!&n!,!&&!,!&@!,!&#!,!&_!,!`!,!?!,s};for(i=0;i<9;i++)t=t.?@#_^Replace?_#replace^(!!+(char)a[i],b[i]);t+='*';for(i=872;i>=0;i--)t=t+t?@#_^[i];Console.Write?_#.charAt(i);System.out.printf^(t);}}/",t=s;int i;int[]a=new int[]{33,94,38,64,35,95,96,63,36};String[]b=new String[]{"\"","\n","\\","\\u000A","\\u002F","\\u002A","/","//",s};for(i=0;i<9;i++)t=t.//\u000A\u002F\u002A
Replace//\u002A\u002Freplace
(""+(char)a[i],b[i]);t+='*';for(i=872;i>=0;i--)t=t+t//\u000A\u002F\u002A
[i];Console.Write//\u002A\u002F.charAt(i);System.out.printf
(t);}}/*/}};)t(
ftnirp.tuo.metsyS;)i(tArahc.F200u\A200u\//etirW.elosnoC;]i[
A200u\F200u\A000u\//t+t=t)--i;0=>i;278=i(rof;'*'=+t;)]i[b,]i[a)rahc(+""(
ecalperF200u\A200u\//ecalpeR
A200u\F200u\A000u\//.t=t)++i;9<i;0=i(rof;}s,"//","/","A200u\\","F200u\\","A000u\\","\\","n\",""\"{][gnirtS wen=b][gnirtS;}63,36,69,59,53,46,83,49,33{][tni wen=a][tni;i tni;s=t,"/}};)t(^ftnirp.tuo.metsyS;)i(tArahc.#_?etirW.elosnoC;]i[^_#@?t+t=t)--i;0=>i;278=i(rof;'*'=+t;)]i[b,]i[a)rahc(+!!(^ecalper#_?ecalpeR^_#@?.t=t)++i;9<i;0=i(rof;}s,!?!,!`!,!_&!,!#&!,!@&!,!&&!,!n&!,!!&!{][gnirtS wen=b][gnirtS;}63,36,69,59,53,46,83,49,33{][tni wen=a][tni;i tni;s=t,!$!=s gnirtS{)z][gnirtS(^niam#_?niaM^_#@?diov citats cilbup{margorP ssalc^#_?;metsyS gnisu^_#@`?**`"=s gnirtS{)z][gnirtS(
niamF200u\A200u\//niaM
A200u\F200u\A000u\//diov citats cilbup{margorP ssalc
F200u\A200u\//;metsyS gnisu
A200u\F200u\A000u\///**/

সংকলন আইডোন.কম এ উপলব্ধ: সি # , জাভা


2
পলি-কুইন তৈরির সাথে কি কোনও বিধি জড়িত আছে? কোন সীমাবদ্ধতা? যদি এই প্রশ্নটি হ'ল, তবে একটি সম্ভাব্য (তুচ্ছ) সমাধান 1(যা 1এখানে অনেক ভাষায় আউটপুট হবে , এবং প্যালিনড্রোমিক)।
ক্লিস্টিক

আমি আরও আনুষ্ঠানিক বিধি যুক্ত।
ইভান কোচুরকিন

2
আহ, দুর্দান্ত। ভাল, আপনার প্রথম চ্যালেঞ্জ শুভকামনা! যদিও আরও কিছু জিনিস: আপনার অবশ্যই সেখানে কোড ব্লকের দরকার নেই এবং আপনার সম্ভবত অন্য চ্যালেঞ্জ থেকে নিয়মগুলি এখানে স্থানান্তরিত করা উচিত।
ক্লিমেজিক

1
5-ভাষার, 999-বাইট উত্তরটি কি 4-ভাষা, 100-বাইট উত্তর দেয়?
ETH প্রোডাকশনস

@ ইথ প্রডাকশনস, আমি হ্যাঁ মনে করি। লাইনের সংখ্যা হ্রাস করার চেয়ে নতুন ভাষা যুক্ত করা আরও শক্ত।
ইভান কোচুরকিন

উত্তর:


14

সিজাম / গল্ফস্ক্রিপ্ট , 2 ভাষা, 50 বাইট

{`"0$~e#"+0$-1%"":n}0$~e##e~$0}n:""%1-$0+"#e~$0"`{

সিজেম চেষ্টা করে দেখুন! গল্ফস্ক্রিপ্ট এ চেষ্টা করুন!

হু, এটি অবাক করা অবাক করে দিয়েছিল দীর্ঘকাল।

ব্যাখ্যা

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

সুতরাং উভয় ভাষায় মূল কুইনগুলি হ'ল:

{".~"}.~

{"_~"}_~

গলফস্ক্রিপ্ট এবং সিজেমে যথাক্রমে। এগুলি সিজোম মূলত গল্ফস্ক্রিপ্ট দ্বারা অনুপ্রাণিত হয়েছিল (তবে এটি তখন থেকে অনেকটা বিচ্যুত হয়েছিল) এর জন্য বেশ অনুরূপ ধন্যবাদ। প্রথম পার্থক্য আমরা যে বিজ্ঞপ্তি একটি ব্যবহার হয় .স্ট্যাক এবং অন্যান্য ব্যবহার উপরের অনুরূপ জন্য _। এই সমস্যাটি এড়াতে একটি সাধারণ কৌশল ব্যবহার করা হয় 0$, যেহেতু উভয় ভাষায়ই "অনুলিপি-অন-আইটেম-অন-স্ট্যাক" অপারেটর রয়েছে $। সুতরাং আমরা পেয়েছি {"0$~"}0$~, যদিও এটি এখনও গল্ফস্ক্রিপ্টে একটি অনুচ্ছেদে লাইনফিড প্রয়োজন। তবে আসুন শেষে এই সম্পর্কে চিন্তা করা যাক।

প্রথমত, আমাদের এটিকে একটি প্যালিনড্রোম তৈরি করা দরকার। এর সুস্পষ্ট সমাধান হ'ল একটি মন্তব্য যুক্ত করা এবং উত্স কোডটি বিপরীতে রেখে দেওয়া। এটি বেশ সহজ, কারণ সিজেএম e#মন্তব্যগুলির জন্য ব্যবহার করে , এবং গল্ফস্ক্রিপ্টে eকিছুই করে না, এবং #এটি একটি মন্তব্য। সুতরাং আমরা যদি সংযোজন e#...উভয় ভাষার জন্য কাজ করে। আমরা যা পেয়েছি তা এখানে:

{"0$~"}0$~e##e~$0}"~$0"{

অবশ্যই, এটি আসলে থেকে অংশটি প্রিন্ট করে না e#। আমরা সোর্স কোড থেকে খুব সহজেই এটি পুনর্গঠন করতে পারি। উভয় ভাষাই প্রাথমিক ব্লকটিকে স্ট্রিংয়ের সাথে স্ট্রিংয়ে রূপান্তর করতে পারে `এবং এর "0$~"সাথে অংশটি সংযোজন করতে পারে +, যাতে আমরা একটি স্ট্রিংয়ে পুরো অমনস্ক্রিত উত্স কোডটি পাই। মিররযুক্ত অনুলিপি সংযোজন করার জন্য আমাদের যা করতে হবে তা হ'ল 0$পুনরায় তার সাথে ডুপ্লিকেট করা এবং তারপরে এটি বিপরীত করা -1%, যা উভয় ভাষায়ও কাজ করে। সুতরাং এখন আমরা এটি পেয়েছি:

{`"0$~e#"+0$-1%}0$~e##e~$0}%1-$0+"#e~$0"`{

এটি সিজেমে একটি বৈধ প্যালিনড্রোমিক কুইন, এবং এটি গল্ফস্ক্রিপ্টেও কাজ করে তবে এখনও সেই প্রসেসিক ট্রেলিং লাইনফিডটি মুদ্রণ করে।

এটি প্রতিরোধের স্বাভাবিক উপায় হ'ল একটি খালি স্ট্রিং বরাদ্দ করা n, কারণ গল্ফস্ক্রিপ্ট আসলে যা করে তা হ'ল শেষে প্রবন্ধগুলি মুদ্রণ করা n। সুতরাং আমাদের যা প্রয়োজন তা হল "":n। তাহলে সিজেমের কী হবে? ধন্যবাদ, এটি মোটেও কিছুই করে না। ""এছাড়াও একটি খালি স্ট্রিং (বা খালি তালিকা, তারা সিজেমে একই জিনিস), এবং :অপারেটরের মানচিত্র n( লাইনফিডের সাথে মুদ্রণ) তালিকার উপরে। তবে তালিকাটি খালি থাকার কারণে এটির উপরে একটি অপারেটরকে ম্যাপিং করা কিছুই করে না। সুতরাং, আমরা সিজোমের সাথে গোলযোগ না করে লাইনফিডটি থেকে মুক্তি পেতে পারি এবং চূড়ান্ত সমাধানটি শেষ করতে পারি:

{`"0$~e#"+0$-1%"":n}0$~e##e~$0}n:""%1-$0+"#e~$0"`{

5

পার্ল 5 / রুবি / পিএইচপি / জাভাস্ক্রিপ্ট (ব্রাউজার), 4 টি ভাষা, 513 বাইট

$_='$z=0?"$&".next: eval("printf=console.log;atob`JCc`");printf("%s_=%s%s%s;eval(%s_);//#//;)_%s(lave;%s%s%s=_%s",$d=$z[0]||h^L,$q=$z[1]||h^O,$_,$q,$d,$d,$q,"0"?$_.split("").reverse().join(""):~~reverse,$q,$d)';eval($_);//#//;)_$(lave;')d$,q$,esrever~~:)""(nioj.)(esrever.)""(tilps._$?"0",q$,d$,d$,q$,_$,O^h||]1[z$=q$,L^h||]0[z$=d$,"s%_=s%s%s%;eval(s%_);//#//;)_s%(lave;s%s%s%=_s%"(ftnirp;)"`cCJ`bota;gol.elosnoc=ftnirp"(lave :txen."&$"?0=z$'=_$

অনলাইন পার্ল চেষ্টা করুন!
এটি অনলাইন চেষ্টা করুন!
অনলাইনে পিএইচপি চেষ্টা করুন!
এটি অনলাইনে বৈধতা দিন!

$_='$z=0?"$&".next: eval("printf=console.log;atob`JCc`");printf("%s_=%s%s%s;eval(%s_);//#//;)_%s(lave;%s%s%s=_%s",$d=$z[0]||h^L,$q=$z[1]||h^O,$_,$q,$d,$d,$q,"0"?$_.split("").reverse().join(""):~~reverse,$q,$d)';eval($_);//#//;)_$(lave;')d$,q$,esrever~~:)""(nioj.)(esrever.)""(tilps._$?"0",q$,d$,d$,q$,_$,O^h||]1[z$=q$,L^h||]0[z$=d$,"s%_=s%s%s%;eval(s%_);//#//;)_s%(lave;s%s%s%=_s%"(ftnirp;)"`cCJ`bota;gol.elosnoc=ftnirp"(lave :txen."&$"?0=z$'=_$

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