বিকিরণ কুইনকে নরম করে দেয়


38

এটি সহজ: একটি যথাযথ কুইন তৈরি করুন যেখানে আপনি কোনও চরিত্র অপসারণ করেন, এটি এখনও একটি কোয়াইন।

এই এবং একটি বিকিরণ শক্ত কুইনের মধ্যে পার্থক্য হ'ল যদি আপনার প্রোগ্রাম হয় তবে ABএকটি বিকিরণে শক্ত কুইন Aআউটপুট হয় AB, তবে এখানে, Aআউটপুট হয় A

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


একটি খালি প্রোগ্রাম বৈধ?
লুভজো


3
@ ফেয়ারসাম চ্যালেঞ্জটি জানিয়েছে "একটি রাস্তা তৈরি করুন যেখানে ...", সুতরাং ABআউটপুট হওয়া উচিত AB
ঐ মেগো

1
@ মেগো আমি জানি এটি বলছে যে, তবে স্পেসিফিকেশনগুলি সর্বদা এতটা সুনির্দিষ্ট হয় না এবং উদাহরণগুলিতে এটি নির্দেশিত হয় না।
ফেয়ারস

4
@ ফেয়ারসাম "কুইন তৈরি করুন" এর অর্থ একটি কুইন তৈরি করুন। "এই এবং একটি বিকিরণ-কড়া কুইনের মধ্যে পার্থক্য ..." এর অর্থ হ'ল একমাত্র পার্থক্য হ'ল যে কোনও একটি বাইটযুক্ত প্রোগ্রামটি কোয়ানে ফলাফল সরিয়ে দেয়, এমন কোনও প্রোগ্রাম নয় যা মূল প্রোগ্রামটির উত্স মুদ্রণ করে। এখানে কোনও অস্পষ্টতা নেই।
ঐ মেগো

উত্তর:


22

> <> (ফিশ), 145 107 বাইট

এই উত্তরটি সমস্যার সমাধান করতে> <> 'র জাম্পিং নির্দেশ ব্যবহার করে।

