যখন শিক্ষার্থীদের প্রথমে গাণিতিক আনয়নের প্রমাণ কৌশল সম্পর্কে শেখানো হয় , তখন একটি সাধারণ উদাহরণ হল এল- শেপড ট্রোমিনোস দিয়ে 2 এন × 2 এন গ্রিড টাইলিংয়ের সমস্যা , যার মধ্যে একটি পূর্বনির্ধারিত গ্রিড স্থান খালি থাকে। (এন হ'ল কিছু অ-সংযুক্তি পূর্ণসংখ্যা।)
আপনি যদি ইতিমধ্যে এটি জানেন না তবে আমি প্রমাণটি আপনার কাছে রেখে দেব। এটি নিয়ে আলোচনা করার মতো অনেকগুলি সংস্থান রয়েছে।
আপনার কাজটি এখানে এমন একটি প্রোগ্রাম লিখতে হবে যা এন এর জন্য একটি মান নেয়, পাশাপাশি গ্রিড স্পেসের স্থানাঙ্কগুলি খালি ছেড়ে দেয় এবং ফলস্বরূপ ট্রোমিনো টাইল্ড গ্রিডের একটি ASCII প্রতিনিধিত্ব মুদ্রণ করে।
চরিত্রটি O
খালি জায়গাটি পূর্ণ করবে এবং আমাদের ট্রোমিনোটির 4 টি ঘূর্ণন এইরকম দেখাবে:
|
+-
|
-+
-+
|
+-
|
(হ্যাঁ, এটি দ্ব্যর্থক হতে পারে যা +
কোনটি -
এবং |
নির্দিষ্ট ব্যবস্থাগুলির সাথে যায় তবে এটি ঠিক আছে ok)
আপনার প্রোগ্রামটি অবশ্যই কমপক্ষে N = 8 (256 × 256 গ্রিডের জন্য) এন = 0 এর জন্য (1 × 1 গ্রিডের জন্য) কাজ করবে। এটি x এবং y মান দেওয়া হবে যা এর জন্য স্থানাঙ্ক O
:
- এক্স অনুভূমিক অক্ষ। x = 1 হ'ল বাম গ্রিড প্রান্ত, x = 2 এন হ'ল গ্রিড প্রান্ত।
- y হ'ল উল্লম্ব অক্ষ। y = 1 শীর্ষ গ্রিড প্রান্ত, y = 2 এন নীচের গ্রিড প্রান্ত।
এক্স এবং y উভয়ই সর্বদা [1, 2 N ] এর মধ্যে থাকে।
সুতরাং প্রদত্ত এন, এক্স এবং ওয়াইয়ের জন্য আপনার প্রোগ্রামটি অবশ্যই 2 এন × 2 এন গ্রিড প্রিন্ট করতে হবে , সম্পূর্ণরূপে এল-আকারের ট্রোমিনোস দিয়ে টাইল্ড করা উচিত, এক্স, ওয়াই গ্রিড স্থানাঙ্ক বাদে যা হবে একটি O
।
উদাহরণ
যদি এন = 0 হয়, তবে x এবং y উভয়ই 1 হতে হবে আউটপুট সহজ
O
যদি এন = 1, এক্স = 1, এবং y = 2 হয় তবে আউটপুট হবে
-+
O|
এন = 2, এক্স = 3, ওয়াই = 2:
+--+
||O|
|+-|
+--+
এন = 2, এক্স = 4, ওয়াই = 1:
+-|O
||+-
|+-|
+--+
N = 3, x = 3, y = 6 (যেমন এই পৃষ্ঠায় চিত্র ):
+--++--+
|+-||-+|
||+--+||
+-|-+|-+
+--+||-+
||O|-+||
|+-||-+|
+--++--+
বিস্তারিত
- আপনি একটি ফাংশন লিখতে পারেন যা পুরো প্রোগ্রাম লেখার পরিবর্তে 3 পূর্ণসংখ্যার লাগে। এটি গ্রিড স্ট্রিং মুদ্রণ বা ফিরে আসা উচিত।
- স্টিডিন, কমান্ড লাইন, (অথবা ফাংশন লিখলে ফাংশন আরগস) থেকে ইনপুট নিন।
- আউটপুটে বিকল্পভাবে একটি একক প্রশিক্ষণ নিউলাইন থাকতে পারে।
- আপনি না হয় প্রয়োজনীয় টালি দ্বারা আচ্ছাদন পদ্ধতি যা প্রমাণ স্বাভাবিকভাবে প্রস্তাব দেওয়া ব্যবহার করতে। এটা শুধুমাত্র গুরুত্বপূর্ণ যে গ্রিড ব্যতীত L- আকারের trominoes দিয়ে পূর্ণ
O
। (ট্রোমিনোগুলি কাটা বা গ্রিডের বাইরে যেতে না পারে))
বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী। টাইব্রেকার আগের পোস্ট। ( হ্যান্ড বাইট কাউন্টার। )
if p!=i
; ভিতরে তালিকার.join()
প্রয়োজন নেই[]
;(1-i%2)
হিসাবে করা যেতে পারে~i%2
; আপনিt,l,a=[],...
হিসাবে লিখতে পুনরাবৃত্তিযোগ্য আনপ্যাকিং ব্যবহার করতে পারেন*t,l,a=...
;if n==0
যেমন চেক করা যাবেif n<1
কারণn
করতে পারেন নেতিবাচক হতে; চূড়ান্ত"\n".join
সম্ভবত প্রতিটি উপাদান মুদ্রণ দ্বারা সম্পন্ন করা যেতে পারে, যেহেতু সাধারণ নিয়ম ফিরে আসার জায়গায় মুদ্রণের অনুমতি দেয়; ননজারো মানগুলি সত্যবাদী হওয়ায়if p!=i
এটি হতে পারেif p-i
।