এই প্রশ্নটি এই উত্তর দ্বারা অনুপ্রাণিত হয় । কাকতালীয়ভাবে, আমি যখন ছোট ছিলাম তখন আমি ইথিওপীয় বহুগুণ ব্যবহার করতাম, তবে এই পদ্ধতির নাম কিছুদিন আগে জানা ছিল না।
ইথিওপীয় গুণগুলি কেবল সংযোজন, দ্বিগুণ এবং অর্ধনমিতকরণ ব্যবহার করে পূর্ণসংখ্যাকার পূর্ণসংখ্যার একটি পদ্ধতি।
পদ্ধতি:
- গুণতে দুটি সংখ্যা নিন এবং দুটি কলামের শীর্ষে এগুলি লিখুন।
- বাম-হাতের কলামে বারবার শেষ সংখ্যাটি অর্ধেক করুন, কোনও অবশিষ্টাংশকে ছাড়িয়ে দিন এবং একই কলামে শেষের নীচে ফলাফলটি লিখুন, যতক্ষণ না আপনি 1 এর মান লিখেন।
- ডান হাতের কলামে বারবার শেষ সংখ্যাটি দ্বিগুণ করুন এবং ফলাফলটি নীচে লিখুন। আপনি যখন বাম হাতের কলামটি 1 দেখায় ঠিক একই সারিতে ফলাফল যুক্ত করবেন তখন থামুন।
- উত্পাদিত টেবিলটি পরীক্ষা করুন এবং বাম কলামের মান সমান এমন কোনও সারি বাতিল করুন। ডান-হাতের কলামের মানগুলি যোগ করুন যা মূল দুটি সংখ্যাকে একসাথে গুণ করার ফলাফল তৈরি করতে পারে।
উদাহরণস্বরূপ: 17 x 34
17 34
প্রথম কলামটি অর্ধেক করা:
17 34
8
4
2
1
দ্বিতীয় কলাম দ্বিগুণ করা:
17 34
8 68
4 136
2 272
1 544
স্ট্রাইক আউট সারি যার প্রথম ঘরটি সমান, আমরা স্কোর বন্ধনীতে ডানদিকে এই সংখ্যাগুলি আবদ্ধ করে এটি করব:
17 34
8 [68]
4 [136]
2 [272]
1 544
ডান-হাতের কলামে অবশিষ্ট সংখ্যাগুলি যোগ করুন:
17 34
8 [68]
4 [136]
2 [272]
1 544
=====
578
সুতরাং 17 ইথিয়পিয়ান পদ্ধতি দ্বারা 34 দ্বারা গুন 578 হয়।
কাজটি:
গল্ফ কোড যা 1 এবং 1000 এর মধ্যে দুটি সংখ্যা নেয় এবং নীচের পণ্যটি প্রদর্শন করে একই লেআউট এবং অ্যালগরিদম সম্পাদন করে।
ইনপুট পদ্ধতি: তবে আপনি চয়ন করেন ...
উদাহরণ ইনপুট:
19 427
ফলাফল আউটপুট:
19 427
9 854
4 [1708]
2 [3416]
1 6832
======
8113
অঙ্কগুলির প্রান্তিককরণটি নোট করুন। এটি বিন্যাসে সবচেয়ে গুরুত্বপূর্ণ। এছাড়াও লক্ষ করুন যে সমান চিহ্ন দ্বারা বিভক্ত ডাবল লাইনটি সামগ্রিক উত্তরের চেয়ে দুটি অক্ষর দীর্ঘ হতে হবে এবং অবশ্যই কেন্দ্রিক ন্যায়সঙ্গত হতে হবে।
পরীক্ষামূলক
আপনি কিভাবে এটি পরীক্ষা করবেন? দুটি সংখ্যা ব্যবহার করে আপনার প্রোগ্রামের একটি রান সরবরাহ করে। এই নম্বরগুলি আপনার ব্যবহারকারীর আইডি নম্বর থেকে বের করা যেতে পারে (শীর্ষ উইন্ডোতে আপনার অবতারের উপরে আপনার কার্সারটি ঘুরিয়ে নিয়ে এটি পাওয়া যেতে পারে)। আপনার নাম্বারটি নিন এবং শেষ তিনটি অঙ্ক নিন, এটি বি নম্বর হবে, সামনে যা থাকবে তা নিয়ে যান, এটি নম্বর এ হবে Then তারপরে A বার বি পরীক্ষা করুন
পরীক্ষার উদাহরণ:
আমার ব্যবহারকারীর আইডি নম্বর 8555, সুতরাং আমার সংখ্যাগুলি 8 এবং 555। তাই আমার আউটপুটটি এটির মতো দেখা উচিত:
8 [555]
4 [1110]
2 [2220]
1 4440
======
4440
সীমাবদ্ধতা:
অ্যালগরিদমে উল্লিখিত অনুসারে কোনও দ্বিগুণ অপারেটরকে "দ্বিগুণ" ব্যবহারের জন্য সংরক্ষণের অনুমতি নেই। অন্য কথায়, আপনি যদি * এর মতো কোনও অপারেটর ব্যবহার করেন তবে এটি কেবলমাত্র 2 দ্বারা গুণনের জন্য ব্যবহার করা যেতে পারে।
যেগুলি প্রবেশ করে না সেগুলিকে বিবেচনা করা হবে না এবং ব্যবহারকারীকে তাদের জিনিসপত্রের পূর্ণ কার্ডবোর্ড বাক্সের সাহায্যে প্রাঙ্গনে বাইরে নিয়ে যাওয়া হবে। প্রতিটি প্রবেশের কোড থাকবে, এবং আপনার ব্যবহারকারীর আইডি নম্বরের উপর ভিত্তি করে পরীক্ষা।
এটি কোড গল্ফ। সবচেয়ে কম সংখ্যক বাইট তাদের সমবয়সীদের পুরষ্কার, গৌরব এবং প্রশংসা পাবেন ... (এবং সম্ভবত কোনও লাম্বোরগিনি ... আমি বলেছিলাম "সম্ভবত"!)
*
বাx
) ব্যবহার সীমাবদ্ধ করতে পারেন তবে গুণটি ব্যবহৃত হয়েছে কি না তা সনাক্ত করা অসম্ভব। সেই অংশটি বাদে চ্যালেঞ্জটি আকর্ষণীয়।