!<0078*+00~..>0[!."r43a*+8a+&{ee+00&1-:&(?.~~ol?!;4b*0.0f<>0['r3d*159*+&}7a*00&1-:&(?.~~ol?!;68a*+0.0+*a58 

এই কুইনে আসলে দুটি ভিন্ন কুইন জেনারেটর রয়েছে। এটি কিছু জাম্পিং যুক্তি দিয়ে শুরু হয় এবং ডিফল্টরূপে বাম কোয়েন ব্যবহার করে। যদি কোনও চরিত্রটি জাম্পিং যুক্তি থেকে বা বাম কোয়াইন থেকে সরানো হয় তবে প্রোগ্রামটি ডান কুইনে লাফ দেয়।

আপনি এটি এখানে চেষ্টা করতে পারেন

ব্যাখ্যা

কোডটি কয়েকটি অংশে বিচ্ছিন্ন করা যেতে পারে:

A: !<0078*+00~..>0[!. 
B:              >0[!."r43a*+8a+&{ee+00&1-:&(?.~~ol?!;4b*0.
C:                                                    .0f<
D:                                                        >0['r3d*159*+&}7a*00&1-:&(?.~~ol?!;68a*+0.
E:                                                                                                 .0+*a58 

বিভিন্ন অংশের ব্যাখ্যা:

  • উত্তর: সি এর ডান দিকে লাফ দেয় যদি কোনও অক্ষর এ থেকে মুছে ফেলা হয় তবে এটি ডি এর বামে বা ই এর ডানদিকে লাফ দেয়, দ্বিতীয় রানিকে ট্রিগার করে। যদি বি বা সি থেকে কোনও অক্ষর মুছে ফেলা হয়, কোডটি 1 টি অক্ষরকে বামে স্থানান্তরিত করা হবে, যার ফলে এটি ডি এর বামে ঝাঁপিয়ে পড়ে causing
  • সি: এই কোডটি বি এর বামে লাফ দেয়
  • বি: কুইন # 1
  • ডি: কুইন # 2
  • ই: ডি এর বাম দিকে লাফ দেয়

কুইনের ব্যাখ্যা (উদাহরণ হিসাবে # 1 সহ):

একবার নির্দেশ নির্দেশক কোয়েনগুলির উভয়টিতে পৌঁছে গেলে আপনি নিশ্চিত যে কুইন সম্পূর্ণ অক্ষত।

>0[!.                                       //Fix the instruction pointer's direction and empty the stack (The '!.' is a leftover from codepart A)
     "r43a*+                                //Start reading all of the code and add the '"' character to the stack
            8a+&                            //Because the quine started reading at the 19th character instead of the first, the stack has to move 18 characters. 
                                            //This part saves the number 18 to the register.
                {ee+00&1-:&(?.              //Move the stack one to the left, decrease the stack by 1. If the stack is not empty yet, jump back to the start of this section.
                              ~~              //Clean the temporary variables from the stack. It should now contain the whole quine.
                                ol?!;4b*0.  //Print the first character from the stack. As long as the stack isn't empty, jump back to the start of this section.

দয়া করে ব্যাখ্যা
ক্যালকুলেটরফলাইন

উপরে পুনরাবৃত্তি।
ক্যালকুলেটরফলাইন

1
এটি কি যথেষ্ট পরিষ্কার?
থিজস টের হার

36

দৈর্ঘ্য , 4.54 × 10 761 বাইট

এটিতে নালাগুলির এই সংখ্যা রয়েছে:

453997365974271498471447945720930600149036031871190716908688344432973027776681259141680552038829875159204621651993092104775733418288411812715164994750890484868305218411129600012389568016974351721147925344946382782884546247102886167837964612372737300786173159265347137401863281368021545169383664534228503236761742285358985343373496184959796553930661837467682191561275123057706776367104142995491262443697167483190110516522677811931124842961701222425076750211774387637740969301686178545299089832300154448308384461700726890067468872402133010536518468336342175124002115991866466700174974019423711837589532744970385003356612639263433822126850314801275940879069069974437167102618471264140597777702065896715558989678487253830854848740247786166790545462769498303055791292

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

বর্ধিত ব্রেইনফাক কোড:

>>+++>++++++++>+++>+++>+>+>+>+>+>+>+>+++>+>+>+>+>+>+>+>+>+++>+>+>+>+>+>+>+>+>++++++++>++++>++++++++>++++>+++++++>++>+++>+>+++>++>+++>+++>+>+>+>+>+>+>+>+>++++>++++>+++++++>+>++++>++++++++>++>+++++++>+++>++++++++>++>+++++++>+++>++++++++>++>+++++++>+++>++++++++>++>+++++++>+++>+++++>++++++++>++++>+++++++>+++++++>+>+>+++>+>+>+>++++++++>+++>+++++++>+>+++>+>+++>+>+++>+>++++++++>++++>++++++++>++++>++++++++>++++>++++>+>+++>+++>++>+++++++>+++++++>+>+>+>++++++++>+++>+>++++++++>++++>+>+++>++>+++++++>++>+++++++>++++>++++>++++++++>+++>++++++++>+++>+++>+>++++>++++>++>+++++++>+++>+++>++++++++>++++>+>+++>++>+++++++>++++>++++>+++++++>+++>+++>+++>+++>++++++++>++++>++++>+>+++>+>+++>++>+++++++>+++++++
[
    [->+>+<<]
    >>>>[<<[->+<]>>[-<<+>>]>]
    <<[-[->+<]+>]+++
    [[->>+<<]<]<
]
+>+>+>+
[>]+++>++
[
    [<].
    >[-]>[-]>[-]>[-]
    <+[<<++++++++>>->+>-[<]<]
    ++++++++>++++++++>+++++++>>
]
.

যদি একটি চরিত্রকে লেংগুয়েজ প্রোগ্রাম থেকে সরানো হয়, শেষ অক্ষরটি একটি হয়ে যায় <, যার ফলে প্রোগ্রামটি ঠিক একটি কম অক্ষর মুদ্রণ করে।


1
কীভাবে আপনি এই নির্দিষ্ট পয়েন্টটি সন্ধান করতে পারেন? (অথবা বিকল্পভাবে, ব্রেইনফাক কোড কীভাবে কাজ করে?)
মার্টিন এন্ডার

1
@ মার্টিনব্যাটনার প্রথম বড় লুপটি "> +++ ..." আকারে ডেটা অনুলিপি করে এবং এটিকে বিপরীত করে দেয়। অন্যান্য বড় লুপটি অ্যানারিতে একটি পূর্ণসংখ্যা হিসাবে ডেটা মুদ্রণ করে। এটি এত জটিল নয় তবে এটি দীর্ঘ কারণ এটি ব্রেনফাক।
jimmy23013

ওহ ঠিক আছে, সুতরাং এটি ঠিক একটি সরল ব্রেইনফাক কুইনের মতো, তবে একটি ভিন্ন ডিকোডিংয়ের কাজ রয়েছে?
মার্টিন ইন্ডার

@ মার্টিনব্যাটনার কিছুটা। তবে প্রোগ্রামটির অর্ধেকটি হ'ল "ডিকোডিং ফাংশন"।
jimmy23013

দেখে মনে হচ্ছে আপনি কোডগল্ফ.স্ট্যাকেক্সেঞ্জাও.কম / / 57257 / / 78৮৮ for (যদিও ঠিক কীভাবে এটি কাজ করে তা আমার সর্বশেষ মন্তব্যের উত্তরের উপর নির্ভর করবে) এর জন্য নির্বিচার স্কোরের উত্তরগুলি তৈরি করতে আপনি অনুরূপ কৌশল ব্যবহার করতে পারেন ।
মার্টিন এন্ডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.