Divide & Conquer Optimization – DP(ডিপি অপ্টিমাইজেশন)

  প্রথমেই বলে রাখি, এই টিউটোরিয়ালটা একটু এডভান্সড লেভেলের। তাই ডিপি নিয়ে খেলা করতে মোটামুটি পারদর্শী না হলে এই টিউটোরিয়ালটা স্কিপ করাই ভাল। সাথে Divide and Conquer সম্পর্কেও জানা থাকতে হবে!   এবার তাহলে শুরু করা যাক। প্রথমেই কিছু কঠিন কঠিন শর্ত লিখে শুরু করব। 😥 ঘাবড়ে যাওয়ার কোন কারণ নেই, উদাহরণ দিলে আস্তে আস্তে … More Divide & Conquer Optimization – DP(ডিপি অপ্টিমাইজেশন)

আহো-কোরাসিক(Aho-Corasick) অ্যালগোরিদম

মনে আছে তো, আমার সেই কিপটে বন্ধুটাকে জব্দ করে বুফে খাওয়ার কথাটা! আহহ, সেই স্বাদ এখনও মুখে লেগে আছে! 😉 আর বন্ধুর করুণ মুখটা দেখলে আজও হাসি আটকে রাখতে পারি না। 😄 কিন্তু আমার সেই বন্ধুটাও কোনভাবেই ছাড়ার পাত্র নয়, সে এই টাকা আমার থেকে উঠিয়েই ছাড়বে। তাই এবার সে বাজি লাগল আরেকটা নতুন সমস্যা নিয়ে। প্রায় ১০০০০ শব্দ … More আহো-কোরাসিক(Aho-Corasick) অ্যালগোরিদম

এক্সটেন্ডেড ইউক্লিডীয়ান অ্যালগোরিদম

এই টিউটোরিয়ালটি আসলে ‘একের ভেতর দুই’ টিউটোরিয়াল। কারণ, এক্সটেন্ডেড ইউক্লিডীয়ান অ্যালগোরিদম জানতে হলে ইউক্লিডীয়ান অ্যালগোরিদম কিভাবে কাজ করে সেটাও জানতে হবে। আর আমরা সবাই নিশ্চয়ই জানি, ইউক্লিডীয়ান অ্যালগোরিদম আমরা GCD (Greatest Common Divisor) বের করার কাজে ব্যবহার করি! বেশি কথা না বাড়িয়ে উদাহরণে চলে যাই! খাতা কলম নিয়ে আমার সাথেই লিখতে বসে যাও, তাহলে পুরো … More এক্সটেন্ডেড ইউক্লিডীয়ান অ্যালগোরিদম

KMP অ্যালগোরিদম

আমার এক কিপটে বন্ধু একবার আমার সাথে বাজি ধরল, বলল, তোরা তো সবাই বলিস, আমি কোনদিন খাওয়াই না। আচ্ছা, তুই যদি ‘Lord of the Rings’ বইয়ে কতবার ‘and’ শব্দটা আছে, সেটা আমাকে বলতে পারিস, তাহলে তোকে আমি একদিন রেডিসনে বুফে খাওয়াব!    আমি তো বুফে খাওয়ার লোভে একেবারে আদাজল খেয়ে লেগে পড়লাম!   কিন্তু কিছুক্ষণ … More KMP অ্যালগোরিদম

বিটের মজা, মজার বিট

আমরা যে কম্পিউটার প্রোগ্রামিং করি, হাজার হাজার লাইনের কোড লিখে জটিল, অস্থির সব এপস, সফটওয়্যার, গেমস বানাই 😀 ; গুগল, Bing কিংবা আমাদের দেশের পিপীলিকা অথবা চড়কির মত সার্চ ইঞ্জিন বানাই 😉 সবকিছুর মূলে যে অসাধারণ ক্ষমতাধর জিনিসটি লুকিয়ে আছে তা হল বিট : ০ আর ১. আমরা যে সংখ্যা(int, double, float, long long) এবং … More বিটের মজা, মজার বিট

প্রিম’স অ্যালগোরিদম : মিনিমাম স্প্যানিং ট্রি

