ইনপুট রয়েছে এমন একটি কুইন মুদ্রণ করুন


15

কার্য

আপনাকে ইনপুটটিতে একটি স্ট্রিং দেওয়া হবে যা থেকে কেবলমাত্র অক্ষর aসমন্বিত থাকে z, অর্থাত ইনপুটটি রেজেক্সের সাথে মিলবে /^[a-z]*$/

আপনার আউটপুট একই ভাষায় একটি সম্পূর্ণ প্রোগ্রাম হওয়া উচিত, যার উত্স কোডটিতে ইনপুট রয়েছে এবং এটি একটি যথাযথ কুইন।

উদাহরণ

আপনার প্রোগ্রামটি ইনপুট abcএবং আউটপুট গ্রহণ করবে :

...abc...

উপরেরটি একই ভাষায় একটি সম্পূর্ণ প্রোগ্রাম হওয়া উচিত যা কোনও ইনপুট এবং আউটপুট নেয় না:

...abc...

অর্থাত্ এটি নিজেই আউটপুট।

স্কোরিং

এটি । বাইট জিতে সংক্ষিপ্ত উত্তর।

তথ্যসূত্র


3
হুম .. তো 'কোয়াট' (কুইন + বিড়াল) এর মতো?
ম্যাথু রোহ

উত্তর:


7

পাইথন 3, 57 61 বাইট

lambda x:"s='s=%r;print(s%%s)';print(s%s)".replace('s',x+'x')

থেকে একটি মৌলিক পাইথন 3 quine লাগে এখানে এবং ইনপুট সঙ্গে পরিবর্তনশীল নাম প্রতিস্থাপন করে।

দ্রষ্টব্য: মন্তব্যগুলিতে হাইপার নিউট্রিনো দ্বারা চিহ্নিত হিসাবে for, এটি if, ইত্যাদি ইত্যাদির জন্য সংরক্ষিত কীওয়ার্ডগুলির জন্য কাজ করে না etc.

একটি অক্ষর যুক্ত করা হচ্ছে যে কোনও সংরক্ষিত কীওয়ার্ডের সাথে শেষ হয় না 'x'বা কোনও সংখ্যক এটিকে ঠিক করে দেয়। (আরজান জোহানসেন)।


পরিবর্তনশীল নামটি ব্যবহার করার জন্য অত্যন্ত সৃজনশীল।
ফাঁস নুন

3
পাইপনে ইনপুট "for"বা অন্য কোনও সংরক্ষিত শব্দের জন্য কাজ করে না ।
হাইপার নিউট্রিনো

নিশ্চিত করতে পারেন. এটি সমস্ত সম্ভাব্য ইনপুটগুলির জন্য কাজ করে না। অনলাইনে চেষ্টা করে দেখুন
mbomb007

@ হাইপার নিউট্রিনো, উল্লেখ্য, কীভাবে এটি ঘটাবেন
সি ..

আপনি কোনও অতিরিক্ত অক্ষর যুক্ত করতে পারেন যা কোনও কীওয়ার্ডের শেষে নেই, যেমন 'x'
janrjan জোহানসেন

6

জেলি , 9 বাইট

উত্পাদক

;“¶Øv”ṾØv

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

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

;“¶Øv”ṾØv  Main link. Argument: s (string of letters)

;“¶Øv”     Concatenate s and the string "\nØv".
      Ṿ    Uneval; get its string representation.
           (implicit) Print the previous return value since the next link is an
           otherwise unparsable nilad.
       Øv  Set the return value to "Ṙv".

Quine

যদি ইনপুট হয় quineতবে নিম্নলিখিত প্রোগ্রামটি উত্পন্ন হয়।

“quine
Øv”Ṙv

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

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

এটি স্ট্যান্ডার্ড জেলি কুইন। প্রথমত,

“quine
Øv”

বাম আর্গুমেন্ট এবং রিটার্ন মানটিকে স্ট্রিংয়ে সেট করে "quine\nØv"

তারপর, একটি স্ট্রিং প্রতিনিধিত্ব মুদ্রণ করে (পূর্ববর্তী ব্লক থেকে কোড) এবং আনলটার্টড স্ট্রিংটি প্রদান করে।

