Ben sayı teorisinin büyük bir hayranıyım. Sayı teorisinde büyük bir şey modüler aritmetiktir; tanım ise ve sadece . Yapılması eğlenceli bir şey güçlere yükseltmektir: özellikle modül asal bir sayı olduğunda. Özellikle, ve nispeten asal ise ( dışında ortak bir faktör paylaşmıyorsa ) , ^ e \ equiv 1 \ mod m olacak şekilde bir sayısı olduğu kanıtlanmıştır .
Egzersizin ne olduğunu bir örnekle açıklayacağım. Bir modülünü alalım . Program veya işlevin olası bir çıktısı şu şekildedir:
3 2 6 4 5 1
2 4 1 2 4 1
6 1 6 1 6 1
4 2 1 4 2 1
5 4 6 2 3 1
1 1 1 1 1 1
Her satır, o satırdaki ilk sayının güçlerinin bir listesidir: ilk satır ve bu modülo . Yukarıdaki karenin ikinci sırası , sadece 1'in güçleri olan son sıraya kadar , vb. Kuvvetleridir .
Bu büyülü bir modulo meydanı çünkü:
- Kare simetriktir; yani, sütun . satırla aynıdır .
- ila tüm değerler en az bir kez görünür.
Aşağıda, için gücünden başlayarak geçerli diğer tek çıktı verilmiştir :
5 4 6 2 3 1
4 2 1 4 2 1
6 1 6 1 6 1
2 4 1 2 4 1
3 2 6 4 5 1
1 1 1 1 1 1
Meydan okuma
Asal bir p
çıktı veren büyülü bir modulo karesi, yani yan uzunlukları olan bir kare p-1
, her satır satırdaki ilk öğenin ardışık güçlerinin bir listesi olacak ve sütunlar için aynı olacak şekilde bir işlev veya program oluşturun . Tüm sayılar arasındaki 0
ve p
gerçekleşmelidir ve kare yalnızca bu aralıktaki sayıları içerebilir.
Girdi bir sayı veya bir dizedir ve çıktı ascii, bir matris, bir dizi dizisi (herhangi bir makul biçim) olabilir.
Bu kod golf, bu yüzden en kısa kod kazanır.