একটি কুইন স্যুট লিখুন


30

আমাদের প্রচুর চ্যালেঞ্জ হয়েছিল, তবে প্রচুর পরিমাণে কুইন ফর্ম্যাট একইরকম, আমাদের কুইনে কিছুটা বৈকল্পিক তৈরি করতে দিন।

আপনার কাজটি হ'ল একই ভাষাতে প্রোগ্রামের একটি নির্বাচন তৈরি করা (কমপক্ষে 2), যার মধ্যে তাদের সমস্ত নিজস্ব উত্স কোড আউটপুট দেয়, তবে এই প্রোগ্রামগুলির কোনওটিই কোনও অক্ষর ভাগ করতে পারে না।

উদাহরণস্বরূপ, আপনি যদি কোনও প্রোগ্রাম তৈরি করে থাকেন তবে:

printf+qw(printf+qw(%s)x2)x2

আপনার পরবর্তী প্রোগ্রামের মধ্যে কোনওটি অন্তর্ভুক্ত করতে পারে না:

%()+2finpqrstwx

ইত্যাদি।

বিধি

  • আপনি ইউনিকোড অক্ষর ব্যবহার করতে পারেন, তবে আপনাকে অবশ্যই বাইটে স্কোর করতে হবে।
  • সমস্ত প্রোগ্রামের অবশ্যই একটি সঠিক কুইনের সম্প্রদায় সংজ্ঞা পূরণ করতে হবে । এর অর্থ এই যে খালি স্ট্রিংটি অন্যান্য জিনিসের সাথে বৈধ কুইন হিসাবে গণনা করে না।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • উপরের সংজ্ঞাটি পূরণ করার সাথে সাথে ফাংশন বা সম্পূর্ণ প্রোগ্রামগুলিকে অনুমোদিত।
  • প্রতীক স্বাধীন ভাষা (লেংগুয়েজ এবং হেডস্যাকস সহ) অনুমোদিত নয়।
  • টাই ব্রেকার হিসাবে সংক্ষিপ্ততম কোড সহ বেশিরভাগ প্রোগ্রাম জিতে।

যেহেতু নিকটতম ভোট রয়েছে তাই আমি আলোচনার জন্য স্যান্ডবক্স পোস্টটি মুছে ফেলব
ডম হেস্টিংস

আমি লক্ষ্য করেছি যে স্যান্ডবক্সের মন্তব্যে উল্লেখ করা হয়েছে যে ফাংশন জমা দেওয়ার অনুমতি দেওয়া হয়েছে, কিন্তু চ্যালেঞ্জটি এ সম্পর্কে কিছুই বলে না - আমি বিপরীতটিকে কুইনের জন্য ডিফল্ট হিসাবে ধরে নিছিলাম।
janর্জন জোহানসেন

2
সম্পর্কিত (কনভার্স চ্যালেঞ্জের ধরণ - আপনার কুইনগুলি তাদের পরিবর্তে একে অপরকে আউটপুট দিতে হবে)
নাথানিয়েল

1
পেছনের নতুন লাইনের কী? আমার কুইনগুলির একটি যদি মুদ্রণ করে, অন্যজনকে কী তা করা এড়াতে হবে? (আমার সন্দেহ হয় যে সর্বাধিক উত্তরগুলি এটি করে না))
নাথানিয়েল

2
@ ডোমহাস্টিংস আমি একটি মেটা প্রশ্ন খুঁজে পাইনি, তাই আমি একটি জিজ্ঞাসা করেছি ।
নাথানিয়েল

উত্তর:


27

ভি , 3 , 5 কুইন, 46 বাইট

2A2A

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

Hexdump:

00000000: 3241 3241                                2A2A

ব্যাখ্যা:

2     " 2 times...
 A    " (A)ppend the following text...
  2A  "   '2A'

5­­­a5­­­a

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

Hexdump:

00000000: 35ad adad 6135 adad ad61                 5...a5...a

ব্যাখ্যা:

5---        " 5 - 3 times...
    a       " (a)ppend the following text...
     5---a  "   '5---a'

1«I1«I

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

Hexdump:

00000000: 31ab 4931 ab49                           1.I1.I

ব্যাখ্যা:

1«      " 1 + 1 times...
  I     " (I)nsert the following text...
   1«I  "   '1«I'

এখান থেকে তারা মজাদার পেতে শুরু করেছে ...

ñi34x@-qPÉÑ~ÿ

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

Hexdump:

00000000: f169 1633 341b 7840 2d71 50c9 d17e ff    .i.34.x@-qP..~.

ব্যাখ্যা:

ñ                       " Wrap all the following in macro '"q':
 i<C-v>34               "   Insert character code 34 `"`
         <esc>          "   Return to normal mode
              x         "   Delete the character we just inserted. Now, running `@-` will be equal to running `"`
                  P     "   Paste...
               @-       "   From Register...
                 q      "   "q
                   ÉÑ   "   Insert 'Ñ' at the beginning of this line
                     ~  "   Toggle the case of the character we just inserted
                      ÿ "   Black magic

:norm é:":p

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

Hexdump:

00000000: 3a6e 6f72 6d20 e93a 223a 70              :norm .:":p

ব্যাখ্যা:

