পায়রার খোপ নীতি বলে যে
তাহলে এন আইটেম পুরা হয় এম সঙ্গে, বাক্সে এন > এম , তারপর অন্তত একটি বক্স চেয়ে বেশি একটি আইটেম থাকা আবশ্যক।
অনেকের কাছে অন্যান্য গাণিতিক এনওনমেন্টের তুলনায় এই নীতিটির একটি বিশেষ মর্যাদা রয়েছে। ইডাব্লু ডিজকস্ট্রা যেমন লিখেছেন ,
এটি চারপাশে কিছু রহস্যময়। এটি ব্যবহার করার প্রমাণগুলি প্রায়শই বিশেষ কিছু, বিশেষত উদ্ভাবনী কিছু হিসাবে বিবেচিত হয়।
চ্যালেঞ্জ
এই চ্যালেঞ্জের উদ্দেশ্য ASCII শিল্প উপস্থাপনা ব্যবহার করে কবুতরের নীতিটি বর্ণনা করা। বিশেষ করে:
- নেতিবাচক এবং ধনাত্মক সহ ইনপুট
N
(আইটেমের সংখ্যা) এবংM
(বাক্সের সংখ্যা ) হিসাবে নিন Take এর চেয়ে ছোট হতে পারে (এমনকি যদি নীতিটি সেই ক্ষেত্রে প্রয়োগ না হয়)।N
M
N
M
- বাক্সগুলিতে এলোমেলোভাবে আইটেমগুলির সম্ভাব্য কার্যভারের একটি নির্বাচন করুন। প্রতিটি অ্যাসাইনমেন্টের বাছাইয়ের শূন্য-সম্ভাবনা থাকা উচিত।
নীচে অ্যাসাইনমেন্টের একটি ASCII শিল্প উপস্থাপনা উত্পাদন করুন:
- আছে
M
লাইন, প্রতিটি একটি বক্স সংশ্লিষ্ট। - প্রতিটি লাইন একটি শ্বেতস্থান অক্ষরের সাথে শুরু হয়, যেমন
|
। - সেই অক্ষরটি অনুসরণ করা হ'ল আরেকটি শ্বেতস্থান অক্ষর, যেমন
#
that বাক্সে আইটেম রয়েছে যতবার পুনরাবৃত্তি।
- আছে
উদাহরণস্বরূপ বিবেচনা করুন N = 8
, M = 5
। বক্স আইটেম নির্বাচিত assigment করা হয়, তাহলে 4
, 1
, 0
, 3
, 0
, উপস্থাপনা
|####
|#
|
|###
|
একই প্রোগ্রামটির একটি আলাদা রান (ফলস্বরূপ একটি পৃথক অ্যাসাইনমেন্ট) দিতে পারে
|#
|##
|#
|#
|###
প্রতিনিধিত্ব সংক্রান্ত কিছু নমনীয়তা রয়েছে; নিচে দেখ.
নির্দিষ্ট বিধি
কোড উচিত তাত্ত্বিক কোনো মানের জন্য চালানো এর N
এবং M
। অনুশীলনে এটি মেমরির আকার বা ডেটা ধরণের সীমাবদ্ধতার দ্বারা সীমাবদ্ধ হতে পারে।
যেহেতু সমস্ত অ্যাসাইনমেন্টের শূন্য-সম্ভাবনা রয়েছে কিনা তা নির্ধারণের জন্য আউটপুট পর্যবেক্ষণ যথেষ্ট নয় , প্রতিটি জমা দেওয়ার ক্ষেত্রে কোডটি কীভাবে তা অর্জন করে তা সুস্পষ্ট না হলে ব্যাখ্যা করা উচিত।
নিম্নলিখিত প্রতিনিধিত্বের বৈচিত্রগুলি অনুমোদিত:
- বিভিন্ন, নন-হোয়াইটস্পেস অক্ষরের যেকোন জুড়ি বেছে নেওয়া যেতে পারে। এগুলি অবশ্যই প্রোগ্রামের মৃত্যুদন্ড কার্যকর করতে হবে।
- উপস্থাপনের 90-ডিগ্রি ঘূর্ণন গ্রহণযোগ্য। আবার, পছন্দ অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে।
- পিছনে বা নেতৃস্থানীয় সাদা স্থান অনুমোদিত।
একটি ভিন্ন প্রতিনিধিত্ব বিন্যাস সঙ্গে, জন্য উদাহরণস্বরূপ N = 15
, M = 6
প্রোগ্রামের দুই মৃত্যুদণ্ড কার্যকর ফলাফল হতে পারে
VVVVVV
@@@@@@
@@ @@@
@ @@
@
অথবা
VVVVV
@@@ @
@@@ @
@ @ @
@ @ @
@
অনুরূপভাবে, N = 5
, M = 7
, দিতে উপস্থাপনা আরেকটি প্রকরণ ব্যবহার করতে পারে,
*
* * * *
UUUUUUU
অথবা
*** **
UUUUUUU
অথবা
*
* *
* *
UUUUUUU
নীতিটি কীভাবে এই ক্ষেত্রে প্রযোজ্য নয় তা নোট করুন, কারণ N
< M
।
সাধারাইওন রুল
কোনও প্রোগ্রামিং ভাষায় প্রোগ্রাম বা ফাংশন অনুমোদিত । স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
ইনপুট যে কোনও যুক্তিসঙ্গত উপায়ে নেওয়া যেতে পারে ; এবং যে কোনও বিন্যাস সহ, যেমন দুটি সংখ্যা বা দুটি পৃথক স্ট্রিংয়ের অ্যারে।
আউটপুট মানে এবং ফর্ম্যাটও নমনীয়। উদাহরণস্বরূপ, আউটপুট স্ট্রিংগুলির তালিকা বা নিউলাইন সহ স্ট্রিং হতে পারে; ফাংশন আউটপুট আর্গুমেন্ট হিসাবে ফিরে এসেছে বা STDOUT এ প্রদর্শিত হবে। পরবর্তী ক্ষেত্রে সীমাবদ্ধ ডিসপ্লে প্রস্থের কারণে লাইন মোড়ানো সম্পর্কে চিন্তা করার প্রয়োজন নেই।
বাইটস মধ্যে সংক্ষিপ্ত কোড।