এর পরে, vবাম আর্গুমেন্ট নেয় এবং এটি জেলি প্রোগ্রামের ইনপুট হিসাবে পাস করে

quine
Øv

সমস্ত জেলি প্রোগ্রামগুলিতে কেবলমাত্র মূল লিঙ্কটি (শেষ লাইনে সংজ্ঞায়িত) কার্যকর করা হয়, সুতরাং প্রথম লাইনটি সম্পূর্ণ উপেক্ষা করা হবে।

অবশেষে, Øvফেরতের মানটিকে এতে সেট করে "Ṙv", যা বাহ্যিক প্রোগ্রাম শেষ হয়ে গেলে স্পষ্টতই মুদ্রিত হয়।



4

Haskell, , 51 বাইট

q একটি স্ট্রিং নেয় এবং একটি স্ট্রিং প্রদান করে।

q s|t<-"main=putStr$fst`mappend`show$"=t++show(t,s)

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

উদাহরণস্বরূপ আউটপুট putStr$q"test":

main=putStr$fst`mappend`show$("main=putStr$fst`mappend`show$","test")

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

  • প্রধান কুইন পাঠ্য এবং পছন্দসই স্ট্রিংটিকে একটি টিপলে রাখে।
  • ব্যবহারসমূহ fstমূল পাঠ্য নিষ্কাশন করতে করে।
  • ব্যবহারসমূহ showপুরো টিপলটিকে স্ট্রিতে পরিণত করতে করে।
  • mappendআগের দুটি ফাংশন একত্রিত করতে ব্যবহার করে। সুবিধামত mappendদুটি ফাংশনে একটি ফাংশন দেয় যা প্রতিটি ফাংশনকে তার যুক্তিতে প্রয়োগ করে এবং ফলাফলের সাথে mappendফলাফলের সংমিশ্রণ করে (এখানে স্ট্রিং কনকেন্টেশন)।

4

আন্ডারলোড , 14 বাইট

(~aSaS(:^)S):^

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