ধরো, তোমাকে কোন ব্রডব্যান্ড প্রোভাইডার কোম্পানি একটি দায়িত্ব দিল, কোন একটি এলাকায় তাদের সব কাস্টমারের বাড়িতে সবচেয়ে কম খরচে ব্রডব্যান্ড লাইন বসাতে হবে। কোম্পানির সেন্ট্রাল অফিস থেকে প্রতিটি বাড়ি এবং একটি বাড়ি থেকে অন্য একটি বাড়ির দূরত্ব আলাদা। তার মানে তোমাকে সবচেয়ে কম তার খরচ করে, অর্থাৎ সবচেয়ে কম দূরত্ব অতিক্রম করে সবগুলো বাড়িতে লাইন … More প্রিম’স অ্যালগোরিদম : মিনিমাম স্প্যানিং ট্রি

০-১ ন্যাপস্যাকঃ বটম আপ ও স্পেস অপটিমাইজেশন টেকনিক

এই টিউটোরিয়ালে আমরা ০-১ ন্যাপস্যাক এর বটম আপ এপ্রোচ নিয়ে কথা বলব! এর আগের পর্বে আমরা প্রব্লেমটি সম্পর্কে বিস্তারিত আলোচনা করেছি এবং প্রব্লেমটি সলভের টপ ডাউন এপ্রোচ সম্পর্কে জেনেছি। এই টিউটোরিয়ালটি পড়ার আগে তাই এই পর্বটিতে একবার ঢুঁ মেরে আসো।   টপ ডাউন এপ্রোচে আমরা কি করেছি মনে আছে?? আমরা রিকার্সিভলি নির্দিষ্ট ব্যাগ সাইজের জন্যে … More ০-১ ন্যাপস্যাকঃ বটম আপ ও স্পেস অপটিমাইজেশন টেকনিক

প্রাইম জেনারেশন সিভ ও প্রাইম ফ্যাক্টরাইজেশন

প্রাইম নাম্বার – নাম্বার থিওরীর রহস্যময় জগতে এক শৈল্পিক সৌন্দর্যের প্রতীক! প্রাইম নাম্বারের সৌন্দর্যের মোহে হাজার হাজার বছর ধরে গণিতবিদরা এ বিষয়ে গবেষণা করেছেন, নিত্যনতুন প্রাইম আবিষ্কারে উন্মুখ হয়েছেন। আর এখন যখন ইন্টারনেটের যুগ, ক্রিপ্টোগ্রাফির যুগ, তখন প্রাইম নাম্বার ব্যতীত কিছু ভাবাই যায় না। প্রাইম নাম্বারের এই অসীম সৌন্দর্যের সাগরে আজকে আমরা একটু পা ভেজাব … More প্রাইম জেনারেশন সিভ ও প্রাইম ফ্যাক্টরাইজেশন

০-১ ন্যাপস্যাকঃ টপ ডাউন

ধরো, তুমি একদিন লটারিতে ফার্স্ট প্রাইজ জিতেছো! তো আগেই বলা ছিল, লটারীতে ফার্স্ট প্রাইজ জিতলে ৫টা আকর্ষণীয় গিফট দেয়া হবে – এর মধ্যে আছে আইফোন, ম্যাকবুক, প্লে স্টেশন, ডিএসএলআর ক্যামেরা আর নগদ ১ লক্ষ টাকা। উফফ, ভাবতেই ফিলিং বড়লোক! 😀 নাচতে নাচতে জিনিসগুলো আনতে গিয়ে দেখলা, সাথে ছোট্ট করে লেখা ছিল ‘শর্ত প্রযোজ্য’ যেটা তুমি … More ০-১ ন্যাপস্যাকঃ টপ ডাউন

জাভার বিগইন্টিজার(BigInteger)ক্লাস – এডভান্সড

বিগইন্টিজারের কাজ শুধুমাত্র যোগ, বিয়োগ, গুণ, ভাগেই সীমাবদ্ধ নয়। এই ক্লাসের আরও অনেক মজার মজার মেথড আছে, যা দিয়ে বিশাল বিশাল সংখ্যার অনেক গাণিতিক সমস্যা খুব সহজেই সমাধান করা যায়। বিগইন্টিজার ক্লাসের বেসিক না জানা থাকলে এই লিঙ্কে একটা ঢুঁ মেরে আসতে হবে!   জাভার বিগইন্টিজার(BigInteger)ক্লাস – বেসিক   কিছু গুরুত্বপূর্ণ মেথডঃ   .compareTo(): নাম … More জাভার বিগইন্টিজার(BigInteger)ক্লাস – এডভান্সড