পটভূমি
ননোগ্রাম , পিক্রস বা গ্রিডার্স নামেও পরিচিত একটি ধাঁধা যেখানে লক্ষ্য করা যায় যে প্রতিটি লাইনে পরপর রঙিন কোষের সংখ্যা ব্যবহার করে 2 ডি গ্রিডের প্রতিটি ঘরটি রঙিন বা ফাঁকা রেখে দেওয়া উচিত কিনা the
নীচে সমাধান সহ ননোগ্রাম ধাঁধাটির একটি উদাহরণ।
সমস্যাটি হ'ল, কিছু বাণিজ্যিক ননোগ্রাম গেমস / মোবাইল অ্যাপ্লিকেশনগুলিতে এমন ধাঁধা রয়েছে যা হাত দিয়ে দ্রবণযোগ্য হয় না (যেমন একাধিক সমাধান থাকে, বা গভীর ব্যাকট্র্যাকিংয়ের প্রয়োজন হয়)। যাইহোক, তারা প্লেয়ার, যেখানে কিছু জীবন অফার এক জীবন হারিয়ে গেছে যখন আপনি একটি কক্ষটির সঠিক উত্তর ফাঁকা রঙ চেষ্টা । সুতরাং এখন সময় those দুষ্টু "ধাঁধা" গুরুতর জোর করার!
কাজটি সহজ করার জন্য, কেবল একটি লাইনটির ক্লু এবং অন্য কিছু দিয়ে কল্পনা করুন:
3 7 | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[3,7]
সংকেত সনাক্ত করুন, এবং লাইন দৈর্ঘ্য 15 কোষ হয়। যেহেতু এটির একাধিক সম্ভাব্য সমাধান রয়েছে, তাই এই লাইনটি পুরোপুরি সমাধান করার জন্য আমাদের কিছু জীবন ঝুঁকিপূর্ণ করা উচিত (অর্থাত্ সমস্ত রঙিন কোষ নির্ধারণ করুন)।
চ্যালেঞ্জ
সূত্রের (একটি ইতিবাচক পূর্ণসংখ্যার একটি তালিকা) একটি রেখা দেওয়া এবং রেখার দৈর্ঘ্য, সর্বাধিক সংখ্যক জীবন আপনি হারাবেন তা ধরে নিবেন, ধরে নিবেন যে আপনি অনুকূল কৌশলটির সাথে লাইনটিকে নিষ্ঠুরূপে চাপিয়েছেন।
মনে রাখবেন আপনি রঙিন কক্ষগুলি সর্বদা অনুমান করেন । প্রকৃত গেমগুলিতে, খালি কোষগুলি অনুমান করা (সঠিক বা ভুল) আপনার জীবনে কোনও প্রভাব ফেলবে না, সুতরাং আপনি ধাঁধাটি "সমাধান" করতে পারবেন না।
এছাড়াও, আপনি ধরে নিতে পারেন ইনপুটটি সর্বদা একটি বৈধ ননোগ্রাম লাইনের প্রতিনিধিত্ব করে, তাই এর মতো কোনও কিছুর বিষয়ে আপনার চিন্তা করার দরকার নেই [6], 5
।
ব্যাখ্যা
প্রথমে কিছু সহজ উদাহরণ তাকান।
[1,2], 5
এই লাইনের জন্য ঠিক তিনটি সম্ভাবনা রয়েছে ( O
এটি একটি রঙিন ঘর, .
একটি খালি):
O . O O .
O . . O O
. O . O O
আমরা যদি সেল 0 টি রঙ করার চেষ্টা করি (বাম থেকে 0-ভিত্তিক সূচক), নিম্নলিখিতগুলির মধ্যে একটি ঘটে:
- ঘরটি সঠিকভাবে বর্ণযুক্ত। এখন আমাদের দুটি সম্ভাবনা রয়েছে এবং লাইনটি পুরোপুরি সমাধানের জন্য আমরা সেল 2 এবং সেল 4 এর মধ্যে চয়ন করতে পারি। যে কোনও ক্ষেত্রে, আমরা সবচেয়ে খারাপ ক্ষেত্রে একটি জীবন হারাব।
- ঘরটি খালি, এবং আমরা একটি জীবন হারাব। এই ক্ষেত্রে, আমরা ইতিমধ্যে এই লাইনের অনন্য সমাধানটি সনাক্ত করেছি, সুতরাং আমরা 1 প্রাণ হারিয়ে শেষ করেছি।
সুতরাং, জন্য উত্তর [1,2], 5
1।
[5], 10
বাইনারি অনুসন্ধান? নাঃ।
সর্বাধিক সুস্পষ্ট প্রথম পছন্দটি 4 বা 5, যা খালি থাকলে (1 জীবনের দামে) এক সম্ভাবনা প্রকাশ করে। ধরা যাক আমরা প্রথম 4 টি বেছে নিয়েছি। যদি 4 নম্বর ঘরটি প্রকৃতপক্ষে রঙিন হয়, তবে আমরা এটিকে বাম দিকে প্রসারিত করব, অর্থাৎ একটি প্রাণ হারিয়ে না আসা পর্যন্ত 3, 2, 1 এবং 0 চেষ্টা করুন (বা ঘর 0 টি রঙিন হয়ে গেছে, তবে আমরা কোনওরকম জীবন ব্যয় করব না)। যখনই কোনও জীবন হারিয়ে যায়, আমরা সমাধানটি অনন্যভাবে নির্ধারণ করতে পারি, উদাহরণস্বরূপ যদি আমরা এরকম কিছু দেখি:
_ _ X O O _ _ _ _ _
তাহলে আমরা ইতিমধ্যে জানি উত্তরটি হ'ল:
. . . O O O O O . .
সুতরাং, জন্য উত্তরও [5], 10
1।
[3,7], 15
সেল 11 দিয়ে শুরু করুন, যা খালি থাকলে নীচের সমাধানটি এখনই প্রকাশ করবে।
O O O . O O O O O O O X . . .
তারপরে 12 চেষ্টা করুন, যা খালি থাকলে দুটি সম্ভাবনা দেয় যা 1 অতিরিক্ত জীবনের ব্যয়ে সমাধান করা যায়।
O O O . . O O O O O O O X . .
. O O O . O O O O O O O X . .
এখন চেষ্টা করুন ২. খালি থাকলে, এটি তিনটি সম্ভাবনার দিকে নিয়ে যায় যা [1,2], 5
উদাহরণের মতো একইভাবে সমাধান করা যায় ।
. . X O O O . O O O O O O O .
. . X O O O . . O O O O O O O
. . X . O O O . O O O O O O O
আপনি যদি এই পদ্ধতিতে ঝুঁকি হ্রাস করতে থাকেন তবে আপনি সর্বোচ্চ দিয়ে যে কোনও সমাধানে পৌঁছাতে পারবেন। 2 জীবন ব্যয়।
পরীক্ষার মামলা
[1,2] 5 => 1
[2] 5 => 2
[1] 5 => 4
[] 5 => 0
[5] 10 => 1
[2,1,5] 10 => 0
[2,4] 10 => 2
[6] 15 => 2
[5] 15 => 2
[4] 15 => 3
[3,7] 15 => 2
[3,4] 15 => 3
[2,2,4] 15 => 4
[1,1,1,1,1,1,1] 15 => 2
[2,1,1,3,1] 15 => 3
[1,1,1,2,1] 15 => 5
শেষ দুটি ক্ষেত্রে, সর্বোত্তম কৌশলটি সর্বনিম্ন ফাঁকাগুলির মধ্য দিয়ে যাচ্ছে না , তবে কেবল বাম থেকে ডানে (বা ডান থেকে বাম)। এটি প্রকাশ করার জন্য @ ক্র্যাশোজকে ধন্যবাদ।
বিধি
স্ট্যান্ডার্ড কোড-গল্ফ বিধি প্রযোজ্য। বাইটের মধ্যে স্বল্পতম বৈধ জমা
খয়রাত
যদি কেউ বহু-কালীন অ্যালগরিদম (নির্ভুলতার প্রমাণ সহ) নিয়ে আসে তবে আমি এই জাতীয় সমাধানের জন্য +100 অনুগ্রহ প্রদান করব।
[6], 5
?