বিবরণ
এমন একটি ফাংশন লিখুন f(m, G)যা তার আর্গুমেন্টকে ম্যাপিং হিসাবে গ্রহণ করে mএবং স্বতন্ত্র, অ-নেতিবাচক পূর্ণসংখ্যার একটি সেট / তালিকা G।
mGনতুন পূর্ণসংখ্যার সাথে জোড় সংখ্যক মানচিত্র তৈরি করা উচিত G। ( G, m) একটি সসীম অ্যাবেলিয়ান গ্রুপ গঠনের গ্যারান্টিযুক্ত তবে এর কোনও উপাদানই Gপরিচয় হতে পারে।
একটি গুরুত্বপূর্ণ উপপাদ্য রয়েছে যা বলে:
fঅবশ্যই [p1, ... pn]এইভাবে আরোহণের ক্রমতে প্রধান শক্তিগুলির একটি তালিকা ফেরত দিতে হবে
উদাহরণ
f((a, b) → (a+b) mod 4, [0, 1, 2, 3])[4]প্যারামিটারগুলি গ্রুপ জেড 4 এর বর্ণনা হিসাবে ফিরে আসবে ।f((a, b) → a xor b, [0, 1, 2, 3])ফেরত পাঠাবেন[2, 2], যেমন পরামিতি একটি গোষ্ঠীর isomorphic বর্ণনা জেড 2 × জেড 2 ।f((a, b) → a, [9])ফিরে আসা উচিত[], প্যারামিটারগুলি তুচ্ছ গ্রুপের বর্ণনা হিসাবে; অর্থাত্, শূন্য চক্রীয় গোষ্ঠীর পণ্য।mনিম্নলিখিত হিসাবে সংজ্ঞা দিন :(a, b) → (a mod 3 + b mod 3) mod 3 + ((floor(a / 3) + floor(b / 3)) mod 3) * 3 + ((floor(a / 9) + floor(b / 9)) mod 9) * 9তারপরে
f(m, [0, 1, ..., 80])ফিরে আসা উচিত[3, 3, 9], কারণ এই গ্রুপটি জেড 3 × জেড 3 × জেড 9 এর আইসোমোরফিক
বিধি
mহয় কোনও ফাংশন (বা কোনও ফাংশনের ফাংশন পয়েন্টার) হতে পারেInt × Int → Int, বা অভিধানেরG × Gনতুন উপাদানের সাথে ম্যাপিংয়ের অভিধান হতে পারেG।fবিপরীত ক্রমে এর পরামিতি নিতে পারে, অর্থাত আপনি এটি প্রয়োগ করতেও পারেনf(G, m)।আপনার বাস্তবায়ন তাত্ত্বিকভাবে ইচ্ছামত বৃহত ইনপুট জন্য কাজ করা উচিত , কিন্তু আসলে দক্ষ হতে হবে না।
কোনও ধরণের বিল্ট-ইন ব্যবহার করার ক্ষেত্রে কোনও সীমাবদ্ধতা নেই।
স্ট্যান্ডার্ড কোড-গল্ফ বিধি প্রযোজ্য। বাইটস মধ্যে সংক্ষিপ্ত কোড।
লিডারবোর্ড
আপনার স্কোর বোর্ডে উপস্থিত হওয়ার জন্য, এটি এই ফর্ম্যাটে হওয়া উচিত:
# Language, Bytes
for a in G: for b in G: d[(a, b)] = m(a, b)) করা সহজ।
AABC, triples তাদের চিকিত্সা (A, B, C), pairwise উপরন্তু মডিউল সঙ্গে (9, 3, 3)।
mঅভিধান হওয়ার অনুমতি দেওয়া হয়, তবে আপনি কি পরীক্ষাগুলির পাশাপাশি অভিধানগুলি প্রদান করতে পারেন?