Skip to main content

Posts

Showing posts from November, 2017

Total Number of Handshakes

Question:  At the annual meeting of Board of Directors of Acme Inc, every one starts shaking hands with everyone else in the room. Given the fact that any two persons shake hand exactly once, Can you tell the total count of handshakes? Answer: If there are n persons in the room, each person will have n-1 handshakes. There are n person in the room. So, total number of handshakes is n*(n-1). but we have counted each handshake twice. Like 1<=>2 and 2<=>1. If we divide the number by 2, we'll get the expected output. So the answer is (n*(n-1))/2. Again, if we consider this situation, first, the first person has n-1 handshakes. Then the second one has n-2. Similarly further, n-3, n-4....3, 2, 1. So the total number becomes (n-1)+(n-2)+(n-3)+....+3+2+1. if we use the formula for summation, we get the answer, that is (n*(n-1))/2.

ডাটা স্ট্রাকচার- কিউ (Queue)

Programming is all about data manipulation. Data structure is way of storing data for further manipulation. ডাটা স্ট্রাকচার আমাদেরকে বিভিন্ন ডাটা সাজিয়ে রাখার ব্যবস্থা করে দেয়। ডাটা সাজিয়ে রাখার অনেক গুলো "তরিকা" আছে। কোনকিছু আমরা কেন সাজিয়ে রাখি? যেন পরে নির্দিষ্ট একটা ডাটা সহজে খুঁজে পেতে পারি। "তরিকা" গুলোর নাম Array, Stack, Queue, Linked List, Tree, Graph. এগুলা শ খানেক ডাটা স্ট্রাকচারের মধ্যে কিছুর নাম, যেগুলো অনেক বেশি ব্যবহার হয়। এই পোস্টটা কিউ বুঝানোর জন্য। কিউ জিনিসটার সাথে আমরা সবাই পরিচিত। জীবনে আমরা সবাই কখনো না কখনো লাইনে দাঁড়ায়ছি। কিউ এর বেসিক ক্যারেক্টারিস্টিকসের সাথে মিলিয়েই প্রোগ্রামিং এ কিউ এর কনসেপ্ট। বাস্তব জীবনে একটা কিউ তে কি হয়? সবাই লাইন ধরে দাঁড়ায় কিছু একটা কারনে। যে সবার আগে দাঁড়ায় সেই সবার আগে কার্জসিদ্ধি করে। সবার পরের জন সবার পরে। স্ট্যাকের ক্ষেত্রে আমরা পড়েছিলাম Last In First Out (LIFO) or First In Last Out (FILO)। কেমন আনফেয়ার শোনায় না? সবার পরে আসবে, আবার সবার আগে চলে যাবে। অ্যাটলিস্ট আমার আনফেয়ার লেগেছিলো যখন স্ট্যাক শিখছিল

জ্যামরিন- A cross platform mobile application builder

জ্যামরিনের নাম শুনেছি প্রায় বছর খানেক আগে যখন C# শিখছিলাম তখন। বন্ধু তুহিন এটার নাম মেনশন করে প্রথম। ওই যতটুকু আইডিয়া পেয়েছিলো ততটুকুই বলেছিলো। একটা ফ্রেমওয়ার্ক, মোবাইল অ্যাপ রিলেটেড। কিন্তু ভিজুয়াল স্টুডিও দিয়ে। খুব বেশী আগ্রহ পাইনি তখন। আগ্রহটা জন্মালো এই কিছুদিন আগে। আগ্রহ নিয়েই জ্যামরিনের সম্পর্কে খোঁজ নেয়া শুরু করলাম। কিছু ধারনা পেয়েছি। এই পোস্টটা আমার সেই ক্ষুদ্র ধারনা নিয়েই। কিছু ইনট্রোঃ মাইক্রোসফট হলো সবচেয়ে বড় টেক জায়ান্টদের মধ্যে একটা। Unlike any other tech giants, Microsoft buys innovative startups and stuff. জ্যামরিনও মাইক্রোসফটের এরকম একটা সাবসিডিয়ারি। জ্যামরিনের শুরু বেশ আগে, ২০১৩ এর দিকে। মাইক্রোসফটের সাথে এর যাত্রা ২০১৬ থেকে। C# ল্যাঙ্গুয়েজটা মাইক্রোসফটের একপ্রকার নিজের ঘরের। উইন্ডোজ বেজড যেকোনও অ্যাপ্লিকেশন তৈরিতে C# এর জুড়ি নাই। অথচ অন্য প্লাটফর্মে এই ল্যাঙ্গুয়েজের অবস্থা টালমাটাল। একটা সময় মোবাইল ডিভাইসের অ্যাপ্লিকেশন গুলো তৈরি করার জন্য নির্দিষ্ট ল্যাঙ্গুয়েজই ছিলো। যেমন অ্যান্ড্রয়েডের জন্য জাভা। iOS এর জন্য সুইফট বা অবজেক্টিভ-সি। জ্যামরিনের ফাউন্ডাররা চ

ডাটা স্ট্রাকচার- স্ট্যাক (Stack)

Programming is all about data manipulation. Data structure is way of storing data for further manipulation. ডাটা স্ট্রাকচার আমাদেরকে বিভিন্ন ডাটা সাজিয়ে রাখার ব্যবস্থা করে দেয়। ডাটা সাজিয়ে রাখার অনেক গুলো "তরিকা" আছে। কোনকিছু আমরা কেন সাজিয়ে রাখি? যেন পরে নির্দিষ্ট একটা ডাটা সহজে খুঁজে পেতে পারি। "তরিকা" গুলোর নাম Array, Stack, Queue, Linked List, Tree, Graph. এগুলা শ খানেক ডাটা স্ট্রাকচারের মধ্যে কিছুর নাম, যেগুলো অনেক বেশি ব্যবহার হয়। এই পোস্টটা স্ট্যাক বুঝানোর জন্য। স্ট্যাক খুবই ইন্টেরেস্টিং একটা ডাটা স্ট্রাকচার। অনেক কারনেই এটা ব্যাবহার হয়। আগে স্ট্যাক কনসেপ্টটা নিয়ে আলোচনা করা যাক। স্ট্যাক বলতে বোঝায় একটার উপর একটা সাজায়ে রাখা। বিয়ের বাড়িতে আগে মেলামাইনের গ্লাস দেখা যেত একটার ভেতর আরেকটা ঢুকায়ে লম্বা একটা পাইল তৈরি করে একসাথে ক্যারি করা হচ্ছে। এটা একটা স্ট্যাক। প্রোগ্রামিং এর ভাষায় স্ট্যাক এক্সাক্টলি সেইম জিনিসই। তবে একটু ঘষামাজা আছে। আরেকটা উদাহরণ দেয়া যেতে পারে। বয়ামের ভেতর একটার পর আরেকটা বিস্কিট ঢুকিয়ে রাখা হয়। হ্যা, এইটা পারফেক্ট উদাহরণ হয়েছে। এই