:norm       " Run the following commands as if typed:
      é:    "   insert ':'. Somehow also does black magic and resets the value of '":`
        ":p "   Paste the last ex command to be run ('norm é:":p')

এই উত্তরটি কালো জাদুতে পূর্ণ। 1 এবং 4 কুইনগুলি নতুন নয়, তবে অন্যান্য 3 টি এর আগে কখনও পাওয়া যায়নি, তাই এই কুইনের অর্ধেকেরও বেশি এখন সবেমাত্র সন্ধান করা হয়েছিল।


8
তৃতীয় প্রোগ্রামটি ট্রলিং করছে। "আপনি একজন normie :p"
mbomb007

4
@ mbomb007 বাধ্যতামূলকREEEEEE--
ম্যাজিক অক্টোপাস

17

জেলি , 2 3 4 5 কুইন্স, 14 18 81 65 59 56 326 265 247 229 216 বাইট

3 বাইট

”ṘṘ

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

স্ট্যান্ডার্ড কুইন। ”Ṙআক্ষরিক জন্য একটি চরিত্র এর স্ট্রিং প্রতিনিধিত্ব মুদ্রণ করে স্ট্রিং সুস্পষ্টভাবে মুদ্রিত হয়।

4 বাইট

⁾⁾ḤḤ

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

একটি দুটি চরিত্রের স্ট্রিং আক্ষরিক শুরু হয় এবং এর যুক্তি দ্বিগুণ করে। স্ট্রিং ইনপুট সহ, প্রতিটি চরিত্রের সাথে ম্যাপ করা হয়। সুতরাং স্ট্রিং ⁾Ḥফলন উপর ⁾⁾ḤḤউত্স, কোড।

11 বাইট

ȮṾṖƊ}“ȮṾṖƊ}

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

ডানদিকে, “ȮṾṖƊ}স্ট্রিং এর জন্য আক্ষরিক ȮṾṖƊ}। স্ট্রিং ক্লোজারিং অক্ষরটি ইওএফটিতে স্বচ্ছভাবে যুক্ত করা হয়েছে।

স্ট্রিং আক্ষরিক বাঁদিকে, Ɗগোপন ȮṾṖএকটি একক একসংখ্যা এবং মধ্যে }একটি যুগল সেটিকে পালাক্রমে যা এটি ব্যবহার করে ডান যুক্তি, স্ট্রিং আক্ষরিক আছে। Ȯস্ট্রিং ( ȮṾṖƊ}) মুদ্রণ করে, স্ট্রিং ( ) এর একটি স্ট্রিং উপস্থাপনা তৈরি করে “ȮṾṖƊ}”এবং চরিত্রটি সরিয়ে দেয় । স্ট্রিংটি “ȮṾṖƊ}মোনাডের পরে ছেড়ে যায় এবং স্পষ্টভাবে মুদ্রিত হয়।

38 49 36 বাইট

32,52,52,7884,106,64,44,7884 44Ọj@,Ọ

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

প্রথমবার আমি জেলি গল্ফিংয়ে কোনও স্থান ব্যবহার করেছি।

শুরুর দিকে সংখ্যাগুলির তালিকাটিতে ordকোডের বাকী অক্ষরগুলি থাকে। তারপর:

jṛ44Ọ$,Ọ
j           Join this list with...
 ṛ          right argument. Avoiding using ¤ so I can use it in the next program.
  44Ọ       chr(44)==',': [106, ',', ...]
     $      Causes Ọ to act on 44 before j acts on it.
      ,     Pair this list with...
       Ọ    chr of each number in the list. Yields jṛ44Ọ$,Ọ

270 198 180 162 বাইট

⁽¢_;⁽⁽¤;⁽¡_;⁽⁽¡;⁽¡¤;⁽$+;⁽⁽y;⁽Ẹ$;⁽⁺$;⁽AƑ;⁽?€;⁽b⁽;⁽¢¡;⁽_⁽;⁽¡¡;⁽¤ị;⁽ØJ;⁽µṭ;⁽€⁽;⁽¡S;⁽;⁽;⁽¡ʠ;⁽¤ị;⁽ØJ;⁽¤F;⁽ḊṄ;⁽ȧF
¢_⁽¤¡_⁽¡¡¤$+⁽yẸ$⁺$AƑ?€b⁽¢¡_⁽¡¡¤ịØJµṭ€⁽¡S;⁽¡ʠ¤ịØJ¤FḊṄȧF

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

জেলি কোড পৃষ্ঠাতে বেস 250 সংখ্যা এবং সূচি ব্যবহার করে। অ্যালগরিদম পরিবর্তন করে 72 বাইট সংরক্ষণ করা হয়েছে। জেলির কোড পৃষ্ঠাতে প্রতিটি সংখ্যা সূচকে ব্যবহার করছিল কিন্তু এখন পূর্ণসংখ্যাকে বেস 250 এ আবার রূপান্তরিত করছি জেলি কোড পৃষ্ঠাতে সূচক করে, মূলত আমার প্রথম লাইনে আক্ষরিক সংখ্যা অর্ধেক করে। এটি প্রয়োজনীয় অনন্য অক্ষরের সংখ্যাও হ্রাস করে, তবে আমি আর কোনও কুইন তৈরির উপায় ভাবতে পারি না।

আমি ব্যবহার করেছি ⁾“”যা স্ট্রিং লিটারেল তৈরি করে এবং ØJযা সংখ্যা থেকে স্ট্রিং তৈরি করে। আমি স্ট্রিং তৈরির অন্য কোনও উপায় সম্পর্কে ভাবতে পারি না। আমার কাছে এখনও ডিজিট আছে 9এবং ‘’উপলব্ধ আছে, সুতরাং সংখ্যাগুলি থেকে স্ট্রিং তৈরির অন্য কোনও উপায় থাকলে এটি অন্য কুইন তৈরি করা সম্ভব।


13

হাস্কেল , 3 টি কুইন, 1119 বাইট

কুইন 1, 51 বাইট

IOস্ট্যান্ডআউটে সরাসরি বেনামে অ্যাকশন মুদ্রণ।

putStr`mappend`print`id`"putStr`mappend`print`id`"

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

কুইন 2, 265 বাইট

ফাংশনটি fএকটি ডামি আর্গুমেন্ট নেয় এবং একটি স্ট্রিং দেয়।

f	c=[b=<<g]!!0++show	g;b	c=[[[show	9!!0,show	1!!0..]!!6..]!!c];g=[93,0,90,52,82,89,52,51,51,94,84,24,24,39,34,34,106,95,102,110,0,94,50,89,0,90,52,82,82,82,106,95,102,110,0,48,24,24,39,35,106,95,102,110,0,40,24,24,39,37,37,84,24,24,45,37,37,84,24,24,90,84,50,94,52]

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

কুইন 3, 803 বাইট

LANGUAGEপ্রগমার পরে সমস্ত কিছু একটি ছদ্মবেশী ফাংশন যা একটি ছদ্মবেশী যুক্তি গ্রহণ করে এবং একটি স্ট্রিং ফিরিয়ে দেয়।

{-#LANGUAGE CPP#-}(\q(_:_:_:_:_:_:_:_:z)y(#)_->(y(\k x->'&':q:k:q:x)#y(\k x->'%':q:'\\':k:q:x)$y(:)#y(:)$ \x->x)z)'\''__TIME__(\(?)v k x->v$k?x)$ \(&)(%)v->v&'{'&'-'&'#'&'L'&'A'&'N'&'G'&'U'&'A'&'G'&'E'&' '&'C'&'P'&'P'&'#'&'-'&'}'&'('%'\\'&'q'&'('&'_'&':'&'_'&':'&'_'&':'&'_'&':'&'_'&':'&'_'&':'&'_'&':'&'_'&':'&'z'&')'&'y'&'('&'#'&')'&'_'&'-'&'>'&'('&'y'&'('%'\\'&'k'&' '&'x'&'-'&'>'%'\''&'&'%'\''&':'&'q'&':'&'k'&':'&'q'&':'&'x'&')'&'#'&'y'&'('%'\\'&'k'&' '&'x'&'-'&'>'%'\''&'%'%'\''&':'&'q'&':'%'\''%'\\'%'\\'%'\''&':'&'k'&':'&'q'&':'&'x'&')'&'$'&'y'&'('&':'&')'&'#'&'y'&'('&':'&')'&'$'&' '%'\\'&'x'&'-'&'>'&'x'&')'&'z'&')'%'\''%'\\'%'\''%'\''&'_'&'_'&'T'&'I'&'M'&'E'&'_'&'_'&'('%'\\'&'('&'?'&')'&'v'&' '&'k'&' '&'x'&'-'&'>'&'v'&'$'&'k'&'?'&'x'&')'&'$'&' '%'\\'&'('&'&'&')'&'('&'%'&')'&'v'&'-'&'>'&'v'

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

অক্ষর

কুইন 1:


"S`adeimnprtu

কুইন 2:

	!+,.0123456789;<=[]bcfghosw

কুইন 3:

 #$%&'()-:>?ACEGILMNPTU\_kqvxyz{}

কিভাবে এটা কাজ করে

কুইন ঘ

putStr`mappend`print`id`"putStr`mappend`print`id`"

কুইন 1 হ'ল আমার সাম্প্রতিক গল্ফের একটি পরিবর্তিত সংস্করণ যা আপনার চতুর উত্তরের (এইচ.পি.উইজের উন্নতির সাথে):

  • যেহেতু সম্পূর্ণ প্রোগ্রামগুলির প্রয়োজন হয় না, main=তাই সরানো হয়েছে।
  • <>এবং $তাদের কাছাকাছি প্রতিশব্দ mappendএবং দ্বারা প্রতিস্থাপিত হয়েছে id

এটি অন্যান্য কুইনের জন্য গুরুত্বপূর্ণ চরিত্র =<>এবং সহায়ক $অপারেটকে মুক্ত করে।

কুইন 2

f	c=[b=<<g]!!0++show	g;b	c=[[[show	9!!0,show	1!!0..]!!6..]!!c];g=[93,0,......]

কুইন 2 আমার সাম্প্রতিক মিউচুয়ালি এক্সক্লুসিভ কুইনস উত্তরগুলির 2 প্রোগ্রামের জন্য কিছুটা অনুরূপ পদ্ধতি ব্যবহার করে তবে সরাসরি কুইনের সাথে খাপ খায় এবং বিশেষত কুইন 3 এর জন্য প্রয়োজনীয় চরিত্রের আক্ষরিক ব্যবহার এড়ানোর জন্য, এই দুটিই showফাংশনের সহায়তায় অর্জন করা হয়েছে , নিছক ভাগ্য যা এখনও এর কোন চরিত্র ব্যবহার করে নি।

