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

এলিউদের ডিম

সহজ

ভূমিকা

আপনার বন্ধু 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

নির্দেশনা

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

সীমাবদ্ধতা

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

পরিশিষ্ট

Note

উপরের নির্দেশাবলি সব ভাষার ট্র্যাকে সামঞ্জস্য নিশ্চিত করতে একটি শেয়ার্ড রিপোজিটরির সাথে সিঙ্ক্রোনাইজ করা হয়েছে। এই পরিশিষ্টটি প্রয়োজন অনুসারে অতিরিক্ত স্পষ্টীকরণ দেয় বা নির্দেশাবলিতে পরিবর্তন আনে, যাতে তা Clojure ট্র্যাকের লক্ষ্যের সাথে আরও ভালোভাবে মিলে যায়।

আপনি যে ফাংশনটি ইমপ্লিমেন্ট করছেন, তার মতো একই কাজ করে এমন কোনো বিদ্যমান বিল্ট-ইন ফাংশন ব্যবহার না করাই জরুরি, কারণ তা করলে অনুশীলনীর কাঙ্ক্ষিত শেখার মূল্য কমে যাবে। Clojure-এ একটি সংখ্যায় কতগুলো বিট আছে তা গোনার কোনো বিল্ট-ইন ফাংশন নেই, তাই আপনার ইমপ্লিমেন্টেশনে আপনি Clojure-এর যেকোনো ফাংশন ব্যবহার করতে পারেন। তবে Java-তে এই উদ্দেশ্যে একটি ফাংশন আছে: bitCount.

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Clojure Exercism

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

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