কখনও কখনও, কোনও প্রোগ্রাম লেখার সময় আপনাকে কোনও কারণে বা অন্য কারণে (যেমন ক্রিপ্টোগ্রাফি) একটি মৌলিক সংখ্যা ব্যবহার করা প্রয়োজন। আমি ধরে নিই যে কখনও কখনও আপনার একটি সংমিশ্রণ সংখ্যাও ব্যবহার করা প্রয়োজন। কখনও কখনও, এখানে কমপক্ষে পিপিসিজিতে আপনার প্রোগ্রামটি স্বেচ্ছাসেবী পরিবর্তনগুলি মোকাবেলা করতে সক্ষম হতে হবে। এবং পরিস্থিতিতে একটি আকর্ষণীয় পিপিসি প্রশ্ন করার সুবিধার্থে সংবিধানযুক্ত, সম্ভবত আপনি যে সংখ্যাগুলি ব্যবহার করছেন তা দুর্নীতির বিরুদ্ধে প্রতিরোধী হতে হবে ...
সংজ্ঞা
একটি সংমিশ্রণ সংখ্যাটি পূর্ণসংখ্যা 4 ≥ যা প্রাইম নয়, অর্থাত্ এটি 1 টির চেয়ে কম দুটি ছোট পূর্ণসংখ্যার গুণফল follows ন্যূনতম সম্ভাব্য বিটের সংখ্যা বাইনারে, আপনি সংখ্যা থেকে যে কোনও এক বা দুটি বিট পরিবর্তন করতে পারেন, এবং সংখ্যাটি এখনও সংমিশ্রিত।
উদাহরণ
উদাহরণস্বরূপ, 84 সংখ্যাটি বিবেচনা করুন b বাইনারিতে, এটি 1010100
। এখানে এমন সমস্ত সংখ্যা রয়েছে যা এর চেয়ে 2 বিটের বেশি আলাদা নয়:
0000100 4 2 × 2 0010000 16 4 × 4 0010100 20 4 × 5 0010101 21 3 × 7 0010110 22 2 × 11 0011100 28 4 × 7 0110100 52 4 × 13 1000000 64 8 × 8 1000100 68 4 × 17 1000101 69 3 × 23 1000110 70 7 × 10 1001100 76 4 × 19 1010000 80 8 × 10 1010001 81 9 × 9 1010010 82 2 × 41 1010100 84 7 × 12 1010101 85 5 × 17 1010110 86 2 × 43 1010111 87 3 × 29 1011000 88 8 × 11 1011100 92 4 × 23 1011101 93 3 × 31 1011110 94 2 × 47 1100100 100 10 × 10 1110000 112 8 × 14 1110100 116 4 × 29 1110101 117 9 × 13 1110110 118 2 × 59 1111100 124 4 × 31
প্রথম কলামটি বাইনারি সংখ্যা; দ্বিতীয় কলামটি দশমিকের সংখ্যা। তৃতীয় কলামটি ইঙ্গিত হিসাবে, এই সমস্ত সংখ্যার সম্মিলিত। যেমন, 84 হ'ল বিটফ্লিপ-প্রতিরোধী সংমিশ্রণ সংখ্যা।
কাজটি
আপনাকে অবশ্যই নিম্নলিখিত তিনটি প্রোগ্রাম বা ফাংশনগুলির মধ্যে একটি লিখতে হবে, যেটি আপনার ভাষার জন্য সর্বাধিক অর্থবোধ করে:
- একটি প্রোগ্রাম বা ফাংশন যা ইনপুট হিসাবে একটি nonnegative পূর্ণসংখ্যা n নেয় এবং প্রথম এন বিটফ্লিপ-প্রতিরোধী সংমিশ্রণ সংখ্যাগুলি আউটপুট করে ।
- একটি প্রোগ্রাম বা ফাংশন যা নন-নেগেটিভ পূর্ণসংখ্যা লাগে এন ইনপুট হিসাবে, এবং কম সব bitflip-প্রতিরোধী যৌগিক সংখ্যা আউটপুট এন (অথবা আপনি পছন্দ করেন, কম বা সমান যদি এন , অর্থাত্ আপনি বেছে নিতে পারেন কিনা এন আউটপুট যদি bitflip মধ্যে অন্তর্ভুক্ত করা হয় -resistant)।
- এমন একটি প্রোগ্রাম বা ফাংশন যা কোনও ইনপুট নেয় না এবং সমস্ত বিটফ্লিপ-প্রতিরোধী সংমিশ্রণ সংখ্যাগুলি আউটপুট করে। (প্রোগ্রামটি চলমান অবস্থায় আউটপুট উত্পাদন করতে সক্ষম এমন একটি আউটপুট প্রক্রিয়া অবশ্যই ব্যবহার করা উচিত, যেমন স্টাডাউট থেকে মুদ্রণ, একটি অলস তালিকা বা জেনারেটর; আপনি কেবল পুরো তালিকাটি গণনা করতে পারবেন না এবং এটি মুদ্রণ করতে পারবেন না))
পরীক্ষার মামলা
এখানে প্রথম কয়েকটি বিটল্লিপ-প্রতিরোধী সংমিশ্রণ সংখ্যা রয়েছে:
84, 184, 246, 252, 324, 342, 424, 468, 588, 636, 664, 670, 712, 730, 934, 958
ব্যাখ্যা
- এটি কেবলমাত্র আপনার উত্পাদন করা সংখ্যা যা বিটফ্লিপগুলির প্রতিরোধী হতে হবে। এটি প্রোগ্রাম তৈরির কাজ নয় যা তাদের বিটফ্লিপসের জন্য প্রতিরোধী বলে মনে করে; আপনার নিজের পছন্দ মতো প্রোগ্রামটিতে যে কোনও নম্বর ব্যবহার করুন।
- আপনার আউটপুট নম্বরগুলি "নেতৃস্থানীয় শূন্য" এর বিটফ্লিপ প্রতিরোধী হতে হবে না; কল্পনা করুন যে সংখ্যাগুলি বিটগুলির ন্যূনতম সম্ভাব্য সংখ্যায় সংরক্ষণ করা হবে এবং কেবলমাত্র সেই বিটগুলি উল্টাতে প্রতিরোধী হতে হবে। তবে আপনার আউটপুট সংখ্যার প্রাথমিক 1 টি বিট বিটফ্লিপসে অনাক্রম্য হতে হবে।
- আপনার পছন্দ মতো কোনও অ্যালগরিদম ব্যবহার করুন যা সঠিক ফলাফল দেয়; আপনি এখানে দক্ষতা চিহ্নিত করা হচ্ছে না।
- যদি আপনি প্রমাণ করতে পারেন যে চূড়ান্তভাবে অনেক বিটল্লিপ-প্রতিরোধী সংমিশ্রণ সংখ্যা রয়েছে, তবে ক) আউটপুট ফর্ম্যাটটির উপর থেকে নিষেধাজ্ঞাগুলি সরিয়ে নেওয়া হবে, এবং খ) তালিকার হার্ডকোডিংয়ের অনুমতি দেওয়া হবে (যদিও এটি কেবল গণনা করার চেয়ে আরও ভার্জোজ)। এই বিধিটি বেশিরভাগ ক্ষেত্রে কেবল সম্পূর্ণতার জন্য; আমি এটি প্রাসঙ্গিক হবে আশা করি না।
বিজয় শর্ত
এটি কোড-গল্ফ , তাই যথারীতি খাটো আরও ভাল। এছাড়াও যথারীতি, প্রোগ্রামটির দৈর্ঘ্য বাইটগুলি পরিমাপ করা হবে।
n
হলে আমি কি তাকে অন্তর্ভুক্ত করতে পারিn
? (অর্থাত্ এটিকে "এন এর চেয়ে কম বা সমান করুন"?)