এই কুইনটি ফাঁকা জায়গাগুলির পরিবর্তে ট্যাব ব্যবহার করে, তবে আমি পঠনযোগ্যতার জন্য নীচে স্পেস ব্যবহার করেছি।

  • gকোডের শেষে পূর্ণসংখ্যার একটি তালিকা হিসাবে কোয়েন ডেটা। প্রতিটি সংখ্যা বাকী কোড থেকে একটি অক্ষর উপস্থাপন করে।
    • সংখ্যাগুলি স্থানান্তরিত হয় 9, যাতে ট্যাব হয় 0। এটি ফাংশনটির জন্য ছোট অক্ষর এবং ভেরিয়েবলের নামগুলিকে 2 ডিজিটের সাথে ফিট করার অনুমতি দিয়ে এনকোডিংটিকে কিছুটা ছোট করে তোলে।
  • b c=[[[show 9!!0,show 1!!0..]!!6..]!!c] একটি সংখ্যাকে একটি চরিত্রে রূপান্তর করার একটি ক্রিয়া (আসলে একটি অক্ষরের স্ট্রিং)।
    • [[show 9!!0,show 1!!0..]!!6..]ট্যাব অক্ষর দিয়ে শুরু হওয়া একটি অক্ষর পরিসীমা যা এর সাথে সূচিযুক্ত হয় !!c
    • ট্যাব অক্ষর নিজেই অন্য সীমার মধ্যে সূচিবদ্ধ দ্বারা উত্পাদিত হয় [show 9!!0,show 1!!0..], অঙ্ক অক্ষর দিয়ে শুরু হওয়া '9'এবং '1'এবং 8 এর পদক্ষেপে নিচে জাম্পিং।
    • অঙ্কের অক্ষরগুলি showসংশ্লিষ্ট অঙ্কের স্ট্রিংয়ের সাথে সূচক করে উত্পাদিত হয় ।
  • f c=[b=<<g]!!0++show gপ্রধান কাজ। cএকটি ছদ্মবেশী যুক্তি।
    • b=<<g=<<প্রতিটি সংখ্যাটিকে gতার চরিত্রে রূপান্তর করতে ব্যবহার করে । ( =<<উদাহরণস্বরূপ পরিবর্তে ব্যবহারের mapকারণে bতার ফিরে আসা চরিত্রটি একটি তালিকায় মোড়ানো দরকার))
    • show gস্ট্রিংয়ের gতালিকার প্রতিনিধিত্ব করে এবং ++স্ট্রিংগুলি সংযুক্ত করে।
    • কারণ =<<এর চেয়ে কম অগ্রাধিকার রয়েছে ++, কিছু বন্ধনী প্রয়োজন। ()(কুইন 3 এর জন্য সংরক্ষিত) ব্যবহার এড়াতে [...]!!0একটি উপাদান যুক্ত তালিকায় সূচীগুলি।

কুইন ঘ

অন্যান্য কুইনের নকশা দ্বারা, কুইন 3 টি এখনও বন্ধনী, ল্যাম্বডা এক্সপ্রেশন, চরিত্রের অক্ষরে অক্ষর এবং স্ট্রিং / তালিকা নির্বাহকের অ্যাক্সেস পেয়েছে :। এই ফাংশন যা গঠন করা যথেষ্ট হবে prepends একটি স্ট্রিং quine এর কোড।

দুর্ভাগ্যক্রমে, সমস্ত ছোট হাতের স্বর (কখনও কখনও বাদে y) ব্যবহার করা হয়েছে, কোনও কার্যকর বর্ণানুক্রমিক বিল্টিন ফাংশন রেখে। এছাড়াও []""চলে গেছে। কোডটি ভান করা শুরু করার জন্য এটি খালি স্ট্রিং তৈরির কোনও সাধারণ উপায় ছেড়ে যায় না ।

তবে, প্রায় সমস্ত বড় হাতের অক্ষর এখনও উপলভ্য, তাই LANGUAGEএকটি ভাষা বর্ধনের জন্য একটি প্রাগমা সম্ভব। আবার নিছক ভাগ্যক্রমে, CPP(সি প্রিপ্রসেসর সক্ষম করুন) কেবলমাত্র বড় হাতের অক্ষরের সাথে নামের একমাত্র ভাষা বর্ধন। এবং সিপিপি ম্যাক্রোগুলির প্রায়শই বড় হাতের নাম থাকে।

সুতরাং প্রয়োজনীয় খালি স্ট্রিং পাওয়ার জন্য, কুইন সক্ষম করে CPP, ফর্মটির __TIME__স্ট্রিং ধ্রুবক পেতে সর্বদা ম্যাক্রো ব্যবহার করে "??:??:??"(সুবিধাজনকভাবে সর্বদা একই দৈর্ঘ্যের জন্য গ্যারান্টিযুক্ত) এবং এতে প্যাটার্ন মেলে।

