পটভূমি
আপনি যদি অনেকগুলি কোড গল্ফিং করেন তবে আপনি সম্ভবত বিটওয়াইস এক্সওআর অপারেশন সম্পর্কে সচেতন । দুটি পূর্ণসংখ্যার দেওয়া, এটি 1
বিটের যেখানে দুটি ইনপুট পৃথক হয় সেখানে আরও একটি পূর্ণসংখ্যা দেয় । সুতরাং, উদাহরণস্বরূপ 1010 XOR 0011 = 1001
,।
এটি গেম তত্ত্বের ক্ষেত্রে খুব দরকারী বলে প্রমাণিত হয়েছে যেখানে এটি "নিম সমষ্টি" হিসাবে বেশি পরিচিত। আপনার যদি দুটি গেমের যোগফল থাকে (যা আপনি একবারে একটি গেমের মধ্যে পদক্ষেপ নিচ্ছেন ), অবস্থানের মান হ'ল প্রতিটি পৃথক গেমের পজিশনের মানগুলির নিম যোগফল।
তবে আমরা এটিকে আরও একধাপ এগিয়ে নিয়ে যেতে পারি। নিম সংযোজন এবং নিম গুণনের একটি যথাযথ সংজ্ঞা দিয়ে আমরা অণুগঠিত পূর্ণসংখ্যার ক্ষেত্র তৈরি করতে পারি। তাই চ্যালেঞ্জ হ'ল গল্ফ নিম গুণকে।
সংজ্ঞা
নিম গুণটি নীচের নিয়মগুলি মান্য করে:
কোনও ফার্মেট 2-পাওয়ার এন = (2 ^ (2 ^ কে)) এর কোনও ছোট সংখ্যার নিম পণ্যটি হ'ল সাধারণ পণ্য।
নিজের সাথে একটি ফার্ম্যাট ২-পাওয়ার এন এর নিম পণ্যটি 3n / 2।
নিম গুণকে নিম সংযোজনের উপর বিতরণ করে।
নিম গুণ হ'ল কমিটিকেটিভ এবং এসোসিয়েটিভ (যেমন নিম সংযোজন)।
গুণক পরিচয় 1 (এবং সংযোজনীয় পরিচয় 0)।
যেকোন নন-ইগেটভেটিভ পূর্ণসংখ্যা দুটির পৃথক শক্তির নিম যোগফল হিসাবে রচনা করা যেতে পারে, এবং দুটির যে কোনও শক্তি পৃথক ফারম্যাট সংখ্যার গুণফল হিসাবে রচনা করা যেতে পারে, সুতরাং এটি সমস্ত নন-নেগেটিভ পূর্ণসংখ্যার জন্য নিম গুণকে সংজ্ঞায়িত করতে যথেষ্ট।
উদাহরণ
এটি ছিল বেশ বিমূর্ত, সুতরাং আসুন একটি উদাহরণ দিয়ে কাজ করা যাক। আমি +
নিম সংযোজন (এক্সওআর) বোঝাতে এবং *
নিম গুণনের জন্য ব্যবহার করব ।
6 * 13
= (4 + 2) * (8 + 4 + 1)
= (4 + 2) * ((4 * 2) + 4 + 1)
= (4 * 4 * 2) + (4 * 2 * 2) + (4 * 4) + (4 * 2) + (4 * 1) + (2 * 1)
= (6 * 2) + (4 * 3) + 6 + 8 + 4 + 2
= ((4 + 2) * 2) + 12 + 6 + 8 + 4 + 2
= (4 * 2) + (2 * 2) + 12 + 6 + 8 + 4 + 2
= 8 + 3 + 12 + 6 + 8 + 4 + 2
= 15
অতিরিক্ত পরীক্ষার কেস
4, 4 -> 6
4, 3 -> 12
4, 7 -> 10
2, 4 -> 8
2, 3 -> 1
1, 42 -> 42
চ্যালেঞ্জ
কোনও প্রোগ্রাম বা ফাংশন লিখুন যা কোনও সুবিধাজনক আকারে দুটি নন-নেগেটিভ পূর্ণসংখ্যার দেওয়া হয়, তাদের নিম পণ্যটি গণনা করে।
এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম জমাটি জয়ী।