ลักษณะ
เขียนฟังก์ชั่นf(m, G)ที่ยอมรับเป็นข้อโต้แย้งของการทำแผนที่mและชุด / รายการที่แตกต่างกัน Gintegers
mควร map คู่ของจำนวนเต็มในจำนวนเต็มใหม่G G( G, m) รับประกันว่าจะสร้างกลุ่ม Abelianแน่นอนแต่องค์ประกอบใด ๆ ของGอาจเป็นตัวตน
มีทฤษฎีบทสำคัญที่บอกว่า:
[แต่ละกลุ่ม Abelian จำกัด ] isomorphic กับผลิตภัณฑ์โดยตรงของกลุ่มวงจรของการสั่งซื้อพลังงานที่สำคัญ
fจะต้องส่งคืนรายการมหาอำนาจ[p1, ... pn]ตามลำดับจากน้อยไปมากเช่นนั้น
ตัวอย่าง
f((a, b) → (a+b) mod 4, [0, 1, 2, 3])ควรกลับ[4]เป็นพารามิเตอร์ที่อธิบายกลุ่มZ 4f((a, b) → a xor b, [0, 1, 2, 3])ควรกลับ[2, 2]เป็นพารามิเตอร์ที่อธิบายกลุ่ม isomorphic ไปZ 2 × Z 2f((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]เนื่องจากกลุ่มนี้ isomorphic ถึงZ 3 × Z 3 × Z 9
กฎระเบียบ
mอย่างใดอย่างหนึ่งอาจจะเป็นฟังก์ชั่น (หรือตัวชี้ฟังก์ชั่นการทำงานบางส่วน)Int × Int → Intหรือคู่ทำแผนที่พจนานุกรมในองค์ประกอบใหม่G × GGff(G, m)อาจใช้พารามิเตอร์คู่แข่งตรงข้ามเช่นคุณอาจใช้การใช้งานของคุณควรทำงานในทางทฤษฎีสำหรับอินพุตขนาดใหญ่โดยพลการ แต่ไม่จำเป็นต้องมีประสิทธิภาพ
ไม่มีข้อ จำกัด ในการใช้บิวด์อินทุกชนิด
ใช้กฎมาตรฐานของกอล์ฟ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
ลีดเดอร์บอร์ด
เพื่อให้คะแนนของคุณปรากฏบนกระดานควรอยู่ในรูปแบบนี้:
# Language, Bytes
for a in G: for b in G: d[(a, b)] = m(a, b))
AABCการรักษาพวกเขาเป็นสามเท่ากับ(A, B, C)modulo นอกจากนี้แบบ(9, 3, 3)สองทาง
mได้รับอนุญาตให้เป็นพจนานุกรมคุณสามารถให้กรณีทดสอบเป็นพจนานุกรมได้หรือไม่