Açıklama
f(m, G)Bağımsız değişken olarak bir eşleme mve farklı, negatif olmayan tamsayıların bir kümesini / listesini kabul eden bir işlev yazın G.
miçindeki tamsayı çiftlerini Gyeni tamsayılarla eşleştirmelidir G. ( G, m) 'nin sonlu bir abelya grubu oluşturması garanti edilir , ancak herhangi bir unsuru Gkimlik olabilir.
Önemli bir teorem var:
[Her sonlu abelya grubu], döngüsel prime güç düzeni gruplarının doğrudan çarpımı için izomorfiktir.
fasal güçlerin listesini [p1, ... pn]artan sırada döndürmelidir .
Örnekler
f((a, b) → (a+b) mod 4, [0, 1, 2, 3])dönmelidir[4]parametreler grup açıklamak gibi Z 4 .f((a, b) → a xor b, [0, 1, 2, 3])dönmelidir[2, 2]parametreleri izomorf bir grubu tarif olarak, Z 2 x Z 2 .f((a, b) → a, [9])[]parametreler önemsiz grubu tanımladığı için geri dönmelidir ; yani sıfır siklik grupların ürünü.Aşağıdaki
mgibi tanımlayın :(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) * 9Daha sonra
f(m, [0, 1, ..., 80])geri[3, 3, 9]dönmelisiniz, çünkü bu grup Z 3 × Z 3 × Z 9'a izomorfiktir
kurallar
mbir işlev (veya bazı işlevlere ilişkin işlev işaretçisi)Int × Int → Intveya sözlüğününG × Gyeni öğelerine eşlenen bir sözlük eşlemesi olabilirG.fparametrelerini ters sırayla alabilir, yani uygulayabilirsinizf(G, m).Uygulamanız teorik olarak keyfi olarak büyük girdiler için çalışmalıdır, ancak aslında verimli olması gerekmez.
Herhangi bir tür yerleşik kullanım konusunda herhangi bir sınırlama yoktur.
Standart kod golf kuralları geçerlidir. Bayt cinsinden en kısa kod kazanır.
Liderler Sıralaması
Puanınızın tahtada görünmesi için şu biçimde olması gerekir:
# Language, Bytes
for a in G: for b in G: d[(a, b)] = m(a, b)) oluşturmaları muhtemelen daha kolaydır .
AABCbunları üçlü olarak muamele eder (A, B, C), çift ekleme modülü ile (9, 3, 3).
mbir sözlük olmasına izin, siz de sözlüklerde olarak test durumları sağlayabilir?