Aritmetika modular
Dalam matematika, aritmetika modular adalah sistem aritmetika untuk bilangan bulat, di mana angka "membungkus" saat mencapai nilai tertentu, yang disebut modulus. Pendekatan modern untuk aritmatika modular dikembangkan oleh Carl Friedrich Gauss dalam bukunya Disquisitiones Arithmeticae , yang diterbitkan pada tahun 1801.
Penggunaan yang umum dari aritmatika modular adalah dalam sistem 12-jam, di mana hari dibagi menjadi dua periode 12-jam. Jika sekarang jam 7:00, maka 8 jam kemudian menjadi 3:00. Penambahan sederhana akan menghasilkan 7 + 8 = 15, tapi jam "berputar" setiap 12 jam. Karena angka jam dimulai kembali setelah mencapai 12, ini adalah aritmetika modulo 12. Dalam definisi di bawah, 15 adalah kongruen dengan 3 modulo 12, jadi "15:00" pada 24 jam ditampilkan "3:00" pada format 12 jam.
Sejarah
Asal mula
Pada abad ke-3 SM, Euklides merumuskan fondasi-fondasi aritmetika dalam bukunya Element. Di dalamnya, terdapat sebuah lema yang umum dirujuk sebagai lema Euklides, versi awal dari teorema dasar aritmetika dan studi mengenai bilangan sempurna[1] dalam proposisi 36 pada bukunya ke-9.[2] Diofantos dari Alexandria (sekitar 250 M) menulis buku Arithmetica yang memuat 130 persamaan. Sebagian besar isinya membahas permasalahan yang memiliki hanya satu solusi, baik dalam bentuk pecahan maupun bilangan bulat. Buku tersebut juga menunjukkan bahwa jumlah dari dua bilangan sempurna tidak pernah dalam bentuk . Bentuk persamaan yang ia bahas, dengan koefisien persamaan dan solusi yang diharapkan berupa bilangan bulat, saat ini dikenal sebagai persamaan Diofantin.
Perkembangan di Eropa
Pada tahun 1621, Claude-Gaspard Bachet de Méziriac menerjemahkan buku Diofantos ke bahasa Latin, yang memicu ketertarikan matematikawan saat itu. Pierre de Fermat banyak memberikan pernyataan matematika, tiga yang terkenal adalah teorema terakhir-nya, teorema jumlah dua persegi, dan teorema kecil-nya. Marin Mersenne mencari bilangan prima yang mememiliki sifat unik. Fermat berkorespodensi dengannya, menulis [terjemahan] "Jika saya mengetahui alasan fundamental mengapa 3, 5, 7, 17, 257, 65537, ..., adalah bilangan prima, sepertinya saya akan menemukan hal yang sangat indah dalam masalah ini, karena saya sudah menemukan hal hebat yang saya bagikan kepadamu saat ini".[3] Bilangan tersebut dikenal sebagai bilangan Fermat, walau sifat keprimaannya bilangan-bilangan tersebut ternyata hanya tebakan yang keliru dari Fermat. Rene Descartes melakukan penelitian tanpa hasil, dalam membuktikan jika sisa pembagian bilangan prima dengan 8 bernilai 1 atau 3, bilangan prima tersebut dapat ditulis dalam bentuk .
Kongruensi
Bilangan bulat n > 1, disebut 'modulus' , dua bilangan bulat dikatakan kongruen modulo n, jika n adalah pembagian dari perbedaannya (yaitu, jika ada bilangan bulat k sehingga a − b = kn).
Modulo kongruensi n adalah relasi kekongruenan, artinya ini adalah relasi ekuivalensi yang kompatibel dengan operasi penambahan, pengurangan, dan perkalian. Modulo kongruensi n dilambangkan:
Tanda kurung berarti bahwa (mod n) berlaku untuk seluruh persamaan, tidak hanya di ruas kanan (di sini b). Notasi ini jangan disamakan dengan notasi b mod n (tanpa tanda kurung), yang mengacu pada operasi modulo. Maka, b mod n menunjukkan bilangan bulat unik a sehingga 0 ≤ a < n dan (misalnya sisa jika dibagi dengan [4]).
Hubungan kongruensi dapat ditulis ulang sebagai
secara eksplisit menunjukkan hubungannya dengan pembagian Euklides. Namun, b tidak menjadi sisa dari pembagian a oleh n . Sebagai gantinya, pernyataan a ≡ b (mod n) bahwa a dan b memiliki sisa yang sama jika dibagi dengan n adalah,
dimana 0 ≤ r < n adalah sisa umum. Dengan mengurangkan dua ekspresi ini, kami memulihkan hubungan sebelumnya:
dengan menyetel k = p − q.
Contoh
Dalam modulus 12, seseorang dapat menyatakan bahwa:
karena 38 - 14 = 24, yang merupakan kelipatan 12. Cara lain untuk menyatakannya adalah dengan mengatakan bahwa 38 dan 14 memiliki sisa 2 yang sama, jika dibagi 12.
Definisi kongruensi juga berlaku untuk nilai negatif. Sebagai contoh:
Sifat
Relasi kesesuaian memenuhi semua kondisi dari relasi ekuivalensi:
- Refleksivitas: a ≡ a (mod n)
- Simetri: a ≡ b (mod n) jika b ≡ a (mod n) untuk a, b, dan n.
- Transitivitas: Jika a ≡ b (mod n) dan b ≡ c (mod n), maka a ≡ c (mod n)
Jika a1 ≡ b1 (mod n) dan a2 ≡ b2 (mod n), atau jika a ≡ b (mod n), maka:
- a + k ≡ b + k (mod n) untuk bilangan bulat k (kompatibilitas dengan translasi)
- k a ≡ k b (mod n) untuk bilangan bulat k (kompatibilitas dengan penskalaan)
- a1 + a2 ≡ b1 + b2 (mod n) (kompatibilitas dengan tambahan)
- a1 – a2 ≡ b1 – b2 (mod n) (kompatibilitas dengan pengurangan)
- a1 a2 ≡ b1 b2 (mod n) (kompatibilitas dengan perkalian)
- ak ≡ bk (mod n) untuk bilangan bulat non-negatif k (kompatibilitas dengan eksponen)
- p(a) ≡ p(b) (mod n), untuk polinomial p(x) dengan koefisien integer (kompatibilitas dengan evaluasi polinomial)
Jika a ≡ b (mod n), maka umumnya ka ≡ kb (mod n). Namun, hal berikut ini benar:
- Jika c ≡ d (mod φ(n)), dengan φ adalah fungsi total Euler, lalu asalkan a koprima dengan n -ac ≡ ad (mod n).
Untuk pembatalan istilah umum, kami memiliki aturan berikut:
- Jika a + k ≡ b + k (mod n), dengan k adalah sembarang bilangan bulat, lalu a ≡ b (mod n)
- Jika k a ≡ k b (mod n) dan k koprima dengan n , maka a ≡ b (mod n)
- Jika k a ≡ k b (mod kn), maka a ≡ b (mod n)
Perkalian modular invers ditentukan oleh aturan berikut:
- Eksistensi: ada bilangan bulat yang dilambangkan a–1 seperti aa–1 ≡ 1 (mod n) jika dan hanya jika a sesuai dengan n . Bilangan bulat a–1 disebut perkalian modular invers dari a modulo n.
- Jika a ≡ b (mod n) dan a–1, maka a–1 ≡ b–1 (mod n) (kompatibilitas dengan pembalikan perkalian, dan jika a = b, modulo n )
- Jika a x ≡ b (mod n) dan a koprima dengan n , maka solusi untuk kongruensi linear ini diberikan oleh x ≡ a–1b (mod n)
Perkalian invers x ≡ a–1 (mod n) dapat dihitung secara efisien dengan menyelesaikan Persamaan Bézout untuk , menggunakan algoritme Euklides diperluas.
Secara khusus, jika p adalah bilangan prima, maka a coprima dengan p untuk a sehingga 0 < a < p; sehingga invers perkalian ada untuk semua a yang tidak kongruen dengan nol modulo p .
Beberapa properti lanjutan dari hubungan kesesuaian adalah sebagai berikut:
- Teorema kecil Fermat: Jika p adalah bilangan prima dan tidak membagi a , maka a p – 1 ≡ 1 (mod p).
- Teorema Euler: Jika a dan n koprima, maka a φ(n) ≡ 1 (mod n), dengan φ adalah fungsi total Euler
- Konsekuensi sederhana dari teorema kecil Fermat adalah jika p adalah bilangan prima, maka a−1 ≡ a p − 2 (mod p) adalah kebalikan perkalian dari 0 < a < p. Lebih umum lagi, dari teorema Euler, jika a dan n adalah koprima, maka a−1 ≡ a φ(n) − 1 (mod n).
- Konsekuensi sederhana lainnya adalah jika a ≡ b (mod φ(n)), dengan φ adalah fungsi total Euler, maka ka ≡ kb (mod n) asalkan k adalah koprima dengan n .
- Teorema Wilson: p is prime if and only if (p − 1)! ≡ −1 (mod p).
- Teorema sisa Cina: Untuk a , b , dan koprima m , ' 'n' ', maka x (mod mn) seperti x ≡ a (mod m) dan x ≡ b (mod n). Faktanya, x ≡ b mn–1 m + a nm–1 n (mod mn) dimana mn−1 adalah kebalikan dari m modulo n dan nm−1 adalah kebalikan dari n modulo m .
- Teorema Lagrange: Kesesuaian f (x) ≡ 0 (mod p), dengan p adalah bilangan prima, dan f (x) = a0 xn + ... + an adalah polinomial dengan koefisien bilangan bulat a0 ≠ 0 (mod p), memiliki akar n .
- Akar primitif modulo n: Bilangan g adalah akar primitif modulo n , untuk bilangan bulat a koprima dengan n , bilangan bulat k adalah gk ≡ a (mod n). Sebuah root modulo n ada jika dan hanya jika n sama dengan 2, 4, pk atau 2pk, dengan p adalah bilangan prima ganjil dan k adalah bilangan bulat positif. Jika aka4 modulo n primitif ada, maka persis ada φ(φ(n)) akar primitif, di mana φ adalah fungsi total Euler.
- Residu kuadrat: Bilangan bulat a adalah modulo residu kuadrat n , jika terdapat bilangan bulat x seperti yang x2 ≡ a (mod n). Kriteria Euler menegaskan bahwa, jika p adalah bilangan prima ganjil, dan a bukan kelipatan p, maka a adalah modulo residu kuadrat p jika dan hanya jika
Kelas kongruensi
Seperti relasi kesesuaian lainnya, kongruensi modulo n adalah relasi ekuivalensi, dan ekuivalen dari bilangan bulat a , dilambangkan dengan an, adalah himpunan {… , a − 2n, a − n, a, a + n, a + 2n, …}. Himpunan ini, terdiri dari semua bilangan bulat yang kongruen dengan a modulo n, disebut kelas kongruensi, kelas residu, atau hanya residu dari bilangan bulat a modulo n. Ketika modulus n diketahui dari konteksnya, residu ini dilambangkan [a].
Sistem residu
Setiap kelas residu modulo n dapat diwakili oleh salah satu anggotanya, meskipun biasanya mewakili setiap kelas residu dengan bilangan bulat nonnegatif terkecil yang termasuk dalam kelas[5] (karena ini adalah sisa yang tepat yang dihasilkan dari pembagian). Dua anggota kelas residu yang berbeda modulo n adalah modulo tidak selaras n . Selain itu, setiap bilangan bulat milik satu dan hanya satu kelas residu modulo n .[6]
Himpunan bilangan bulat {0, 1, 2, …, n − 1} disebut modulo sistem residu terkecil ' 'n' '. Setiap rangkaian bilangan bulat n , tidak ada dua yang kongruen modulo n , disebut modulo sistem residu lengkap ' 'n' '.
Sistem residu terkecil adalah sistem residu lengkap, dan sistem residu lengkap hanyalah satu himpunan yang berisi tepat satu perwakilan dari setiap kelas residu modulo n .[7] Sebagai contoh. modulo 4 sistem residu terkecil adalah {0, 1, 2, 3}. Beberapa sistem residu lengkap lainnya modulo 4 meliputi:
- {1, 2, 3, 4}
- {13, 14, 15, 16}
- {−2, −1, 0, 1}
- {−13, 4, 17, 18}
- {−5, 0, 6, 21}
- {27, 32, 37, 42}
Beberapa set yang bukan sistem residu lengkap modulo 4 adalah:
- {−5, 0, 6, 22}, karena 6 kongruen dengan 22 modulo 4.
- {5, 15}, karena modulo 4 sistem residu lengkap harus memiliki tepat 4 kelas residu yang tidak selaras.
Sistem residu berkurang
Fungsi total Euler φ(n), himpunan dari φ(n) bilangan bulat yang relative prime menjadi n dan saling tidak selaras di bawah modulus n disebut modulo sistem residu tereduksi n .[8] Himpunan {5,15} dari atas, misalnya, adalah turunan dari modulo 4 sistem residu tereduksi.
Bilangan bulat modulo n
Himpunan dari semua kelas kongruensi dari bilangan bulat untuk modulus n disebut gelanggang bilangan bulat modulo n ,[9] dan dilambangkan , , atau .[4][10] Notasi adalah, bagaimanapun, tidak disarankan karena bisa disalahartikan dengan himpunan bilangan bulat adic- n . Gelanggang adalah fundamental untuk berbagai cabang matematika (lihat § Aplikasi di bawah).
Himpunan ditentukan untuk n > 0 sebagai:
(Maka n = 0, bukan merupakan himpunan kosong; sebaliknya, isomorfik menjadi , maka a0 = {a}.)
Kami mendefinisikan penjumlahan, pengurangan, dan perkalian di dengan aturan berikut:
Verifikasi bahwa ini adalah definisi yang tepat menggunakan properti yang diberikan sebelumnya.
Maka, menjadi gelanggang komutatif. Misalnya, di gelanggang , maka
seperti dalam aritmatika untuk sistem 24 jam.
Kami menggunakan notasi karena ini adalah gelanggang hasil bagi dari oleh ideal , satu set yang berisi semua bilangan bulat habis dibagi oleh n , di mana adalah himpunan singleton {0}. Jadi adalah bidang adalah ideal maksimal (yaitu, jika n adalah bilangan prima).
Aplikasi
Dalam matematika teoretis, aritmatika modular adalah salah satu fondasi teori bilangan, menyentuh hampir setiap aspek studinya, dan itu juga digunakan secara luas dalam teori grup, teori gelanggang, teori simpul, dan aljabar abstrak. Dalam matematika terapan, ini digunakan dalam aljabar komputer, kriptografi, ilmu komputer, kimia dan visual dan seni musikal.
Aplikasi yang sangat praktis adalah menghitung checksum dalam pengenal bilangan deret. Misalnya, Nomor Buku Standar Internasional (ISBN) menggunakan aritmatika modulo 11 (untuk 10 digit ISBN) atau modulo 10 (untuk ISBN 13 digit) untuk deteksi kesalahan. Demikian juga, Nomor Rekening Bank Internasional (IBAN), misalnya, menggunakan aritmatika modulo 97 untuk melihat kesalahan input pengguna di nomor rekening bank. Dalam kimia, digit terakhir dari nomor registrasi CAS (nomor pengenal unik untuk setiap senyawa kimia) adalah digit pemeriksa, yang dihitung dengan mengambil digit terakhir dari dua bagian pertama Nomor CAS dikalikan 1, digit sebelumnya dikalikan 2, digit sebelumnya dikali 3 dll., menjumlahkan semua ini dan menghitung.
Dalam kriptografi, aritmatika modular secara langsung mendukung sistem kunci publik seperti RSA dan Diffie–Hellman, dan menyediakan finite field yang mendasari kurva elips, dan digunakan dalam berbagai algoritma kunci simetris termasuk Standar Enkripsi Lanjutan (AES), Algoritma Enkripsi Data Internasional (IDEA), dan RC4. RSA dan Diffie–Hellman menggunakan eksponen modular.
Dalam aljabar komputer, aritmatika modular biasanya digunakan untuk membatasi ukuran koefisien integer dalam penghitungan dan data menengah. Digunakan dalam faktorisasi polinomial, masalah di mana semua algoritma efisien yang diketahui menggunakan aritmatika modular. Digunakan oleh implementasi yang paling efisien dari algoritma pembagi persekutuan terbesar polinomial, eksak aljabar linear dan basis Gröbner di atas bilangan bulat dan bilangan rasional. Seperti yang diposting di Fidonet pada tahun 1980-an dan diarsipkan di Rosetta Code, aritmatika modular digunakan untuk menyangkal konjektur jumlah pangkat Euler pada Sinclair QL mikrokomputer menggunakan hanya seperempat dari presisi integer yang digunakan oleh CDC 6600 superkomputer untuk membantahnya dua dekade sebelumnya melalui pencarian brute force.[11]
Dalam ilmu komputer, aritmatika modular sering diterapkan dalam operasi bitwise dan operasi lain yang melibatkan lebar tetap, struktur data siklik. Operasi modulo, seperti yang diterapkan di banyak bahasa pemrograman dan kalkulator, adalah aplikasi aritmetika modular yang sering digunakan dalam konteks. Operator logika XOR menjumlahkan 2 bit, modulo 2.
Contoh implementasi
section ini mungkin mengandung riset asli. |
Di bawah ini adalah tiga fungsi C yang cukup cepat, dua untuk melakukan perkalian modular dan satu untuk eksponensial modular pada bilangan bulat tak bertanda yang tidak lebih besar dari 63 bit, tanpa luapan transien.
Cara algoritmik untuk menghitung :[12]
uint64_t mul_mod(uint64_t a, uint64_t b, uint64_t m)
{
if (!((a | b) & (0xFFFFFFFFULL << 32)))
return a * b % m;
uint64_t d = 0, mp2 = m >> 1;
int i;
if (a >= m) a %= m;
if (b >= m) b %= m;
for (i = 0; i < 64; ++i)
{
d = (d > mp2) ? (d << 1) - m : d << 1;
if (a & 0x8000000000000000ULL)
d += b;
if (d >= m) d -= m;
a <<= 1;
}
return d;
}
Pada arsitektur komputer di mana format presisi perpanjangan dengan setidaknya 64 bit mantissa tersedia (seperti tipe mo ganda panjang), the following routine is [butuh klarifikasi], dengan menggunakan trik yang, dengan perangkat keras, perkalian floating-point menghasilkan bit paling signifikan dari produk yang disimpan, sementara perkalian bilangan bulat menghasilkan bit yang paling tidak signifikan:[butuh rujukan]
uint64_t mul_mod(uint64_t a, uint64_t b, uint64_t m)
{
long double x;
uint64_t c;
int64_t r;
if (a >= m) a %= m;
if (b >= m) b %= m;
x = a;
c = x * b / m;
r = (int64_t)(a * b - c * m) % (int64_t)m;
return r < 0 ? r + m : r;
}
Di bawah ini adalah fungsi C untuk melakukan eksponensial modular, yang menggunakan fungsi mul_mod yang diterapkan di atas.
Cara algoritmik untuk menghitung :
uint64_t pow_mod(uint64_t a, uint64_t b, uint64_t m)
{
uint64_t r = m==1?0:1;
while (b > 0) {
if (b & 1)
r = mul_mod(r, a, m);
b = b >> 1;
a = mul_mod(a, a, m);
}
return r;
}
Namun, agar semua rutinitas di atas bekerja, m tidak boleh melebihi 63 bit.
Lihat pula
- Gelanggang Boolean
- Buffer melingkar
- Pembagian
- Bidang terbatas
- Simbol Legendre
- Eksponen modular
- Modulo (matematika)
- Grup perkalian bilangan bulat modulo n
- Periode Pisano (deret Fibonacci modulo n )
- Modulo dasar primitif
- Timbal balik kuadrat
- Residu kuadrat
- Rekonstruksi rasional (matematika)
- Sistem residu pengurangan
- Aritmatika bilangan deret (kasus khusus aritmatika modular)
- Aljabar Boolean dua elemen
- Topik yang berkaitan dengan teori grup di balik aritmatika modular:
- Teorema penting lainnya yang berkaitan dengan aritmatika modular:
- Teorema Carmichael
- Teorema sisa Cina
- Teorema Euler
- Teorema kecil Fermat (kasus khusus dari teorema Euler)
- Teorema Lagrange
- Lemma Thue
Catatan
- ^ Heath, Thomas (1911). "The thirteen books of Euclid's Elements". The Mathematical Gazette. 6 (92): 98–101.
- ^ "Euclid's Elements, Book IX, Proposition 36". mathcs.clarku.edu. Diakses tanggal 2021-02-09.
- ^ Fermat, Korespodensi, sebuah surat kepada Marin Mersenne, 25 Desember 1640.
- ^ a b "Comprehensive List of Algebra Symbols". Math Vault (dalam bahasa Inggris). 2020-03-25. Diakses tanggal 2020-08-12.
- ^ Weisstein, Eric W. "Modular Arithmetic". mathworld.wolfram.com (dalam bahasa Inggris). Diakses tanggal 2020-08-12.
- ^ (Pettofrezzo & Byrkit 1970, hlm. 90)
- ^ (Long 1972, hlm. 78)
- ^ (Long 1972, hlm. 85)
- ^ Ini adalah gelanggang, ditunjukkan di bawah.
- ^ "2.3: Integers Modulo n". Mathematics LibreTexts (dalam bahasa Inggris). 2013-11-16. Diakses tanggal 2020-08-12.
- ^ "Euler's sum of powers conjecture". rosettacode.org (dalam bahasa Inggris). Diakses tanggal 2020-11-11.
- ^ Kode ini menggunakan notasi literal C untuk bilangan heksadesimal panjang tanpa tanda, yang diakhiri dengan
ULL
. Lihat juga bagian 6.4.4 dari spesifikasi bahasa n1570.
Referensi
- John L. Berggren. "modular arithmetic". Encyclopædia Britannica.
- Apostol, Tom M. (1976), Introduction to analytic number theory, Undergraduate Texts in Mathematics, New York-Heidelberg: Springer-Verlag, ISBN 978-0-387-90163-3, MR 0434929, Zbl 0335.10001. See in particular chapters 5 and 6 for a review of basic modular arithmetic.
- Maarten Bullynck "Modular Arithmetic before C.F. Gauss. Systematisations and discussions on remainder problems in 18th-century Germany"
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Section 31.3: Modular arithmetic, pp. 862–868.
- Anthony Gioia, Number Theory, an Introduction Reprint (2001) Dover. ISBN 0-486-41449-3.
- Long, Calvin T. (1972). Elementary Introduction to Number Theory (edisi ke-2nd). Lexington: D. C. Heath and Company. LCCN 77171950.
- Pettofrezzo, Anthony J.; Byrkit, Donald R. (1970). Elements of Number Theory . Englewood Cliffs: Prentice Hall. LCCN 71081766.
- Sengadir, T. (2009). Discrete Mathematics and Combinatorics. Chennai, India: Pearson Education India. ISBN 978-81-317-1405-8. OCLC 778356123.
Pranala luar
- Hazewinkel, Michiel, ed. (2001) [1994], "Congruence", Encyclopedia of Mathematics, Springer Science+Business Media B.V. / Kluwer Academic Publishers, ISBN 978-1-55608-010-4
- Dalam modular art artikel, seseorang dapat mempelajari lebih lanjut tentang aplikasi aritmatika modular dalam seni.
- An article tentang aritmatika modular di wiki GIMPS
- Modular Arithmetic and patterns in addition and multiplication tables