ডাবল চেরা কুইন


11

উদ্দেশ্য:

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

নিয়মাবলী:

  1. আপনি উভয় প্রোগ্রামের জন্য কোনও প্রোগ্রামিং ভাষা ব্যবহার করতে পারেন, উভয়ের জন্য একই প্রোগ্রামিং ভাষার প্রয়োজন নেই।
  2. আপনার প্রোগ্রামগুলি কোনও ফাইল, ফাইলের নাম, নেটওয়ার্ক, অন্যান্য প্রোগ্রাম বা অন্য কোনও কিছু থেকে কোনও ইনপুট নেওয়া উচিত নয়।

বাধ্যতামূলক মানদণ্ড:

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

উদাহরণ:

প্রোগ্রামের একটির উত্স কোডের এই উদাহরণটি থাকা :

"QIE"

প্রোগ্রামের দুটি উদাহরণের এই উত্স কোডটি থাকা :

"UN"

তারপরে উভয় প্রোগ্রামের বৈধ ডাবল-স্লিট কুইন আউটপুট অবশ্যই হওয়া উচিত:

""QUINE""

এটি কোড-গল্ফ, উভয় উত্স কোডের দৈর্ঘ্যের সংমিশ্রনের সময় কমপক্ষে বাইটস এবং স্পষ্টতই প্রতিটি প্রোগ্রামের আউটপুটের দৈর্ঘ্যও, জয়!


প্রতিটি স্বতন্ত্র প্রোগ্রামেরও কুইন হতে হবে না, তাই না? এবং প্রতিটি প্রোগ্রামে কমপক্ষে একটি চরিত্র থাকা উচিত?
mbomb007

@ mbomb007 এটি সঠিক। প্রতিটি পৃথক প্রোগ্রামের উভয় উত্স কোড অক্ষর শুরু থেকে শেষ পর্যন্ত একটি জিপারের মতো আউটপুট করা উচিত। ওয়েল, আমার ধারণা কুইন আউটপুট দেওয়ার জন্য আপনাকে প্রোগ্রামিং ভাষায় কমপক্ষে 1 বাইটের প্রয়োজন হবে? উভয় প্রোগ্রামের আউটপুট অবশ্যই অভিন্ন হতে হবে।
প্লাসেন

আমি নিশ্চিত না যে আমি বুঝতে পেরেছি বাকি আউটপুটটি অবশ্যই দীর্ঘতর সোর্স কোডটি সঠিকভাবে পূরণ করা উচিত । কীভাবে Aএবং XYZঅন্তর্বর্তী হবে? AXYZ?
ডেনিস

@ ডেনিস ঠিক যেমন কাজ করেন .+বা zকাজ করেন
অপ্টিমাইজার

@ ডেনিস সঠিক সংক্ষিপ্ত আকারের বাইটগুলি শেষ হয়ে গেলে আর দীর্ঘসূত্র কোড থেকে কী বাকী থাকে তা উভয় প্রোগ্রামের আউটপুটে সংযোজন করতে হবে।
প্লাসেন

উত্তর:


9

সিজেম, 49 47 বাইট

{`:_"__~~e#QUINE"}_~

এবং

{`:_"__~~e#QUINE"}_~e#QUINE

উভয় প্রিন্ট

