বিবরণ
এমন একটি ফাংশন লিখুন f(m, G)
যা তার আর্গুমেন্টকে ম্যাপিং হিসাবে গ্রহণ করে m
এবং স্বতন্ত্র, অ-নেতিবাচক পূর্ণসংখ্যার একটি সেট / তালিকা G
।
m
G
নতুন পূর্ণসংখ্যার সাথে জোড় সংখ্যক মানচিত্র তৈরি করা উচিত 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
অভিধান হওয়ার অনুমতি দেওয়া হয়, তবে আপনি কি পরীক্ষাগুলির পাশাপাশি অভিধানগুলি প্রদান করতে পারেন?