{-#LANGUAGE CPP#-}(\q(_:_:_:_:_:_:_:_:z)y(#)_->(y(\k x->'&':q:k:q:x)#y(\k x->'%':q:'\\':k:q:x)$y(:)#y(:)$ \x->x)z)'\''__TIME__(\(?)v k x->v$k?x)$ \(&)(%)v->v&'{'&'-'&......

ভাষা প্রচলনের পরে, কুইন একটি ল্যাম্বডা এক্সপ্রেশন নিয়ে গঠিত যা এই চারটি আর্গুমেন্টের সাথে তার পরামিতিগুলি আবদ্ধ করে (পরে চূড়ান্ত ডামি প্যারামিটারটি _পরে প্রয়োগ করা হবে):

  • qআবদ্ধ '\'', একটি একক উদ্ধৃতি চরিত্র প্রদান;
  • _:_:_:_:_:_:_:_:zআবদ্ধ __TIME__, যেমন একটি স্ট্রিং ওরফে "??:??:??", এইভাবে zএকটি খালি স্ট্রিং তৈরি করে;
  • yআবদ্ধ (\(?)v k x->v$k?x), একটি ল্যাম্বডা সংযুক্তকারী বাম সম্পর্কিত ("ফোল্ড") থেকে ডান যুক্ত ("ফোল্ডার") ফর্মে রূপান্তর করতে সহায়তা করতে ব্যবহৃত;
  • অপারেটর (#)আবদ্ধ \(&)(%)v->v&'{'&'-'&..., কুইন ডেটা নিজেই।

কুইন ডেটা চার্চ এনকোডিং আকারে দেওয়া হয়, পরামিতি সহ ল্যাম্বডা এক্সপ্রেশন (&)(%)v

  • Instantiate বিশেষ মান অভিব্যক্তি প্রয়োগ করে (&), (%)এবং v, এই এনকোডিং পারেন quine কোর কোড গড়ে তুলতে বা quine তথ্য উপস্থাপনা নিজেই পুনর্নির্মাণের ব্যবহার করা যাবে।
  • হাস্কেলের ডিফল্ট স্থিতিশীলতার নিয়ম অনুসারে &এবং ল্যাম্বদার %অভ্যন্তরে বাম সহযোগী অপারেটর হয়ে উঠুন। এইভাবে অক্ষরের প্যারামিটারগুলি vবাম থেকে প্রাথমিক প্রারম্ভের সাথে মিলিত হয় ।
  • বেশিরভাগ চরিত্রের জন্য k, একটি অনুরূপ আছে &'k'
  • যখন kহয় 'বা \, যা চরিত্র লিটারেল ভিতরে পলান করা প্রয়োজন, এনকোডিং পরিবর্তে %'\k'

যেহেতু ডেটা এনকোডিংটি বাম মিশ্রণমূলক, তবে স্ট্রিংগুলি একটি ডান সংশ্লেটিভ পদ্ধতিতে তৈরি করা হয়েছে, সুতরাং মিশ্রণটিটি y = (\(?)v k x->v$k?x)অমিলটি পূরণের জন্য প্রবর্তিত হয়েছিল।

  • y(...)কুইন ডেটা (&)এবং (%)অপারেটর হিসাবে ব্যবহারের জন্য উপযুক্ত ফাংশন তৈরি করার উদ্দেশ্যে ।
  • vস্ট্রিং থেকে স্ট্রিং পর্যন্ত একটি ফাংশন (কুইন ডেটার উদ্দেশ্যযুক্ত vউদাহরণ)।
  • kএকটি চরিত্র, xএকটি স্ট্রিং এবং ?একটি অপারেটর যা সেগুলিকে একটি নতুন স্ট্রিংয়ের সাথে সংযুক্ত করে। (মূল (?)=(:)কোডটির জন্য, কুইন ডেটার উপস্থাপনাকে পুনর্গঠনের জন্য এটি আরও জটিল)
  • এভাবে y(?)v k = \x->v$k?xস্ট্রিং থেকে স্ট্রিং-তে আরেকটি ফাংশন।
  • এটি কীভাবে সাহচর্য পরিবর্তন করে তার উদাহরণ হিসাবে, যদি (&)=y(:):

    (v&k1&k2&k3) x
    = (((v&k1)&k2)&k3) x
    = y(:)(y(:)(y(:)v k1)k2)k3 x
    = y(:)(y(:)v k1)k2 (k3:x)
    = y(:)v k1 (k2:(k3:x))
    = v (k1:(k2:(k3:x)))
    = v (k1:k2:k3:x)

আরও সাধারণভাবে, কখন (#)কুইন ডেটা ফাংশন হয় এবং f1,f2স্ট্রিংগুলির সাথে অক্ষরের সাথে সংযুক্ত ফাংশনগুলি হয়:

(y(f1)#y(f2)$v) x
= (...(y(f1)(y(f1)v '{') '-')...) x
= v(f1 '{' (f1 '-' (... x)))

(&)=y(f1)এবং এর সাথে কুইন ডেটা ফাংশন প্রয়োগ করে এবং (%)=y(f2)এটি নির্ধারিত ব্যবহার করে f1এবং f2কুইনের ডেটার অক্ষরগুলির সাথে একত্রিত করতে xএবং তারপরে ফলাফলটি স্ট্রিংটি পাস করে v

মূল ল্যাম্বডা এক্সপ্রেশনটির দেহ এগুলি সমস্ত একসাথে রাখে:

(y(\k x->'&':q:k:q:x)#y(\k x->'%':q:'\\':k:q:x)$y(:)#y(:)$ \x->x)z
  • '&':q:k:q:xএকটি অক্ষর জন্য kprepends &'k'স্ট্রিং x, যখন '%':q:'\\':k:q:xprepends %'\k', যা তাদের মূল quine তথ্য ফর্ম।
  • এইভাবে y(\k x->'&':q:k:q:x)#y(\k x->'%':q:'\\':k:q:xকুইন ডেটা উপস্থাপনা পুনর্নির্মাণের জন্য সঠিক পরামিতিগুলি রয়েছে, চূড়ান্ত z(খালি স্ট্রিং) এ প্রিপেন্ড করা হয় এবং তারপরে নিম্নলিখিত ফাংশনে প্রেরণ করা হয়।
  • y(:)#y(:) অন্যান্য পরিবর্তন ছাড়াই কুইনের মূল কোডটিকে স্ট্রিংয়ে প্রেন্ডেন্ট করার জন্য সঠিক পরামিতি।
  • অবশেষে \x->xনির্মিত কুইনের সাথে কিছুই করতে হবে না, যা ফিরে আসে returned

9

পার্ল 6 , 3 কুইন, 274 বাইট

কুইন 1, 52 বাইট

my&d={S{\d}=$_};say
d
Q{my&d={S{\d}=$_};say
d
Q{4}}

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

কুইন 2, 102 বাইট

printf	|(q[printf	|(q[@]xx	2	Z~|(q[printf	|(q[!3]]Xx	qw[1	0]))]xx	2	Z~|(q[printf	|(q[!3]]Xx	qw[1	0]))

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

কুইন 3, 120 বাইট

<'.EVAL'.UC,' GIVEN ',「「PRINT "<'.EVAL'.UC,' GIVEN ',「「".UC,.UC,"」」>.LC",".EVAL.EVAL".UC」」>.lc.EVAL.EVAL

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

বাইটের স্বতন্ত্র সেটগুলির যাচাইকরণ

তৃতীয় রানটি পাওয়ার ক্ষেত্রে অনেক কৌশল তৈরি হয়েছিল। পার্ল 6 আউটপুট 4 পদ্ধতি আছে (যে আমি সচেতন আছি), say, put, printএবং printf। উভয় sayএবং putআউটপুট নিউলাইনগুলি, কারণ আমি উভয়ই ব্যবহার করতে পারি না। put, print, printfসমস্ত কিছু pএবং tEVALবড় হাতের অক্ষর ব্যবহার করে আমরা আংশিকভাবে এটি পেতে পারি PRINT। সেখান থেকে, আমি 4 কুইন পাওয়া সম্ভব বলে মনে করি না ... (যদিও এর মতো কিছু সম্ভবত shell "echo 'quine'"কাজ করতে পারে)

এরপরে আমরা পৃথক অপারেটর, স্পেস, ট্যাব এবং নিউলাইনগুলিতে বিভিন্ন ধরণের শ্বেত স্পেস ব্যবহার করে ব্যবধানের সমস্যাগুলি পেতে পারি।

ব্যাখ্যা:

কুইন 1:

my&d={        };         # Declare a function d which 
      S{\d}=$_           # Which substitutes a digit with the string again
                say      # Print with a newline
d                        # The function
Q{my&d={S{\d}=$_};say    # Applied to the string with the program
d
Q{4}}                    # With a digit where the it should be inserted again

কুইন 2:

এটি বিন্যাসে একটি কুইন printf |(q[printf q[%s]]xx 2), অর্থাত্ এটি স্ট্রিংয়ের একটি অনুলিপি নিজেই ফর্ম্যাট করে। তবে আমরা ব্যবহার করতে পারবেন না sপূর্ববর্তী quine এর ব্যবহৃত যে যেহেতু say। সুতরাং আমরা (STRING বা অপারেটর ব্যবহার ~|) এ @এবং !3প্রকাশ করতে থাকেন %sঅংশ, কিন্তু আমরা এটা করতে পার না উভয় ফরম্যাট স্ট্রিং এবং স্ট্রিং ঢোকানো, তাই আমরা যা করতে হবে Z~অতিরিক্ত STRING এবং একটি খালি স্ট্রিং সঙ্গে, যদিও আমরা তখন ,দুটি পৃথক করতে ব্যবহার করতে পারি না , সুতরাং আমরা Xx qw[1 0]1 এবং 0 দ্বারা গুণিত স্ট্রিং করব ।

printf |(                                  )      # Print with formatting
         q[...]       # The string of the program
               xx 2   # Duplicated
                    Z~| (                 )     # String or'd with
                         q[...]                 # A copy to insert the %s
                                Xx              # String multiplied to
                                   qw[1 0]      # itself and an empty string

কুইন 3:

এটি একটি ইভাল কুইন যা অন্যান্য কুইনের সাথে বিরোধ এড়াতে সবকিছুকে বড়হাতে তৈরি করার চেষ্টা করে। এটি প্রচুর পরিমাণে EVALপাশাপাশি বেশ কয়েকটি জড়িত lcএবং ucকেসের মধ্যে রূপান্তর করতে জড়িত।

<...>.lc.EVAL        # Evaluate the lowercase version of the string which results in
.EVAL  given  「print "<'.eval'.uc,' given ',「「".uc,.uc,"」」>.lc",".eval.eval".uc」
             .EVAL   # Evaluate again 

.EVAL  given  「...」   # Set the string to $_ and pass it to .EVAL
print "<'.eval'.uc,' given ',「「".uc       # Print the first half of the quine uppercased
                                   ,.uc   # Print the string uppercased
                                       ,"」」>.lc"  # Print the .lc part lowercased
                                                ,".eval.eval".uc # Print the EVAL part uppercased

9

ম্যাথগল্ফ , 4 5 6 কুইন, 193,535 বাইট

9 বাইট

ÿ'ÿ⌐_'ÿ⌐_

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

45 বাইট

û]∙ûxôû¬ûûûûû╡¬ûô╡û╡xûxxû¬ô]∙xô¬ûûû╡¬ô╡╡xxx¬ô

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

49 বাইট

ùa6æù\a\ù+6┼ù\ùùùùù\ù§\+ùΣ\Σa6æ\a\+6┼\ùùùù\§\+Σ\Σ

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

99 বাইট

"""▐ ⌠▌ ⌠▌ ⌠▌ ⌠ ⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠ ⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠"`~

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

4488 বাইট

♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠(((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠(((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((♠((((((((((((((((((((((((((((((((((((((((((((DÄß─·ö♠,♦M-$*DÄß─ö7($$$qq$Äq╘

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

188,845 বাইট

আমি সত্যিই এটির সাথে লিঙ্ক করতে পারি না, সুতরাং এখানে পার্ল 6 প্রোগ্রামটি আসল কুইন তৈরি করে

স্বতন্ত্রতা যাচাই

আমি এটির বাইরে আরও একটি কুইন স্পষ্টভাবে নিঃসৃত করতে পারি, যদিও আমি মনে করি যে স্ট্রিংয়ের স্ট্রিংগুলিতে স্ট্রিংগুলি চালানোর উপায়গুলি আমি খুব সহজেই চালিয়ে গেছি, সুতরাং আমাকে অপরিচিত পদ্ধতিগুলি অবলম্বন করতে হবে। এমনকি নবজাতক পদ্ধতি ইনকামিং হিসাবে আমি একটি ষষ্ঠ quine জন্য চেষ্টা করুন। কিছু ক্ষেত্রে কুইনগুলি ছোট হতে পারে তবে আমি প্রস্তুতির ক্ষেত্রে ব্যবহৃত বাইটগুলি হ্রাস করছি।

ঠিক আছে, আমি টেকনিক্যালি আরও একটি কুইন করতে সক্ষম হব, যেহেতু আমার এখনও কয়েকটি অপারেটর রয়েছে যা আমার দরকার (পুশ স্ট্রিং, ইনক্রিমেন্ট স্ট্রিং, ডুপ্লিকেশন, ম্যাপিং, পপিং), এটি আমাদেরকে সীমিত করে তোলে। {}শুধুমাত্র অপারেটার যে অবাধ দৈর্ঘ্যের একটি কোড ব্লক ইঙ্গিত করতে পারে, এবং আমি সত্যিই তাদের 6 ষ্ঠ quine যে প্রয়োজন। আমি অন্যান্য কোড ব্লকগুলির কয়েকটি ব্যবহার করতে পারি তবে সেগুলি সীমাবদ্ধ এবং আমি সন্দেহ করি যে লুপিং বিভাগগুলি সংক্ষিপ্ত হতে চলেছে, যেহেতু আমরা সহজ অপারেটরগুলির বাইরে চলেছি।

ঠিক আছে, কিছু বিড়ম্বিত ব্যাখ্যা:

সমস্ত কুইনের প্রায় একই কাঠামো রয়েছে:

  • একটি স্ট্রিং, বা স্ট্রিংগুলির তালিকা বা স্ট্যাকের জন্য অক্ষরের তালিকা পুশ করুন।
  • এগুলি সমস্তকে একটি তালিকায় একত্রিত করুন
  • তালিকাটি সদৃশ করুন
  • মূল অক্ষরগুলি পেতে ব্যবহৃত অক্ষরগুলি মুদ্রণ / মুছে ফেলার উপর দিয়ে মানচিত্র
  • অক্ষরের মূল তালিকাটি স্ট্রিং হিসাবে মুদ্রণ করুন

কুইন 1:

এটি মূলত আমি সাধারণ কুইন প্রশ্নে পোস্ট করা পোস্টের মতই।

ÿ'ÿ⌐_'ÿ⌐_
ÿ            Push the next 4 bytes as a string
 'ÿ⌐_        Stack ["'ÿ⌐_"]
     'ÿ      Push the byte ÿ (I realise I could have used this in a later quine)
       ⌐     Rotate the ÿ to the bottom of the stack : ["ÿ", "'ÿ⌐_"]
        _    Duplicate top of stack: ["ÿ", "'ÿ⌐_", "'ÿ⌐_"]
             Implicitly print stack joined together : ÿ'ÿ⌐_'ÿ⌐_

কুইন 2

û                Push the next 2 bytes as a string
 ]∙              Stack: ["]∙û"]
   û  û...      Repeat this for the rest of the code
           ]              Wrap the stack in an array : [["]∙","xô"...]]
            ∙             Triplicate                 : [[..],[..],[..]]
             x            Reverse the top array
              ô           Loop over the array, executing the next 6 instructions
                          Stack: [[..],[..],str]
               ¬          Rotate the stack : [str,[..],[..]]
                ûûû╡      Push the string "ûû" and discard the left character
                    ¬     Rotate the "û" to the bottom : ["û",str,[..],[..]]
                          This produces the initialisation part
                     ô    Loop over the array with the next 6 characters again
                      ╡╡xxx¬      Basically discard the string
                            ô     Flatten the last copy of the array onto the stack
                                  Implicitly output the code

কুইন 3:

ùa6æù\a\ù+6┼ù\ùùùùù\ù§\+ùΣ\Σa6æ\a\+6┼\ùùùù\§\+Σ\Σ
ù...          Push the next 3 bytes as a string
              You know how this goes
    a         Wrap the top element in an array
     6æ       Repeat the next 4 instructions 6 times
       \      Swap the two top items
        a     Wrap the top item in an array
         \    Swap back
          +   Combine the two arrays
              This puts all the strings into a single array
           6            Push a 6
            ┼           Push the element two items down (the array)
             \          Swap with the 6 (this basically duplicates the array)
              ùùùù      Push "ùùù"
                  \§    Swap and get the 6th character (wrapping)
                    \   Swap with array : ["ù", [..]]
                     +  Prepend to array (implicitly mapping)
                      Σ\Σ     Join both the lists to strings and output

কুইন 4:

"""▐ ⌠▌ ⌠▌ ⌠▌ ⌠ ⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠ ⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠"`~
""             Push the empty string
  "..."        Push some code : ['','...']
       `       Copy the top two elements of the stack : ['','...','','...']
        ~      Evaluate the top element as code : ['','...','']
▐              Prepend the empty string to the code
  ⌠            Push a space and increment by 2 to get a quote
   ▌           Prepend to the array
     ⌠▌ ⌠▌ ⌠   Repeat three more times, leaving the last on top : ['', '""...','"']
              ⌠⌠...       Push a space and increment until it reaches a '`'
                    ⌠⌠... Repeat for the '~' : ['','"""...','"','`','~']
                          Implicitly output

কুইন 5:

♠              Push 256
 ((...         Decrement until it reaches the correct byte representing the code
               Repeat for each character of the code
      DÄ       Repeat the next instruction 14 times
        ß      Wrap the top 4 elements in an array
         ─     Flatten the resulting monstrosity
          ·    Triplicate the array
           ö   Map the next 7 instructions over the array
                      Stack : [[..],[..],num]
            ♠         Push 128
             ,        Reverse subtraction : [[..],[..],128-num
              ♦M-$    Push the ( character
                  *   Repeat it 128-num times
                   DÄß─         Gather that up in an array and flatten again
                       ö        Map the next 6 instructions
                        7($$$qq
                    7($$$q    Print a ♠, without newline
                              q   Print the brackets without newline
                                  Stack : [[..],[..]]
                               $     Map the number to their values in the code page
                                Äq   Map print over each element
                                  ╘  Discard the last element of the stack

কুইন 6:

কারণ এই quine হয় তাই অন্যদের চেয়ে অনেক লম্বা যে স্ট্রিং বৃদ্ধিশীল ইউনিকোড উপস্থাপনা ব্যবহার করে, যা সত্যিই, কোড অক্ষর কিছু sucks বিশেষ করে যখন আমরা চরিত্র তৈরি করার চেষ্টা করছেন হয় কোডে, যা কোড inflates 8000 টিরও বেশি অক্ষর দ্বারা, যা উপস্থাপনের অংশটিকে খুব বড় পরিমাণে স্ফীত করে।

⌂         Push an * character
 ))...    Increment until we reach the right character + 8
      ♫{ }            Repeat 10000 times
        α             Wrap the top two elements in an array
          ♫{     }    Then repeat 10000 times
            m{{}}     Shallowly flatten the array
                  h∞<     Double the array
                     m{          Map the doubled array to
                       ïí½<¿{    If it is the first half of the array
                             ⌂⌂  Push two asterisks
                               )))...    Increment into a '⌂' (there are something like 8000 )s here, with a couple of ! to help
                                     @   Rotate the top three elements
                                         Stack : ["⌂",char,"*"]
                                      0{     α4<{}=}←  Repeat while the asterisk is not the char
                                        ⌂⌡)   Push a )
                                           @  Rotate it under the char
                                            ) Increment the asterisk
                                                     ;;   Pop the extra copies of the character
                                                       }{  Else
                                                         ⌡⌡⌡⌡}   Subtract 8 from the character
                                                              }{}  End map and flatten array
                                                                   Print implicitly

যদি এই ম্যাথগল্ফ স্ট্রিংগুলি নেটিভ কোড পৃষ্ঠা ব্যবহার করে কিনা সে বিষয়ে সামঞ্জস্য রাখে তবে এই শেষ কুইনটি উল্লেখযোগ্যভাবে হ্রাস পাবে।


আমি আপনার কৌতূহল দেখে আশ্চর্য হয়েছি, আপনি কীভাবে এগুলি সামনে আনতে পেরেছেন সে সম্পর্কে আমি কিছু ব্যাখ্যা পছন্দ করব। প্রথমটিকে আমি মূল কুইন চ্যালেঞ্জ থেকে স্বীকৃতি দিয়েছি, তবে বাকী চেহারাটি তারা চিরকাল ধরে নিয়ে এসেছিল।
সর্বোচ্চ

@ ম্যাক্সব আমি ষষ্ঠ কুইনে কাজ করছি এবং আমি পোস্টটি প্রকাশ করলে বা এটি ছেড়ে দিলে আমি ব্যাখ্যাগুলি পোস্ট করব। বিটিডব্লিউ, সিআর / অর্ডার এবং ক্রমবর্ধমান অক্ষর কমান্ডগুলি বেমানান বলে মনে হচ্ছে। প্রথমটিতে কোড পৃষ্ঠাটি ব্যবহার করা হয়েছে, যেখানে দ্বিতীয়টি ইউনিকোডের মতো সাধারণ ইউনিকোড ব্যবহার করে (যা the ষ্ঠ কুইনকে এত দীর্ঘ করে দিচ্ছে)
জো কিং

আমি বুঝতে পেরেছিলাম যে এটি প্রয়োগের কিছু সময় পরে, আমি কেবল chr/ordতাদের মধ্যে একটির জন্য ব্যবহার করেছি, আমার মনে হয় পরিবর্তে কোড পৃষ্ঠাটি ব্যবহার করা উচিত।
ম্যাক্সবি

6

পাইথন 2, 2 কুইন, 434 353 349 446 বাইট

এটি বেশিরভাগই কেবল পাইথনে এটি করতে পারি কিনা তা দেখার জন্য was

30 বাইট (একটি ট্রেলিং নিউলাইন সহ):

z='z=%r;print z%%z';print z%z

এবং পিছনে নতুন লাইনের সাথে 416 বাইট:

exec"696d706f7274207379730a793d222222696d706f7274207379730a793d7b7d0a7379732e7374646f75742e777269746528276578656322272b792e666f726d6174282722272a332b792b2722272a33292e656e636f6465282268657822292b27222e6465636f64652822686578222927292222220a7379732e7374646f75742e777269746528276578656322272b792e666f726d6174282722272a332b792b2722272a33292e656e636f6465282268657822292b27222e6465636f6465282268657822292729".decode("hex")

(গল্ফড লিনকে ৮১ বাইট ধন্যবাদ জানায় তবে নতুন লাইনের প্রতি যত্নশীল হওয়ার কারণে একটি বোঝা যুক্ত হয়েছিল))

ব্যাখ্যা

প্রথমটি হ'ল স্ট্যান্ডার্ড সংক্ষিপ্ত পাইথন কুইন , তবে ব্যবহার না করে পরিবর্তিত _। যেহেতু এটি পাইথন 2 তাই এটি ব্যবহার করে না (বা ব্যবহার করে না )

দ্বিতীয়টি কিছুটা চিন্তাভাবনা করেছিল। লম্বা স্ট্রিংটি hexকোডেক ব্যবহার করে এনকোড করা হয়েছে (এটি নিশ্চিত করে যে এটিতে কেবল 0- 9এবং a- থাকবে f) এবং ডিকোড হিসাবে

import sys
y="""import sys
y={}
sys.stdout.write('exec"'+y.format('"'*3+y+'"'*3).encode("hex")+'".decode("hex")')"""
sys.stdout.write('exec"'+y.format('"'*3+y+'"'*3).encode("hex")+'".decode("hex")')

এই ব্যবহারের quine কপট নিজস্ব সোর্স কোড পেতে, তারপর ব্যবহার করে এটি এনকোড hex_codec, এবং তারপর ছাপে এটি দ্বারা বেষ্টিত exec"".decode("hex")ব্যবহার sys.stdout.writeএকটি newline মুদ্রণ এড়ানো। এই কোডটি চালানো দ্বিতীয় কুইনকে আউটপুট করে, যা আমি এটি তৈরি করেছি।

আমি সন্দেহ করি পাইথনে দু'জনেরও বেশি অসম্ভব, যদিও আমি ভুল হলে এটি দেখতে চাই!

আপনি যদি ইভাল কুইন্সে কিছু মনে করেন না

আরজান জোহানসেন প্রাক-এনকোড করা দ্বিতীয় কুইনের জন্য নিম্নলিখিতটি প্রস্তাব করেছিলেন

y="""import sys
sys.stdout.write('exec"'+('y='+'"'*3+y+'"'*3+';exec y').encode("hex")+'".decode("hex")')""";exec y

যা নিম্নলিখিত ফলাফলের জন্য 30 + 248 = 278 বাইট স্কোর করবে :

exec"793d222222696d706f7274207379730a7379732e7374646f75742e777269746528276578656322272b2827793d272b2722272a332b792b2722272a332b273b65786563207927292e656e636f6465282268657822292b27222e6465636f64652822686578222927292222223b657865632079".decode("hex")

execএই পদ্ধতিতে ব্যবহার করা পিপিসিজির যথাযথ কুইন বিধি অনুসারে প্রতারণা করে না তবে এটি আমার কাছে কিছুটা প্রতারণাপূর্ণ বলে মনে হয় (মার্জিত এবং চতুর, তবে এখনও প্রতারণামূলক), কারণ কিছু অক্ষর কোড এবং ডেটা উভয় হিসাবে ব্যবহৃত হচ্ছে। (যদিও আমার সংস্করণটি ব্যবহার করে exec, কোড এবং ডেটা পৃথক)) সুতরাং আমি আমার স্কোরটি 446 এ রাখব।


1
"hex"পরিবর্তে কাজ করে "hex_codec", যা আপনাকে কয়েক বাইট সংরক্ষণ করতে পারে!
লিন

1
নতুন লাইনের বিষয়টি অনুধাবন করলে আপনি কেন প্রথম কুইনের শেষে খালি লাইন যুক্ত করবেন না ...?
mbomb007

1
এই মত । আমি বুঝতে পারি এটি এক্সিকিউটিভ / ইভাল সহ ভাষাগুলিতে একটি দুর্দান্ত স্ট্যান্ডার্ড কুইন ট্রিক।
janrjan জোহানসেন

1
প্রথম কুইনের মতো একই বিন্যাসটি কেন পুনরায় ব্যবহার করবেন না? এই
জো কিং

2
print '<tab>',শেষ পর্যন্ত কোনও স্থান যুক্ত করে না। এটি ব্যবহার করে আপনি জো কিং এর পরামর্শ থেকে 85 বাইট বন্ধ করতে পারেন: tio.run/…
ovs

5

জাপট , 2 3 কুইনস, 106 172 বাইট

প্রথমটি হ'ল আমার এন চর কুইন উত্তরের একটি চমত্কার ভার্বোস সংস্করণ ।

[91,57,49,100,185,44,85,44,186,57,51,100,185,44,186,49,48,100,185,44,186,85,109,100,185,172,93,172]
[91d¹,U,º93d¹,º10d¹,ºUmd¹¬]¬

এখানে চেষ্টা করুন

দ্বিতীয় কুইন হ'ল ইটিএইচপি প্রডাকশনের বৃহত্তর ভাল কোয়াইন , যা জাপটের জন্য একটি ভাল মানের কুইন।

"iQ ²"iQ ²

এখানে চেষ্টা করুন

তৃতীয়টি ``ডেটা সঞ্চয় করতে চার-কোড এক্সওরিং ব্যবহার করে।

T=`f=fR;Zff-R-ReX%`;`T=\``+T+Tc^#

এখানে চেষ্টা করুন

যেহেতু ()'এখনও উপলভ্য, তাই আরও একটি কুইন আটকানো সম্ভব হতে পারে।


1
আমি সত্যই, সত্যই প্রথমটিকে গল্ফ করার চেষ্টা করতে চাই তবে আমি জানি যে বোর্ডে কয়েকটি বিয়ার রেখে আমি কোনও একটি চরিত্র পরিবর্তন করার চেষ্টা করার সাথে সাথেই আমার মস্তিষ্কটি বিস্ফোরিত হবে! কান্ড!
শেগি

@ শেগি নীচের লাইনটি গ্রহণ এবং এটির মাধ্যমে চালানো "'[+U+']+R+(Umd)¬"q mcআপনাকে দ্রুত আপডেটের জন্য প্রথম লাইন দেয়, যদি এটি কোনও সহায়তা থাকে।
নিট

আমি আরও মূল চিহ্নগুলি উপলব্ধ করার জন্য প্রথম সমাধানটি রিফেক্টর করেছি, এখন আরও একটি কুইন যুক্ত করা व्यावहारिकভাবে সম্ভব হতে পারে।
নিত

অপেক্ষা করুন, এখন আপনার স্কোর বেশি!
শেগি

@ শেগজি ইচ্ছাকৃতভাবে তাই, আমি অন্য কুইনের জন্য জায়গা তৈরি করার চেষ্টা করছি, এটি ছোট না করে।
নিত

4

গোল> <> , 2 3 কুইন, 17 28 27 26 বাইট

6 বাইট

"r2ssH

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

11 10 9 বাইট

'3d*Wo{|;

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

11 বাইট

Eh`#Ma0piS0

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

গোল> <> এর যে কোনও চর মুদ্রণের জন্য তিনটি উপায় রয়েছে:

  • o একটি মান পপ করুন এবং চর হিসাবে মুদ্রণ করুন
  • H সবকিছু পপ করুন, চর হিসাবে মুদ্রণ করুন এবং থামান
  • S"..." স্ট্যাকের কোনও ক্ষতি না করে স্ট্রিং আক্ষরিক মুদ্রণ করুন

তবে আমি S"..."একমাত্র আউটপুট পদ্ধতি হিসাবে কুইন লেখার কোনও উপায় খুঁজে পাইনি , সুতরাং আমি দুটি ধরণের স্ট্রিং লিটারাল ব্যবহার করে উপরের দুটি নিয়ে এসেছি।

তৃতীয়টি (জো কিং দ্বারা) ফ্লাইটে ইন pতৈরি করতে কমান্ডটি ব্যবহার করে , যা শেষে শূন্য ব্যতীত সবকিছু মুদ্রণ করে। তারপরে শূন্যটি প্রিন্ট করে প্রস্থান করুন।"S"Eh

এখন যেহেতু আমরা সমস্ত আউটপুট কমান্ড এবং pকমান্ডটি ব্যবহার করেছি, আমি বিশ্বাস করি যে অন্য একটি কুইন তৈরি করা অসম্ভব (যদি না কেউ S"কুইন নিয়ে আসে না p)।


কেমন হয় এই জন্য S"..."?
জো কিং

3

রুবি , 2 কুইনস, 27 + 44 = 71 বাইট

$><<<<2*2<<2
$><<<<2*2<<2
2

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

s=%q{s=%q{S};s[?S]=s;puts s};s[?S]=s;puts s

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

আমি এখানে আউটপুট পদ্ধতি দ্বারা প্রধানত সীমিত। স্ট্রিংগুলি ম্যানিপুলেট করার বেশ কয়েকটি উপায় রয়েছে তবে $><<ব্যবহারযোগ্য আউটপুট পদ্ধতিগুলি বাদ দিয়ে খুব বেশি ছেদ করা বলে মনে হচ্ছে। আমি মনে করি এর সাথে কোনও উপায় থাকতে পারে evalতবে এটি বিভিন্ন ধরণের একাধিক স্ট্রিং ম্যানিপুলেশনগুলিকে বাসা বাঁধতে মুশকিল।


3

জাভাস্ক্রিপ্ট ES6, 2 কুইন, 43 + 22 = 65 বাইট

কুইন 1:

(function f(){return[,f,'))'].join('(')}())

কুইন 2:

g=z=>"g="+g+";g``";g``

আপনি ফাংশনগুলি না চালিয়ে এবং তারপরে দ্বিতীয়টিতে টেম্পলেট ব্যবহার করে কয়েকটি বাইট সংরক্ষণ করতে পারেন।
শেগি

2
তাই জাভাস্ক্রিপ্ট আউটগল্ফস জ্যাপ্ট
ডাইলান

@ এললান এটি তৃতীয় কুইন যোগ না করা পর্যন্ত না।
নিত

@ শেগি ওহে, আপনার ইনপুটটির জন্য ধন্যবাদ, তবে আমি বিভ্রান্ত হয়ে পড়েছি - একটি কোয়েন কী পুরো প্রোগ্রাম হওয়া উচিত নয়? এটি যদি কোনও ফাংশন হতে পারে তবে এটি কেবল নিজের মুদ্রণ করা উচিত? সুতরাং g=z=>"g="+gএকটি বৈধ জেএস কুইন হবে?
পেড্রো

1
@Nit আমি যা করতে পারি তা দেখতে পাবে না: পি যখন ডাইলান মন্তব্য করেছিলেন, জ্যাপে কেবল মাত্র দুটি কুইন ছিল
পেড্রো এ

3

> <> , 2 কুইনস, 8 + 16 = 24 বাইট

8 বাইট

#o<}-1:"

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

এই উত্তর থেকে নেওয়া ।


16 বাইট

'r3d*d8*7+e0p>>|

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

এই উপর ভিত্তি করে তৈরি 'r3d*>o<ব্যতীত quine, oএবং <ব্যবহার করা যাবে না, তাই আমি প্রতিস্থাপিত <সঙ্গে |এবং পরিবর্তনশীল নির্মিত o(111 = 8 * 13 + 7 ) এবং এটি স্থাপন করা যেখানে 2nd >হয়।


2 কুইনস সীমা

দুর্ভাগ্যক্রমে, আমরা আউটপুট কমান্ডের সংখ্যা দ্বারা সীমাবদ্ধ। nএটি কার্যকর নয় কারণ এটি কেবল সংখ্যার আউটপুট দেয়, সুতরাং oঅবশ্যই কোনও কুইনে মৃত্যুদন্ড কার্যকর করা উচিত। গতিশীলভাবে তৈরি করার একমাত্র উপায়টি oহ'ল p। সুতরাং একটি কুইন ব্যবহার করতে পারে o, এবং অন্যটি এটি দিয়ে তৈরি pকরতে পারে তবে তৃতীয় কোনও কুইন থাকতে পারে না।

যদি এটি গণনা করা হয় তবে কোনও তৃতীয় কোয়েনের উত্স কোডটি স্ট্যাকের মধ্যে রেখে দেওয়া সম্ভব হতে পারে।


2

জাভা 10, 2 কুইনস, 1448 1248 বাইট

1350 1122 বাইট

\u0076\u002D\u003E\u007B\u0076\u0061\u0072\u0020\u0072\u003D\u0022\u0076\u002D\u003E\u007B\u0076\u0061\u0072\u0020\u0072\u003D\u0025\u0063\u0025\u0073\u0025\u0031\u0024\u0063\u003B\u0072\u002E\u0066\u006F\u0072\u006D\u0061\u0074\u0028\u0072\u002C\u0033\u0034\u002C\u0072\u002C\u0039\u0032\u0029\u002E\u0063\u0068\u0061\u0072\u0073\u0028\u0029\u002E\u0066\u006F\u0072\u0045\u0061\u0063\u0068\u0028\u0063\u002D\u003E\u0053\u0079\u0073\u0074\u0065\u006D\u002E\u006F\u0075\u0074\u002E\u0070\u0072\u0069\u006E\u0074\u0066\u0028\u0025\u0031\u0024\u0063\u0025\u0063\u0025\u0033\u0024\u0063\u0075\u0025\u0025\u0030\u0034\u0058\u0025\u0031\u0024\u0063\u002C\u0063\u0029\u0029\u003B\u007D\u0022\u003B\u0072\u002E\u0066\u006F\u0072\u006D\u0061\u0074\u0028\u0072\u002C\u0033\u0034\u002C\u0072\u002C\u0039\u0032\u0029\u002E\u0063\u0068\u0061\u0072\u0073\u0028\u0029\u002E\u0066\u006F\u0072\u0045\u0061\u0063\u0068\u0028\u0063\u002D\u003E\u0053\u0079\u0073\u0074\u0065\u006D\u002E\u006F\u0075\u0074\u002E\u0070\u0072\u0069\u006E\u0074\u0066\u0028\u0022\u005C\u005C\u0075\u0025\u0030\u0034\u0058\u0022\u002C\u0063\u0029\u0029\u003B\u007D

এটি অনলাইনে চেষ্টা করুন।

সমতুল্য:

v->{var r="v->{var r=%c%s%1$c;r.format(r,34,r,92).chars().forEach(c->System.out.printf(%1$c%c%3$cu%%04X%1$c,c));}";r.format(r,34,r,92).chars().forEach(c->System.out.printf("\\u%04X",c));}

ব্যাখ্যা:

v->{                   // Method with empty unused parameter and no return-type
  var r="v->{var r=%c%s%1$c;r.format(r,34,r,92).chars().forEach(c->System.out.printf(%1$c%c%3$cu%%04X%1$c,c));}";
                       //  Unformatted source code
  r.format(r,34,r,92)  //  Formatted quine
   .chars()            //  Loop over the characters as integers
   .forEach(c->System.out.printf("\\u%04X",c));}
                       //   Print "\u" with hexadecimal value of these characters

126 বাইট

v->{int i='}'-'[';var s="v->{int i='}'-'[';var s=%c%s%c;System.console().printf(s,i,s,i);}";System.console().printf(s,i,s,i);}

System.console()nullকিছুই সরবরাহ না করা হলে ফিরে আসবে , তাই টিআইও NullPointerExceptionএই ক্ষেত্রে একটি ফেরত দেয়

এটি একটি কার্যকরী কুইন প্রমাণ করতে, এর System.console()সাথে প্রতিস্থাপন করুনSystem.out : অনলাইনে চেষ্টা করে দেখুন।

ব্যাখ্যা:

v->{              // Method with empty unused parameter and no return-type
  int i='}'-'[';  //  Integer `i` = 34 (unicode value for double-quote)
  var s="v->{int i='}'-'[';var s=%c%s%c;System.console().printf(s,i,s,i);}";
                  //  Unformatted source code
  System.console().printf(s,i,s,i);}
                  //  Print formatted quine

সাধারণ ব্যাখ্যা:

জাভাতে সাধারণত একটি হয়:

  • String sঅবিন্যস্ত সোর্স কোড রয়েছে।
  • %sএই স্ট্রিংটি নিজের সাথে ইনপুট করতে ব্যবহৃত হয় s.format(...)
  • %c, %1$cএবং 34এগুলি ডাবল-কোট ফর্ম্যাট করতে ব্যবহৃত হয়।
  • s.format(s,34,s) সব একসাথে রাখে।

যা ক্ষেত্রে জাভা 10-এ সংক্ষিপ্ততম কুইন ল্যাম্বডা-ফাংশনটি এটি হবে ( 82 বাইট ):

v->{var s="v->{var s=%c%s%1$c;return s.format(s,34,s);}";return s.format(s,34,s);}

এটি অনলাইনে চেষ্টা করুন।

যেহেতু জাভাতে দুটি কুইন থাকার একমাত্র উপায়টি ইউনিকোড সংস্করণটি ব্যবহার করছে \uHEXAযা সংকলনের সময় অক্ষরে রূপান্তরিত হয়েছে, তাই আমি 0123456789ABCDEF\uনন-ইউনিকোড সংস্করণে অক্ষরগুলি ব্যবহার করতে পারছি না । সুতরাং, ছোট অ-ইউনিকোড সংস্করণ ব্যবহার করবে System.console()পরিবর্তে returnবা System.out(উভয় ধারণকারী একটি 'U'), এবং ব্যবহার করবে '}'-'['এবং দুই বার %cপরিবর্তে 34এবং %1$c

ইউনিকোড সংস্করণ সম্পর্কে কিছু বিষয় লক্ষণীয়:

  • আমি %04Xপরিবর্তে %04x(ছোট হাতের বদলে বড় হাতের অক্ষর জন্য হেক্সাডেসিমালের জন্য) ব্যবহারের উদ্দেশ্যে আছি ।
  • আমি ব্যবহার করছি 92, %cএবং %3$cস্ল্যাশ ফরম্যাট করতে।
  • \Uছোট হাতের পরিবর্তে মূলধন ব্যবহারের \uদৃশ্যত অনুমতি নেই, অন্যথায় আমি কেবল returnসংক্ষিপ্ত অ-ইউনিকোড সংস্করণে ব্যবহার করতাম ।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.