যেমনটি আমরা জানি, একটি কুইন একটি প্রোগ্রাম যা তার নিজস্ব উত্স কোডকে আউটপুট করে। যাইহোক, এটি এমন একটি প্রোগ্রাম লিখতেও পারে যা অন্য, ভিন্ন প্রোগ্রামকে আউটপুট করে, যা প্রথম প্রোগ্রামটিকে আবার আউটপুট করে। উদাহরণস্বরূপ, পাইথন 2 প্রোগ্রাম
x = '''x = {}
print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3'''
print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3
চালানো হবে, নিম্নলিখিত পাঠ্য আউটপুট:
print """x = '''x = {}
print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3'''
print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3"""
পাইথন প্রোগ্রাম হিসাবে চালিত হলে, এটি আবার আসল কোডটিকে আউটপুট দেয়। একে পুনরাবৃত্ত কুইন বলা হয় । আসল কোডটি ফিরে পেতে আপনাকে এটিকে দু'বার চালাতে হবে, আমরা বলি এর পিরিয়ড 2 রয়েছে । তবে অবশ্যই অনেক বেশি সময়কাল সম্ভব।
আপনার চ্যালেঞ্জটি হ'ল আপনার বাছাইয়ের ভাষায়, 100 বাইট বা তার চেয়ে কম সময়ে, যতটা সম্ভব সময়কালের সাথে একটি পুনরাবৃত্ত কুইন লিখুন । (নোট করুন যে আমার উপরে উদাহরণটি এই অনুকরণের সাথে খাপ খায় না, কারণ এটি অনুমানযোগ্য নিউলাইন সহ ১১৯ বাইট))
নিম্নলিখিত নিয়ম এবং স্পষ্টতা নোট করুন:
- সাধারণ কুইন বিধিগুলি প্রয়োগ হয়, অর্থাত আপনার প্রোগ্রামটি এমন ভাষা বৈশিষ্ট্যগুলি ব্যবহার করতে পারে না যা এটিকে সরাসরি নিজের উত্স কোডটিতে অ্যাক্সেস করতে দেয়।
- পুনরাবৃত্তি আউটপুটগুলি শেষ পর্যন্ত আপনার মূল কোডটিতে ফিরে যেতে হবে এবং আপনাকে এটি প্রদর্শন বা প্রমাণ অন্তর্ভুক্ত করতে হবে।
- আপনি যতক্ষণ বলছেন ততক্ষণ চক্রটি কেন তার একটি ব্যাখ্যা আপনাকে অবশ্যই অন্তর্ভুক্ত করতে হবে। এটি গাণিতিক প্রমাণের স্তরে থাকা উচিত নয়, তবে এটি আপনার ভাষার সাথে পরিচিত কারও কাছে বিশ্বাসযোগ্য হওয়া উচিত। (এই বিধিটি এখানেই রয়েছে কারণ আমি কিছু উত্তর খুব খুব সংখ্যক জড়িত বলে আশা করি))
- যতক্ষণ আপনি প্রমাণ করতে পারবেন যে এটি কমপক্ষে এত দীর্ঘ। এই ক্ষেত্রে, আপনার স্কোর হবে 1,000,000 অন্যথায়, আপনার স্কোরটি আপনার কুইনের সময়কাল।
- 100 বাইট সীমাটি কেবলমাত্র আপনার প্রাথমিক প্রোগ্রামের জন্য প্রযোজ্য - এটির আউটপুটগুলির প্রোগ্রামগুলি দীর্ঘতর হতে পারে তবে অবশ্যই আপনার মূল কোডটি আউটপুট দেওয়ার জন্য তাদের শেষ পর্যন্ত 100 বাইটে ফিরে যেতে হবে।
- আপনি ধরে নিতে পারেন আপনার মেশিনটিতে অসীম র্যাম এবং অসীম রানটাইম রয়েছে তবে আপনার ভাষা যদি না থাকে তবে আপনি সীমাহীন নির্ভুলতার ডেটা ধরণের (যেমন পূর্ণসংখ্যার) ধরে নিতে পারবেন না। আপনি ধরে নিতে পারেন যে আপনার পার্সার পরিচালনা করতে পারে তার ইনপুট দৈর্ঘ্যের কোনও সীমা নেই।
- সর্বোচ্চ স্কোর জয়।
দয়া করে নোট করুন: কুইট হুইনিং নামে একটি বিদ্যমান চ্যালেঞ্জ রয়েছে ; কুইনিং শুরু করুন যা পুনরুক্তিযুক্ত কুইনগুলির সাথে জড়িত। তবে একই ধারণার উপর ভিত্তি করে এগুলি সম্পূর্ণ ভিন্ন ধরণের চ্যালেঞ্জ। অন্যটি হ'ল সোজা কোড গল্ফ, যদিও এটি হ'ল (ইচ্ছাকৃত!) ছদ্মবেশে সত্যই একটি ব্যস্ত বিভারের সমস্যা। এই প্রশ্নের ভাল উত্তর দেওয়ার জন্য প্রয়োজনীয় কৌশলগুলি অন্য প্রশ্নের উত্তর দেওয়ার জন্য যা প্রয়োজন তার চেয়ে খুব আলাদা হতে পারে এবং এটি নকশা দ্বারা খুব বেশি।