ลักษณะ
เขียนฟังก์ชั่นf(m, G)
ที่ยอมรับเป็นข้อโต้แย้งของการทำแผนที่m
และชุด / รายการที่แตกต่างกัน G
integers
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 × G
G
f
f(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
ได้รับอนุญาตให้เป็นพจนานุกรมคุณสามารถให้กรณีทดสอบเป็นพจนานุกรมได้หรือไม่