Posts

Featured Post

ফ্রাকশনাল ন‍্যাপস‍্যাক ( ব্রুটফোর্স মেথড )

মনে করুন আপনার কাছে বেশ কয়েকদিন ধরে কোনো টাকা পয়সা নেই (মাসের শেষের দিক ) ! এদিকে আপনার বন্ধুর আবার টাকা পয়সার অভাব নেই (বন্ধুর বাপের অনেক  টাকা :P ) । আপনি আপনার বন্ধুর কাছে টাকা ধার চাইলেন আর সে কিনা ঘাড় বাঁকা করে চলে গেলো । আপনারতো রাগ উঠে গেলো .. !! রেগেমেগে আপনি সিদ্ধান্ত নিলেন কোনো এক শপিংমলে চুরি করবেন। যেমনি বলা অমনি কাজ , আপনি করলেন কি রাতের বেলা একটা ব্যাগ নিয়ে  শপিংমলে ঢুকে গেলেন । ( সি সি ক্যামেরা নাই :P )  । গিয়ে দেখলেন আপনার আগেই অন্য একটা চোর সম্পূর্ণ কেনা যায় এমন ((টুথপেস্ট,ব্রাশ,শেম্পু,সাবান,নুডলস ইত্যাদি ইত্যাদি :D :D ) সব জিনিস   চুরি  করে নিয়ে গেছে । আপনার ভাগ্যে আছে  (ডাল,ময়দা,আলু,পটোল ইত্যাদি ইত্যাদি ) | মনে করুন : ৫ কেজি ডাল ৬০০ টাকা  ৭  কেজি ময়দা ৭০০ টাকা ৬ কেজি আলু ২৪০ টাকা ৯ কেজি পটল ২৭০ টাকা কিন্তু সমস্যাটা তৈরী হলো এখন। আপনার ব্যাগের    লিমিট ১৫ কেজি। সুতরাং আপনি চাচ্ছেন  এমন  কিছু জিনিস নিতে যাতে আপনার বাগটিও খালি না ...

লিংকড লিস্ট

Image
পূর্বের টিউটোরিয়ালে  আমরা অ্যারে সম্পর্কে জেনেছি । অ্যারেতে আমরা অ্যারের অনেক সীমাবদ্ধতা দেখেছি। যেমন: অ্যারের সাইজ আগে থেকে বলে দেয়া থাকে যার দরুন পরবর্তীতে এর মেমোরি বাড়ানো বা কমানো যায়না ।অ্যারের সীমাবদ্ধতা দূর করার জন্য আমরা লিংকড লিস্ট ব্যবহার করি। আমরা লিংকড লিস্টে কোনো ভেলু রাখার জন্য নোড ব্যবহার করবো। নোডের ভিতরে আমরা দুইটি কক্ষ বিবেচনা করবো। যার একটি কক্ষে রাখবো কাঙ্খিত ভ্যালু এবং অন্য কক্ষে রাখবো পরবর্তী ভ্যালু কোথায় আছে তার ঠিকানা ।বিষয়টা আরো পরিষ্কার হওয়ার জন্য নিচের ছবিটি লক্ষ্য করো । এখানে প্রত্যেকটি নোডের প্রথমভাগে ভ্যালু রাখা হয়েছে এবং পরবর্তীভাগে Next রাখা হয়েছে যা পরবর্তী নোডের দিকে পয়েন্ট করে থাকবে । এভাবে সর্বশেষ নোডটি পয়েন্ট করে আছে NULL এডড্রেসকে । এর মানে হলো এর পর আর কোনো ভ্যালু নাই ।অর্থাৎ আমরা যদি কোনোভাবে প্রথম ভ্যালুয়ের এড্রেস জানতে পারি তবে Next পয়েন্টার এর মাদ্ধমে পুরো লিঙ্কলিস্ট ট্রাভার্স করতে পারবো । কেননা প্রত্যেকটা নোডের শেষ অংশে পরবর্তী নোডের এড্রেস সংগ্রহ করা থাকবে। এখানে প্রত্যেকবার নোড তৈরির পর যেহেতু আপডেট করতে হচ্ছে তা...

অ্যারে ডাটাস্ট্রাকচার

তোমাকে যদি তোমার ক্লাসের সকলের ডাটাস্ট্রাকচার বিষয়ে প্রাপ্ত মার্ক সংরক্ষণ রাখতে বলা হয় তাহলে তুমি কি করবে? তুমি যদি প্রোগ্রামিং এ একদম নতুন হয়ে থাকো এবং অ্যারে সম্পর্কে না জানো তবে তবে তোমার ভ্যারিয়েবল ডিক্লিয়ারেশন হবে অনেকটা এরকম। double data1,data2,data3,data4.........datan; অর্থাৎ তুমি যেটা করবে তোমার ব্যাচের স্টুডেন্টের সংখ্যা অনুযায়ী ভ্যারিয়েবল ডিক্লিয়ার করবে । কিন্তু এই কাজটি তুমি অতি সহজে অ্যারে ডাটাস্ট্রাকচার ব্যবহারের মাধ্যমে করতে পারো । অ্যারে ডিক্লিয়ারেশন : int ara[5]; এভাবে আমরা একটি অ্যারে ডিক্লেয়ার করতে পারি, যেখানে অ্যারে নাম হচ্ছে ara, যেটিতে কেবল ইন্টিজার টাইপের ডাটা থাকবে আর এই অ্যারেতে মোট পাঁচটি সংখ্যা রাখা যাবে। প্রথমটি হচ্ছে ara[0] (কারণ অ্যারে ইনডেক্স ০ (শূন্য) থেকে শুরু হয় ), দ্বিতীয়টি ara[1], তৃতীয়টি ara[2], এভাবে পঞ্চম সংখ্যাটি হচ্ছে ara[4] (কারণ অ্যারে ইনডেক্স n-1 এ শেষ হয়, এখানে n=5) । অর্থাৎ, ara[i] হচ্ছে i+1তম উপাদান| অ্যারেতে আমাদের আগে থেকে বলে দিতে হয় কয়টি ডাটা আমরা রাখবো । যেমন: ৪৫ জন স্টুডেন্টের ডাটাস্ট্রাকচার বিষয়ে ...

সমস্যা ০১

সমস্যা : ভাজ্য ও ভাজক দেয়া থাকবে। যোগ , ভাগ , গুন্ , মডুলাস চিহ্ন ব্যবহার না করে ভাগফল নির্ণয় করতে হবে ! সমাধান : সমস্যাটিতে যা বলা হয়েছে তা হলো , আপনাকে একটি সংখ্যা দিয়ে আরেকটি সংখ্যা ভাগ করতে হবে কিন্তু শর্ত হলো আপনি যোগ ,গুন্ , ভাগ ও মডুলাস চিহ্ন ব্যবহার করতে পারবেন না । যোগ ,গুন্ , ভাগ ও মডুলাস ছাড়া আপনার হাতে শুধুমাত্র বিয়োগ অপারেশন টি বাকি আছে । তার মানে আপনাকে বিয়োগ করে সমাধান করতে হবে। আসুন সমাধানের দিকে আসা যাক আমরা যখন কোনো কিছু গুন্ করি তা আসলে একপ্রকার যোগ। যেমন: ৩*৪=১২ এটা কিন্তু যোগ করেও করা যায়। এখানে ৩ কে ৪ বার যোগ বা ৪ কে ৩ বার যোগ করলেই ১২ পাবো। অর্থাৎ ৩+৩+৩+৩=১২ অথবা ৪+৪+৪=১২ । তার মানে যা বোঝা গেলো তা হলো গুন্ না করেও আসলে আমরা গুন্ করতে পারি। ঠিক এক ই ভাবে ভাগ না করেও আমরা ভাগ করতে পারি । যেমন: ১২/৩=৪ এর মানে হলো ১২/৩=৪ এর মানে হলো ১২ থেকে ৩ কে কতবার বিয়োগ করা যায় । অর্থাৎ ১২ থেকে ৩ যতবার বিয়োগ করা যায় আমাদের ভাগফল তত হবে ! ১২-৩=৯ [১ বার] ৯-৩=৬ [২ বার ] ৬-৩=৩ [৩ বার] ৩-৩=০ [৪ বার] ৪ বারের পর আর বিয়োগ করা যাচ্ছেনা | এখন প্রশ্ন হলো বিয়োগ তো ...

প্রোগ্রামিং এলগোরিদম খসড়া

This page is not updated right now...! Thank yoy for visit my blog