সফট্ওয়্যার ইঞ্জিনিয়ারিং কিংবা কম্পিউটার প্রোগ্রামিং করার ক্ষেত্রে সমস্যা সমাধান(বিশেষ করে গাণিতিক) করার ক্ষমতা, পুরোপুরি সমাধান না হলেও সমাধানের জন্য চিন্তা করতে পারার ক্ষমতাকে একটি গুরুত্বপূর্ণ যোগ্যতা হিসেবে দেখা হয়। নীচের সমস্যাটি সফট্ওয়্যার ইঞ্জিনিয়ার পদে, মাইক্রসফট্ এর একটি ইন্টারভিউতে আমার এক পরিচিতজনকে জিজ্ঞেস করা হয়েছিলো। উল্লেখ্য, আপনারা অনেকেই হয়তো উত্তরটা জানেন, সেক্ষেত্রে উত্তরটা না বলার জন্য অনুরোধ করছি। বরং, কেউ চিন্তা করতে চাইলে বা সমস্যাটা পড়ে না বুঝলে ব্যাখ্যা চাইতে পারেন।

সমস্যাঃ ১

আপনার সামনে দশটি স্বচ্ছ প্লাস্টিকের বাক্স লাইন করে সাজানো আছে। প্রতিটি বাক্সে আছে ছোট ছোট অনেকগুলি কয়েন। প্রতিটি কয়েনের ওজন দশ গ্রাম করে। দশটি বাক্সের মধ্যে কেবলমাত্র একটি বাক্স আছে, যেখানকার কয়েনগুলোতে সমস্যা আছে। দশ গ্রামের বদলে সেখানকার প্রতিটি কয়েনের ওজন এগারো গ্রাম করে। কিন্তু সেটা দেখে বুঝবার কোনো উপায় নেই, একমাত্র ওজন করেই বুঝা সম্ভব। এখন ওজন মাপবার জন্য আপনাকে একটা মেশিন দেয়া হলো। সেই ওজন মাপবার মেশিনে আপনি যাই ওজন করতে চান না কেন, একবার ওজন করতে পারবেন। একবার কোনো কিছু ওজন করে ফেললে, মেশিনটা আপনার কাছ থেকে সরিয়ে নেয়া হবে। আপনি যে-কোনো বাক্স থেকে যতখুশি কয়েন নিতে পারেন, যা খুশি ওজন করতে পারেন। এখন সমস্যাটা হচ্ছে, যা খুশি ওজন করুন না কেন, একবারমাত্র ওজন করে আপনাকে বলতে হবে, ঠিক কোন বাক্সের কয়েনগুলিতে সমস্যা আছে। কিভাবে আপনি সমাধান করবেন?

আবারো অনুরোধ করছি, উত্তরটা কারো জানা থাকলে, বলে দেয়ার দরকার নেই। আমিই শেষে বলে দেবো।

সমস্যাঃ ২
মন্তব্য করতে গিয়ে নৃপেন্দ্র’দা (নৃপেন্দ্র সরকার) আরেকটি সমস্যার কথা বলেছেন, আপনাদের জন্য সেটা এখানে তুলে দিলাম।

আমি একটা মাইক্রোসফটের প্রশ্ন রাখি।

৩০টি ক্যান্ড ফুড।
১টিতে বিষ আছে।
ইঁদুর দিয়ে পরীক্ষা করতে হবে। খাওয়ার ১৪ ঘন্টা পরে ইঁদুর মারা যাবে।
২৪ ঘন্টায় পরীক্ষা শেষ করে বলতে হবে কোন ক্যনে বিষ ছিল।

প্রশ্নঃ সর্বনিম্ন কয়টি ইঁদুর লাগবে?

সমাধান নীচের মন্তব্যগুলোতে দেয়া আছে। কিন্তু সরাসরি সেটা না দেখে নিজে যদি একটু চিন্তা করেন, তাহলে সমস্যাটা অনেক বেশি ইন্টারেস্টিং মনে হবে আপনার কাছে। তাই সরাসরি উত্তরটা না দেখে, আগে একটু ভাবতে চেষ্টা করুন।

[email protected]
April 04, 2011