ট্র্যাক
/
PHP
PHP
/
অনুশীলনী
/
এলিউদের ডিম
এলিউদের ডিম

এলিউদের ডিম

মধ্যম

ভূমিকা

আপনার বন্ধু Eliud তার দাদি Tigist-এর কাছ থেকে একটি খামার উত্তরাধিকারসূত্রে পেয়েছেন। তার দাদি ছিলেন একজন উদ্ভাবক এবং জিনিসপত্র অতিরিক্ত জটিলভাবে বানানোর প্রবণতা ছিল তার। মুরগির খাঁচায় একটি ডিজিটাল ডিসপ্লে আছে, যা একটি এনকোড করা সংখ্যা দেখায়, আর এই সংখ্যাটি তোলা যায় এমন সব ডিমের অবস্থান বোঝায়।

Eliud আপনাকে এমন একটি প্রোগ্রাম লিখতে বলছেন, যা খাঁচায় থাকা ডিমের প্রকৃত সংখ্যা দেখাবে।

অবস্থানের তথ্যের এনকোডিং হিসাব করা হয় এভাবে:

  1. সম্ভাব্য ডিম পাড়ার জায়গাগুলো স্ক্যান করুন এবং যেখানে ডিম আছে সেখানে 1 আর খালি জায়গায় 0 লিখে রাখুন।
  2. সংখ্যাটিকে বাইনারি থেকে দশমিকে রূপান্তর করুন।
  3. ডিসপ্লেতে ফলাফলটি দেখান।

উদাহরণ ১

একটি সারিতে সাজানো সাতটি আলাদা বাসার বাক্স, যার প্রথম, তৃতীয়, চতুর্থ ও সপ্তম বাসায় একটি করে ডিম আছে।

 _ _ _ _ _ _ _
|E| |E|E| | |E|

ফলে পাওয়া বাইনারি

1011001

 _ _ _ _ _ _ _
|1|0|1|1|0|0|1|

ডিসপ্লেতে দশমিক সংখ্যা

89

খাঁচায় প্রকৃত ডিমের সংখ্যা

4

উদাহরণ ২

একটি সারিতে সাজানো সাতটি আলাদা বাসার বাক্স, যেখানে শুধু চতুর্থ বাসায় একটি ডিম আছে।

 _ _ _ _ _ _ _
| | | |E| | | |

ফলে পাওয়া বাইনারি

0001000

 _ _ _ _ _ _ _
|0|0|0|1|0|0|0|

ডিসপ্লেতে দশমিক সংখ্যা

8

খাঁচায় প্রকৃত ডিমের সংখ্যা

1

নির্দেশনা

আপনার কাজ হলো একটি সংখ্যার বাইনারি রূপে ১ আছে এমন বিটের সংখ্যা গণনা করা।

সীমাবদ্ধতা

আপনার স্ট্যান্ডার্ড লাইব্রেরিতে থাকা ওই বিট-গণনার সুবিধাটিতে হাত দেবেন না! বরং অন্য মৌলিক টুলস ব্যবহার করে এটি নিজে সমাধান করুন।

বিটওয়াইজ অপারেটর

PHP-তে বিটওয়াইজ অপারেটর রয়েছে।

উদাহরণস্বরূপ, "বিটওয়াইজ অ্যান্ড" অপারেটর (&) ব্যবহার করে যাচাই করা যায় যে একটি সংখ্যার একটি বিট ডিফাইন করা আছে কি না:

$number = 89; // 0b01011001
$mask16 = 16; // 0b00010000
$mask32 = 32; // 0b00100000

$isMask16 = ($number & $mask16) > 0; // 0b00010000 > 0 => TRUE
$isMask32 = ($number & $mask32) > 0; // 0b00000000 > 0 => FALSE
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
PHP Exercism

এলিউদের ডিম শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, PHP ট্র্যাকের 11টি কনসেপ্ট122টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।