হিসাবে ব্যবহার করুন (test)(~aSaS(:^)S):^- যা নিজেই একটি quine।

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

  • আন্ডারলোড একটি কনটেনটেটিভ (স্ট্যাক ভিত্তিক) রহস্যময় ভাষা। এটি পড়ার ইনপুট সমর্থন করে না, তাই কোনও যুক্তি প্রাথমিকভাবে স্ট্যাকের উপরে রাখা হয়।
  • (test)এবং (~aSaS(:^)S)স্ট্রিং আক্ষরিক হয়, সুতরাং শীর্ষে উপরের অংশের সাথে স্ট্যাকের মধ্যে নিজেকে রাখুন।
  • :(~aSaS(:^)S)স্ট্যাকের উপরের স্ট্রিংটিকে নকল করে , তারপরে ^সাব-প্রোগ্রাম হিসাবে এর বিষয়বস্তুগুলি চালায়।
  • ~স্ট্যাকের উপরের দুটি উপাদানকে অদলবদল করে, তাই এখন শীর্ষে (test)
  • a(test)অতিরিক্ত বন্ধনী মোড়ানো ।
  • S((test))স্ট্যাকের উপরের স্ট্রিংটি নেয় এবং এটি বাহ্যিক বন্ধনী (যা কেবল আক্ষরিক বাক্য গঠন) ছাড়াই মুদ্রণ করে।
  • এখন aSবাকিগুলি প্রিন্ট করুন(~aSaS(:^)S) স্ট্যাকের অংশগুলি একইভাবে (প্রথম বন্ধনী সহ) ।
  • সবশেষে, (:^)Sফাইনালটি প্রিন্ট করে :^

)(ইনপুট হিসাবে সত্যই কাজ করে না , আমি মনে করি।
শে

@ রিকার ট্রু, আন্ডারলোড দুর্ভাগ্যক্রমে মেলানো প্রথম বন্ধনী সমর্থন করে না। তবে প্রশ্নটি নির্দিষ্ট করে a- z
janর্জন জোহানসেন

আহ ঠিক আছে. তা খেয়াল করেনি।
শে

4

আন্ডারলোড , 14 বাইট

a(aS(:^)S)~*:^

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

অন্যান্য আন্ডারলোড উত্তর থেকে আলাদা পদ্ধতির; নিজেকে কুইন হওয়ার পরিবর্তে এটি একটি কুইন তৈরি করে। মজার বিষয়, এটি বাইট একই সংখ্যায় আসে। এটি এমন একটি ফাংশন যা স্ট্যাক থেকে আর্গুমেন্টকে স্ট্যান্ডার্ড আউটপুটে নিয়ে যায়।

ব্যাখ্যা

a(aS(:^)S)~*:^
a               Generate a string literal containing the input
 (aS(:^)S)~*    Prepend "aS(:^)S"
            :^  Mockingbird: run the resulting function with itself as argument

ফলস্বরূপ ফাংশনটি দেখতে এরকম দেখাচ্ছে:

aS(:^)S(input)
aS              Print a string literal containing the argument
  (:^)S         Print ":^"
       (input)  Push "input" onto the stack

অন্য কথায়, এটি নিজের দ্বারা স্ট্রিং আক্ষরিক মুদ্রণ করে, এরপরে :^। এটি স্পষ্টতই একটি কুইন (কারণ যা সবেমাত্র ছাপা হয়েছিল তা প্রথম স্থানে চালানোর জন্য আমরা কার্যকর করা কোডের মতো) is


এটি টিআইওর মতো দেখায়, আপনি প্রাথমিকটি ড্রপ করতে পারেন a, যতক্ষণ না আপনি যখন ইনপুট থাকে তখন স্ট্যাডারে মুদ্রিত সেগমেন্টেশন ফল্ট ত্রুটিটি মনে করেন না a
janrjan জোহানসেন

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

2

ভি , 9 বাইট

ñ"qPxÉÑ~j

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

এটি স্ট্যান্ডার্ড ভি কুইনের একটি পরিবর্তন , এবং আমি গর্বিত যে এটি কেবল একটি বাইট বেশি দীর্ঘ।

Hexdump:

00000000: f122 7150 78c9 d17e 6a                   ."qPx..~j

ব্যাখ্যা:

ñ           " Record the following commands into register 'q'
 "qP        " Paste register 'q' before all input
    x       " Delete the last character of what we just pasted (this will be a 'ÿ')
     ÉÑ     " Insert 'Ñ' at the beginning of this line
       ~    " Toggle the case of this character
        j   " Move down a line. During playback, this will cancel playback of the current macro,
            " So everything after here is a NOOP

তারপরে, রেকর্ডিং স্পষ্টভাবে বন্ধ হয়ে যায় এবং ফিরে প্লে হয়। এটি নিম্নলিখিত আউটপুট উত্পন্ন করবে:

ñ"qPxÉÑ~jHello

যেহেতু jম্যাক্রোর প্লেব্যাকটি ভেঙে দেবে, তেমন কিছুই Helloকখনই চালিত হবে না।


2

পাইথন 2, 38 বাইট

যদিও ইনপুটটি কেবল সমর্থন করার জন্য প্রয়োজনীয় a-z, এটি কোনও একক-লাইন ইনপুটটির সাথে কাজ করা উচিত যাতে NUL বাইট থাকে না।

s='s=%r;print s%%s#'+input();print s%s

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

ইনপুট abcজন্য ফলাফল কোয়াইন হয়:

s='s=%r;print s%%s#abc';print s%s#abc

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


1

RProgN 2 , 15 বাইট

"{']C'.%q[}]C"F

ব্যাখ্যা

ফর্ম্যাট ব্যবহার করে

{']C'.%q[}]C}

%qকোয়েড ইনপুটটি কোথায় , স্বাদের একটি কুইন তৈরি করে

{']C'."Some Text"[}]C

যা একটি স্ট্যান্ডার্ড আরপ্রোগএন 2 কুইন, {']C'.}]Cএটি শেষ হওয়ার পূর্বে ইনপুটযুক্ত স্ট্রিং সংযোজন এবং ধ্বংস করে।

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


