( একটি পুরানো প্রশ্নের উপর এই মন্তব্য দ্বারা অনুপ্রাণিত ।)
পটভূমি
একটি ত্রুটি কুইন ("কিমিয়ান কুইন" নামেও পরিচিত) এমন একটি প্রোগ্রাম যা সংকলিত বা সঞ্চালনের সময় সংকলক / দোভাষী / রানটাইমকে প্রোগ্রামে অভিন্ন পাঠ্য রয়েছে এমন একটি ত্রুটি বার্তা প্রিন্ট করার কারণ এবং অন্য কিছুই নয়। এই চ্যালেঞ্জের উদ্দেশ্যে, আমরা সতর্কতাও অন্তর্ভুক্ত করার জন্য, "ত্রুটি" বিস্তৃতভাবে সংজ্ঞায়িত করছি।
কার্য
এই চ্যালেঞ্জের মধ্যে আমরা একটি সন্ধান করছি quineযা এছাড়াও একটি ত্রুটি quine। কার্যকর করা হলে, প্রোগ্রামটি অবশ্যই নিজের উত্স কোডটি সাধারণত মুদ্রণ করে (যেমন ত্রুটি / সতর্কবার্তা হিসাবে নয়); এটি অবশ্যই একটি যথাযথ কুইন হতে হবে (যেমন প্রোগ্রামের কিছু অংশ অবশ্যই আউটপুটটির একটি আলাদা অংশকে এনকোড করতে পারে)। উপরন্তু, সংকলন এবং নির্বাহ প্রোগ্রাম আবশ্যক এছাড়াও প্রোগ্রামের সোর্স কোড কারণ - এবং অন্য কিছুই - ত্রুটি যেমন ছাপা হবে বা বাস্তবায়ন দ্বারা সতর্কবাণী। (দ্রষ্টব্য যে এর অর্থ এই যে আপনি যে ভাষাগুলি প্রোগ্রামটি সাধারণত চালানো থেকে বিরত করেন সে ভাষাগুলিতে আপনি সংকলন-সময় ত্রুটিগুলি ব্যবহার করতে সক্ষম হবেন না)) সুতরাং অন্য কথায়, প্রতিটি পদ্ধতির মাধ্যমে প্রোগ্রামটির উত্স কোডটি দু'বার মুদ্রিত হবে।
ব্যাখ্যা
- বেশিরভাগ ক্ষেত্রে, এটি ত্রুটি / সতর্কতা বার্তা কী এবং এটি স্পষ্ট হবে; আমরা এখানে দুজনের মধ্যে পার্থক্য করছি না। অস্পষ্ট ক্ষেত্রে, কোনও ত্রুটি / সতর্কতা বার্তাটিকে যে কোনও পাঠ্য হিসাবে প্রয়োগ করে আউটপুট হিসাবে সংজ্ঞায়িত করুন: ১. কমান্ড কার্যকর করা ছাড়া অন্য কোনও কিছুর ফলস্বরূপ (বা এর নিকটবর্তী সমান ভাষাটিতে যা আছে); অথবা ২. এটি আউটপুট হিসাবে উত্পাদিত কমান্ডের ইনপুটটির অংশ ছিল না।
- কুইনের ত্রুটি / সতর্কবার্তার অংশটিকে যথাযথ কুইন হওয়ার প্রয়োজন নেই (যদিও বেশিরভাগ ক্ষেত্রে এটি যথাযথভাবে হবে, কারণ বেশিরভাগ ত্রুটি এবং সতর্কতা বার্তায় যথেষ্ট পরিমাণে নির্দিষ্ট পাঠ্য রয়েছে)।
- প্রোগ্রামটি একাধিক ত্রুটি / সতর্কবার্তা আউটপুট করা গ্রহণযোগ্য, যা একসাথে একত্রিত হয়ে প্রোগ্রামের উত্স তৈরি করে। উত্সে উপস্থিত না হওয়া আউটপুট ত্রুটি / সতর্কতাগুলির পক্ষে এটি গ্রহণযোগ্য নয়।
- অনেক চ্যালেঞ্জের বিপরীতে, সংকলককে দেওয়া সুইচগুলি এবং প্রোগ্রামের ফাইলের নামগুলি এই চ্যালেঞ্জের ক্ষেত্রে অত্যন্ত প্রাসঙ্গিক হতে পারে। প্রদত্ত যে চ্যালেঞ্জ অন্যথায় সম্ভব নাও হতে পারে, আমি এখানে নমনীয় হতে ইচ্ছুক, যদিও আপনি যদি অস্বাভাবিক উপায়ে বাস্তবায়ন পরিচালনা করেন তবে মনে রাখবেন যে পিপিসিজি নিয়মগুলি এটি করার জন্য বাইট জরিমানা আদায় করে (অতিরিক্ত অক্ষরের সংখ্যার সমান যে আপনাকে কোনও প্রোগ্রাম চালানোর জন্য সবচেয়ে কম "স্বাভাবিক" উপায়ের উপরে কমান্ড লাইনে যুক্ত করতে হবে) এবং এইভাবে আপনাকে আপনার পোস্টে জরিমানার আকার নির্দিষ্ট করতে হবে। (উদাহরণস্বরূপ, আপনি যে ইন্টারপ্রেটারটি ব্যবহার করছেন তা যদি কোনও ফাইল থেকে প্রোগ্রামটি পড়ে এবং ফাইলনামে কোনও বিশেষ বিধিনিষেধ না থাকে তবে প্রোগ্রামটি চালানোর সবচেয়ে স্বল্পতমতম উপায়টি 1-অক্ষরের ফাইলনামযুক্ত ফাইল হতে পারে;
- আপনি যে সংকলক / দোভাষা সংস্করণ ব্যবহার করেন তা প্রাসঙ্গিক হতে পারে, সুতরাং আপনার জমা দেওয়ার অংশ হিসাবে দয়া করে একটি নির্দিষ্ট সংকলক বা দোভাষী লিখুন যেখানে আপনার প্রোগ্রামটি কাজ করে এবং কোন সংস্করণটি প্রয়োজনীয়। (উদাহরণস্বরূপ, একটি সি জমা দিতে শিরোনামে "সি (জিসিসি 6.2.0)" থাকতে পারে))
- মনে রাখবেন যে এই কাজটি সমস্ত ভাষায় সম্ভব হতে পারে না। এটি যে ভাষাগুলিতে রয়েছে, সবচেয়ে সহজ পদ্ধতি হ'ল কোনও ত্রুটি বা সতর্কতা বার্তা সন্ধান করা হবে যার জন্য পাঠ্যের কিছু উপসেট কাস্টমাইজ করা সম্ভব (বার্তায় উদ্ধৃত হওয়া কিছুটির নাম পরিবর্তন করে; ফাইলের নামগুলি একটি সাধারণ পছন্দ) এখানে, তবে একমাত্র নয়)। যদি কেউ কেবল ত্রুটি এবং সতর্কতা বার্তা যার পাঠ্য স্থির করে থাকে তা ব্যবহার করে এটি করার উপায় খুঁজে পেয়ে আমি বিশেষভাবে মুগ্ধ (এবং অবাক হয়ে যাব) be
বিজয় শর্ত
এটা একটা কোড-গলফচ্যালেঞ্জ, সুতরাং একটি এন্ট্রি আরও ভাল হিসাবে বিবেচনা করা হয় যদি এটির একটি ছোট বাইট গণনা থাকে। যেমন, আপনার প্রোগ্রামটি একবারে কাজ করার পরে, আপনি যতটা সম্ভব বাইটের সংখ্যা কমিয়ে আনতে এটি অনুকূলিত করতে চান। (তবে, ইতিমধ্যে একটি সংক্ষিপ্ত এন্ট্রি থাকলে নিরুৎসাহিত হবেন না, বিশেষত এটি ভিন্ন ভাষায় থাকলে; আমরা এখানে যা খুঁজছি তা হ'ল একটি প্রোগ্রামের পিছনে একটি নির্দিষ্ট অ্যালগরিদম বা ধারণা যতটা সম্ভব সংক্ষিপ্ত করা, তবে একাধিক দেখতে বিভিন্ন ভাষায় সমাধানগুলি বা বিভিন্ন নীতিগুলির উপর নির্ভর করে সর্বদা সার্থক)