{{``""__~~""++::__""ee##QQUUIINNEE""}}__~~e#QUINE

অনলাইনে এটি ব্যবহার করে দেখুন: প্রোগ্রাম 1 , প্রোগ্রাম 2 , বৈধতার প্রমাণ

তারা কিভাবে কাজ করে

{                }   e# Push a code block.
                  _~ e# Execute a copy.
 `                   e# Convert the code block into a string.
  :_                 e# Duplicate each character of the resulting string.
    "__~~e#QUINE"    e# Push this string.

প্রোগ্রাম 1 এখানে সমাপ্ত এবং এর সম্পূর্ণ উত্স কোডের স্ট্রিং উপস্থাপনা রয়েছে (যা প্রতিটি অক্ষর দু'বার পুনরাবৃত্তি করে) পাশাপাশি স্ট্যাকের স্ট্রিং ই # কুইন

প্রোগ্রাম 2 অতিরিক্ত পার্স e#QUINE, যা একটি মন্তব্য।

উভয় ক্ষেত্রেই সিজেএম দুটি স্ট্রিং স্বয়ংক্রিয়ভাবে মুদ্রণ করে, যার ফলে উল্লিখিত আউটপুট হবে।


4

গুরুতরভাবে, 46 56 42 বাইট

QUNX;RZtdXεj.ƒ£REIQ

হেক্স ডাম্প:

51554e583b525a746458ee6a2e7f9f9c524549510a

দ্বিতীয় প্রোগ্রামটি হ'ল এই সঠিক প্রোগ্রামটি বিপরীত। এটিতে একটি অদৃশ্য চরিত্র রয়েছে তবে বাইট গণনাটি সঠিক। উভয় প্রোগ্রাম এই প্যালিনড্রমিক স্ট্রিং আউটপুট দেয়:


QQUINEXR;£RƒZ⌂t.djXεεXjd.t⌂ZƒR£;RXENIUQQ

(কোনও কারণে এটি অদৃশ্য চরিত্রটি প্রদর্শন করে যখন এটি আমার টার্মিনালে আউটপুট দেয় I আমি সত্যই that এফ বাইট বুঝতে পারি না))

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

Q                     Push the source to the stack
 U                    Nop
  NX                  Push and pop lyrics to 99 bottles of beer
    ;R                Make a copy of the source reversed.
      Z               Zip them together.
       t              Completely flatten the list.
        dX            Delete the trailing newline
          εj          Join it into a string.
            .         Print it with a trailing newline.
             ⌂        (This is that 7F byte that won't show up. It halts.)

প্রোগ্রামটির বাকি অংশটি কার্যকর করা হয় না।

তারপরে অন্য দিক:

\n                   Nop
  Q                  Push the source code.
   IE                Nops
     R               Reverse source code to get source of first program
      £              Eval it into a function
       ƒ             Call it.

এই মুহুর্তে, আমরা এখন উপরের প্রথম প্রোগ্রামটি চালাচ্ছি, সুতরাং সেখানে বর্ণিত অনুসারে কার্যকরকরণ চলতে থাকবে।

আমি প্রচুর কমান্ড এখানে স্ট্রিং বা খালি স্ট্যাকের কিছুই করে না এই সত্যটি কাজে লাগিয়ে চলেছি। আমি tযখন স্ট্যাকের কেবল একটি আইটেম থাকি তখন অপ্রত্যাশিত আচরণটিও কাজে লাগাচ্ছি । এই প্রোগ্রামটি সিরিয়াসলি এর ভবিষ্যতের সংস্করণগুলিতে কাজ করবে বলে আশা করবেন না।

সিরিয়াসলি ইন্টারপ্রেটারের অনলাইন সংস্করণটি ভাঙ্গা অব্যাহত থাকায়, আপনাকে দোভাষীটি ডাউনলোড করতে হবে এবং এটি পরীক্ষা করতে এটি আপনার নিজের মেশিনে চালাতে হবে।


@ ডেনিস আপনি কি এটি আপনার কম্পিউটারে পরীক্ষা করেছেন? এটি আমার নিজের বিল্ডিং পরিবেশের একটি নিদর্শন হতে পারে।
কুইন্টোপিয়া

@ ডেনিস এনভিএম আপনি ঠিক বলেছেন সিরিয়াসলি এর সমস্ত আউটপুট পদ্ধতি একটি লাইনফিড যুক্ত করে। আমি এটি 8 বাইট ব্যয়ে ঠিক করতে পারি। দেখে মনে হচ্ছে আপনার পদ্ধতিটি খাটো হবে (যা দুঃখজনক কারণ এই পদ্ধতিটি শীতল আইএমও)।
কুইন্টোপিয়া

1

গল্ফস্ক্রিপ্ট, 46 বাইট

{`{.}%"..~~QUINE"}.~

এবং

{`{.}%"..~~QUINE"}.~QUINE

উভয় প্রিন্ট

{{``{{..}}%%""....~~~~QQUUIINNEE""}}..~~QUINE

অনলাইনে এটি ব্যবহার করে দেখুন: প্রোগ্রাম 1 , প্রোগ্রাম 2 , বৈধতার প্রমাণ

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

{`{.}%"..~~QUINE"}.~

{                }    # Push a code block.
                  .~  # Execute a copy.
 `                    # Convert the code block into a string.
  {.}%                # Duplicate each character of the resulting string.
      "..~~QUINE"     # Push that string.

প্রোগ্রামের উত্স কোড 2 অতিরিক্ত বিশ্লেষণ QUINE\n, যা দুটি অপরিজ্ঞাত টোকেন।


1

পার্ল, 61 + 60 = 121 বাইট

প্রোগ্রাম 1:

$x=q<print"\$x=q<$x>;eval\$x#"=~s/./$&$&/gr,QUINE>;eval$x#QIE

প্রোগ্রাম 2:

$x=q<print"\$x=q<$x>;eval\$x#"=~s/./$&$&/gr,QUINE>;eval$x#UN

আমি ভেবেছিলাম আমি এটি একটি অ-গল্ফিং ভাষায় যেতে দেব। এটি পার্লের মূলত একটি সর্বজনীন কুইন নির্মাতা যা মুদ্রণের আগে প্রতিটি চরিত্রকে দ্বিগুণ QUINEকরতে এবং শেষ পর্যন্ত যুক্ত হয়ে যায় mod তারপরে আমাদের যুক্ত লেখাটির জন্য ক্ষতিপূরণ দেওয়ার জন্য কোডের শেষে কেবল একটি মন্তব্য আটকে রাখতে হবে।

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

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