1

রেটিনা , 14 বাইট

বাইট গণনাটি আইএসও 8859-1 এনকোডিং ধরেছে।

\(\`^
¶\(*S1`|

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

ইনপুট জন্য x, এই আউটপুট:


\(*S1`|x
\(*S1`|x

ব্যাখ্যা

আউটপুট মান কুইনের একটি ছোটখাট পরিবর্তন । আমরা |xখালি রেগেক্সের পরিবর্তে কেবল রেজেেক্স ব্যবহার করি । যেহেতু |এখনও স্থির করে (এবং অগ্রাধিকার দেয়) এবং খালি ম্যাচ, কার্যকারিতা নিজেই প্রভাবিত হয় না এবং সেই থেকেx কেবলমাত্র চিঠিগুলি থাকে, তাই এটি নিজেই বৈধ রেজেক্স সিনট্যাক্স হওয়ার নিশ্চয়তা দেয়।

এটি মুদ্রণ করতে আসলে এমন একটি কৌশল ব্যবহার করা হয় যা খোদাইয়ের মতো। কুইনের সদৃশতা এড়াতে, আমরা ¶\(*S1`|কেবল একবার স্ট্রিংয়ের শুরুতে sertোকান । এটি হ'ল সোর্স কোডের অর্ধেক। লাইনফিড ছাড়াই এটিকে দু'বার মুদ্রণ করতে আমরা কনফিগারেশনটি ব্যবহার করি\(\ , যা পুরো প্রোগ্রামটিকে একটি গোষ্ঠীতে আবৃত করে এবং উভয় পর্যায়ে নিজেই পাশাপাশি এতে উপস্থিত গ্রুপটি লাইনফিড ছাড়াই ফলাফল মুদ্রণ করে।


1

জাপট , 14 বাইট

"\"iQ ²ª`"+U ²

এটি অনলাইন পরীক্ষা! abcআউটপুট ইনপুট জন্য

"iQ ²ª`abc"iQ ²ª`abc

যা নিজেই আউটপুট করে। এটি অনলাইন পরীক্ষা!

ব্যাখ্যা

এটি স্ট্যান্ডার্ড পেডলোড-সক্ষম জাপট কুইনের একটি এক্সটেনশন:

"iQ ²"iQ ²

"iQ ²"      // Take this string.  iQ ²
      iQ    // Insert a quote.    "iQ ²
         ²  // Repeat this twice. "iQ ²"iQ ²
            // Implicit: output result of last expression

পার্থক্য কেবলমাত্র আমরা ª`abcশেষে সংযোজন , যা জাভাস্ক্রিপ্ট মূলত হয় ||"abc"। যেহেতু প্রথম অংশের ফলাফল সর্বদা একটি খালি খালি স্ট্রিং (সত্যবাদী), তাই|| কখনও চালানো না।

একই দৈর্ঘ্যের বেশ কয়েকটি বিকল্প সংস্করণ রয়েছে:

"iQ ²ª`abc"iQ ²ª`abc   quine||"abc"
"iQ ²ª$abc"iQ ²ª$abc   quine||abc
"iQ ²ª{abc"iQ ²ª{abc   quine||function(){ ... }
"iQ ²ªXabc"iQ ²ªXabc   quine||X.a(...) (X could be any uppercase letter or digit)
"iQ ²//abc"iQ ²//abc   quine//abc      (// is a comment in JS/Japt)
"iQ ²;[abc"iQ ²;[abc   quine;          (unmatched [ causes a parsing error)

0

সিজেম , 16 14 বাইট

"`_~"q`';++`_~

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

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

"`_~"           e# Push "`_~"
     q`         e# Push a string representation of the input (input wrapped in quotes)
       ';       e# Push a semicolon
         ++     e# Concatenate all this together
           `    e# Get the string representation of the resulting string
            _~  e# Duplicate it and eval it (pushing the original string on the stack again)

যা কিছু ভালো ফলাফল "`_~\"test\";"`_~"test";



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