প্রোগ্রামিং

ডেটা স্ট্রাকচার: XOR লিংকড লিস্ট

XOR বাইনারি অপারেশনটা দিয়ে বেশ মজার মজার সব কাজ করা যায় যেগুলো প্রথম দেখায় ম্যাজিকের মত মনে হয়, কিন্তু একটু ভিতরের দিকে তাকালেই বোঝা যায় কি হচ্ছে। যেমন ধরা যাক গেম থিওরির কথা, তোমরা যারা নিম গেমের সাথে পরিচিত তারা জান যে কিভাবে শুধু XOR অপারেশন দিয়ে বের করে ফেলা যায় খেলায় কে জিতবে বা হারবে। প্রোগ্রামিং কনটেস্টে XOR রিলেটেড প্রবলেম খুবই কমন, আমি নিজেই বেশ কিছু কনটেস্টে এধরণের প্রবলেম সেট করেছি। আজকে দেখাবো কিভাবে XOR  ব্যবহার করে লিংকড লিস্টের মেমরি কমিয়ে ফেলা যায়। বাস্তবে তুমি কখনোই হয়তো এরকম লিংকড লিস্ট লিখবে না, কিন্তু এই লেখাটা পড়ার পর XOR  এর প্রোপার্টিগুলোর ব্যবহার নিয়ে তোমার ধা...
Read More

প্রোগ্রামিং কনটেস্ট এবং অনলাইন জাজে হাতেখড়ি

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

গ্রাফ থিওরিতে হাতেখড়ি ৮: ডেপথ ফার্স্ট সার্চ এবং আবারো টপোলোজিকাল সর্ট

আগের পর্বগুলো পড়ে থাকলে হয়তো ডেপথ ফার্স্ট সার্চ বা ডিএফএস এতদিনে নিজেই শিখে ফেলেছো। তারপরেও এই টিউটোরিয়ালটি পড়া দরকার কিছু কনসেপ্ট জানতে। বিএফএস এ আমরা গ্রাফটাকে লেভেল বাই লেভেল সার্চ করেছিলাম,নিচের ছবির মতো করে: এবার আমরা কোনো নোড পেলে সাথে সাথে সে নোড থেকে আরো গভীরে চলে যেতে থাকবো,যখন আর গভীরে যাওয়া যাবেনা তখন আবার আগের নোডে ফিরে এসে অন্য আরেক দিকে যেত চেষ্টা করবো,এক নোড কখনো ২বার ভিজিট করবোনা। আমরা নোডের ৩টি রং(কালার) দিবো: সাদা নোড= যে নোড এখনো খুজে পাইনি/ভিজিট করিনি। গ্রে বা ধুসর নোড= যে নোড ভিজিট করেছি কিন্তু নোডটি থেকে যেসব চাইল্ড নোডে যাওয়া যায় ...
Read More

ওয়ার্ডপ্রেসে ইংরেজি সংখ্যা ও মাসকে বাংলায় রুপান্তর

গুগল করতে গিয়ে তারেক ভাইয়ের ব্লগে নিচের চমৎকার ফাংশনটি পাই: [crayon-660664baa391f962395367/] এই ফাংশনে ইংরেজি মাস কে বাংলা করার(january থেকে জানুয়ারি,ফাল্গুন-চৈত্র নয়) অপশন ছিলনা। তাই আমি আরো ৩টি লাইন যোগ করে নিয়েছি: [crayon-660664baa3927988525314/] এরপর ফিল্টার যোগ করতে হবে। পুরো কোডটি হবে এরকম: [crayon-660664baa392a634780421/] কোডটি function.php ফোল্ডারে যোগ করে দিন,সংখ্যা,মাস বাংলায় রুপান্তর হয় যাবে। রেফারেন্স: Wordpress Filter str_replace() function
Read More

গ্রাফ থিওরিতে হাতেখড়ি – ৩ (ভ্যারিয়েবলে গ্রাফ স্টোর-২)

আগের পর্ব সবগুলো পর্ব এই পর্বে গ্রাফ স্টোর করার ২য় পদ্ধতি অ্যাডজেসেন্সি লিস্ট নিয়ে লিখব। এ পদ্ধতিতে গ্রাফ স্টোর করে কম মেমরি ব্যবহার করে আরো efficient কোড লেখা যায়। এ ক্ষেত্রে আমরা ডায়নামিক্যালি মেমরি অ্যালোকেট করব,ভয়ের কিছু নেই সি++ এর standard template library(STL) ব্যবহার করে খুব সহজে কাজটা করা যায়। আগের লেখার শেষের দিকে STL এর উপর কয়েকটি টিউটোরিয়ালের লিংক দিয়েছি, আশা করছি ভেক্টর কিভাবে কাজ করে এখন তুমি জানো। অ্যাডজেসেন্সি লিস্ট শুনতে যতটা ভয়ংকর শুনায়,ব্যাপারটি আসলে তেমনই সহজ। আমরা আবার আগের পোস্টের ছবিটিতে ফিরে যাই: এবার বাজার করার লিস্টের মত একটি লিস্ট বানাই: ...
Read More