Posts

[GUIDE] UVa OJ - 375 - Inscribed Circles and Isosceles Triangles

Image
শুরুতেই এই প্রব্লেমটা সহজ ভাষায় ব্যাখ্যা করার চেষ্টা করি । Figure : 1 খেয়াল করো । একটি সমদ্বিবাহু ত্রিভুজের ভূমি b এবং উচ্চতা h দেওয়া আছে । প্রথমে এর তিনটি কোণকে সমদ্বিখণ্ডিত করতে হবে । সমত্রিখণ্ডক তিনটির ছেদবিন্দু (চিত্রে O বিন্দু)-কে কেন্দ্র করে এমন একটি বৃত্ত আঁকতে হবে যেটি ত্রিভুজের ৩টি বাহুকে স্পর্শ করে । তারপর আরও একটি বৃত্ত (এই রঙের ) আঁকতে হবে যেটি ত্রিভুজের সমান দুই বাহু (চিত্রে AB এবং AC ) কে এবং তার নিচের বৃত্তকেও (এই রঙের ) স্পর্শ করে । এর উপরের বৃত্তগুলোও এভাবে এঁকে যেতে হবে । কিন্তু এভাবে তো অসীম সংখ্যক বার যাওয়া যাবে; তাহলে থামবো কোথায় ? এই প্রশ্নের উত্তর মূল স্টেটমেন্টেই দেওয়া আছে । এই যে বৃত্তের একটা Stack তৈরি হচ্ছে, যে বৃত্তের ব্যাসার্ধ 0.000001 এর চেয়ে ছোট হয়ে যাবে, তখনই আমাদের থেমে যেতে হবে ! প্রব্লেমের আউটপুটে দিতে হবে Stack এর সবগুলো বৃত্তের পরিধির যোগফল । তো, বৃত্তের পরিধি হিসেব করতে হলে আমাদের কী জানতে হবে ? অবশ্যই বৃত্তের ব্যাসার্ধ । কীভাবে আমরা এই বৃত্তগুলোর ব্যাসার্ধ বের করতে পারি ? প্রথমে আমরা Figure : 1 এর  ΔABC থেকে  ΔABD কে ...

EOF মানে কী ?

যারা প্রোগ্রামিং প্রবলেম সলভিং এর জগতে নতুন, তাদের অধিকাংশের মনে প্রশ্ন আসে : EOF মানে কী ? Input will be terminated by EOF এর মানে কী ? আমার এই লেখায় এই প্রশ্নের সহজ উত্তর দেওয়ার চেষ্টা করবো । EOF কে elaborate করলে দাঁড়ায় End Of File. একটা ফাইল (হতে পারে সেটা কোনো টেক্সট ফাইল কিংবা কোনো বাইনারি ফাইল) যেকোনো একটা জায়গায় গিয়ে যে শেষ হয়, সেটা কম্পিউটার বুঝে নেয় এই EOF এর মাধ্যমে । সহজ কথায়, EOF দিয়ে একটা ফাইলের ending indicate করা হয় । প্রোগ্রামিং ল্যাঙ্গুয়েজের ভাষায়, এটি একটি marker বা pre-defined Macro, সাধারণত যার মান -1. যারা প্রবলেম সলভিং করে, তারা বেশ কিছু প্রবলেমের ইনপুট স্পেসিফিকেশানে দেখতে পায় - Input will be terminated by EOF. এর মানে হলো, কতোগুলো টেস্ট কেসের জন্য ঐ প্রোগ্রাম রান করবে তা আগে জানানো হবে না, যতোক্ষণ ইনপুট দেওয়া হচ্ছে (মানে যতোক্ষণ ইনপুট ফাইলের শেষ পর্যন্ত না যাচ্ছে), ততোক্ষণ পর্যন্ত ইনপুটগুলো প্রসেসিং করতে হবে । আবার কোনো কোনো প্রব্লেমের স্পেসিফিকেশানে EOF এর কথা সরাসরি লিখা থাকে না আবার কয়টা টেস্ট কেস রান করাতে হবে সেটাও বলে দেওয়া থাকে না । সেক্...

Movie Review : Zootopia (2016)

Image
অফিসার জুডি হপস; ZPD এর একজন সদ্য নিয়োগপ্রাপ্ত তরুণ, উদ্যমী ও পরিশ্রমী পুলিশ অফিসার । অনেক চরাই-উৎরাই পার হয়ে এসে হপস আজকের এই অবস্থানে এসেছে । কিন্তু ডিউটিতে জয়েন করার প্রথম দিন থেকেই সে চরমভাবে উপেক্ষিত । হপস এর জয়েনিং দিনেই চিফ বগো ১৪ টা মিসিং কেস নিয়ে ব্রিফিং এ হাজির হয় । সকলে মিসিং কেস নিয়ে এসাইনমেন্ট পেলেও পায়নি শুধুমাত্র হপস । প্রথম দিনেই তার কপালে জুটে পার্কিং ডিউটি ! তারপরেও সে নিরাশ হয় না, বরং পার্কিং ডিউটি সে চরম উৎসাহে পালন করতে থাকে । হঠাত করেই একদিন ঘটনাক্রমে সেই ১৪ টা মিসিং কেসের ১ টা কেস হপসের হাতে আসে । ভিক্টিমের নাম এমিট অটারটন । কিন্তু চিফ বগোর সাথে তার ডিল হয়, হপস ৪৮ ঘণ্টার মধ্যে অটারটনকে খুঁজে বের করবে নতুবা সে তার চাকরী হারাবে ! কেস ফাইল পাওয়ার পর হপসের মাথায় আকাশ ভেঙে পড়ে । এটা এমনই এক কেস যেটার কোনো লিড নেই, নেই কোনো চাক্ষুষ সাক্ষী কিংবা প্রমাণ ! আছে শুধু একটা ছবি যেখানে তাকে শেষবারের মতো দেখা গিয়েছিলো । এই একটা ছবিকে লিড ধরেই সামনে এগুতে থাকে অফিসার হপস । ৪৮ ঘণ্টা শেষ হবার ১০ ঘণ্টা আগেই কেসের রহস্য প্রায় সমাধান করেই ফেলে হপস কিন্তু... ? একটা মিসিং কেসের রহস্...

return keyword কী ?

সদ্য প্রোগ্রামিং জগতে আসা অনেকেই return keyword টির কাজ বুঝতে পারে না । তাদের কথা ভেবে এই পোস্ট লিখা । return keyword টি function এর সাথে ওতপ্রোতভাবে জড়িত । তাই এখানে function এর মাধ্যমেই আলোচনা করার চেষ্টা করলাম । মনে করো, তোমার খুব চা খেতে ইচ্ছে করছে কিন্তু তুমি চা বানাতে জানো না বা পারো না । তুমি তোমার ছোট বোনকে চা বানিয়ে দিতে বললে । তোমার ছোটবোন তোমাকে বললো, যদি তুমি তাকে চা বানানোর উপকরণগুলো এনে দাও, তবেই সে তোমাকে চা বানিয়ে দিবে ! এবার এসো আমরা একটা তালিকা বানাই । চা বানাতে কী কী লাগবে ? চা পাতা, পানি, দুধ, চিনি ! তুমি যে চা খেতে চাইছো, সে চা কী ধরণের বস্তু ? নিশ্চয়ই তরল । এবার এই তথ্যগুলো নিয়ে আমরা একটা function লিখার চেষ্টা করবো । একটা function লিখতে হলে সেই function এর শুরুতে প্রথম যে শব্দ বা keyword টি লিখতে হয়, সেটি হলো ঐ function এর return data type অর্থাৎ function টি কী ধরণের data তোমাকে return করবে, সেটি । তো, আমরা যে চা খাওয়া নিয়ে কথা বলছিলাম, সে ক্ষেত্রে return type কী হতে পারে ? অবশ্যই তরল ! এরপর লিখতে হয় ঐ function টির একটি যুতসই নাম, নিজের ইচ্ছেমতো নাম । তবে না...