Aritmetika modular

sistem aritmetika untuk bilangan bulat, di mana angka "membungkus" saat mencapai nilai tertentu, yang disebut modulus

Dalam matematika dan khususnya pada teori bilangan aljabar, aritmetika modular adalah metode aritmetika untuk menyelesaikan permasalahan mengenai bilangan bulat. Ide dasar dari aritmetika modular adalah bekerja dengan sisa hasil pembagian bilangan, bukan dengan bilangan itu sendiri. Salah satu contoh dari aritmetika modular ada pada sistem 12-jam, di mana hari dibagi menjadi dua periode 12-jam. Jika sekarang jarum jam menunjukan pukul 7:00, maka 8 jam kemudian akan menunjukan pukul 3:00. Penambahan sederhana akan menghasilkan 7 + 8 = 15. Namun karena jam "berulang" setiap 12 jam, angka 15 "sama dengan" angka 3; ini adalah contoh aritmetika modulo 12.

Pengatur waktu pada jam ini menggunakan aritmetika modulo 12.

Walau sudah dipelajari sejak kuno, sejarawan umumnya mengasosiasikan kemunculan aritmetika modular dengan tahun 1801, tahun publikasi buku Disquisitiones Arithmeticae karya Carl Friedrich Gauss. Pendekatan yang ia gunakan mempermudah penjelasan konjektur-konjektur terkenal, dan menyederhanakan bukti-bukti penting. Implikasi karya Gauss juga ditemukan pada bidang selain teori bilangan, seperti aljabar dan geometri.

Kegunaan aritmetika modular meningkat pada abad ke-20. Operasi aritmetika dasar pada komputer yang bekerja pada jumlah bit yang tetap, pada dasarnya adalah operasi aritmetika modular. Penerapan pada bidang industri memicu perkembangan algoritma aritmetika modular.

Sejarah sunting

Asal mula sunting

 
Laman judul edisi 1621 Aritmatika karya Diofantos, diterjemahkan ke dalam bahasa Latin oleh Claude Gaspard Bachet de Méziriac.

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.

Aritmetika modular juga berkembang di Cina. Sekitar 300 M, Sunzi Suanjing menulis risalah matematika, yang pada permasalahan ke-26 di bab ke-3 berisi: "Anggap ada barang yang jumlahnya tidak kita ketahui. Dengan menghitung tiga demi tiga, ada tersisa dua barang. Dengan menghitung lima demi lima, ada sisa tiga barang, dan ketika dihitung tujuh demi tujuh, ada sisa dua. Berapa banyak barang yang ada disana?".[3]

Qin Jiushao (1202-1261) mengembangkan teorema sisa Cina dalam risalah matematika yang ia tulis. Materi pada risalah tesebut sangat dalam; membahas sistem kekongruenan linear pada kasus modulus-modulus pada sistem tidak saling koprima. George Sarton menyatakan bahwa karyanya pada sistem kekongruenan melebihi Leonhard Euler dan Gauss.[4] Namun, karya Qin Jiushao tidak tedengar di luuar Cina sebelum abad ke-20. Karyanya ditemukan ulang oleh sejarawan Joseph Needham. Di sisi lain, kemiripan notasi yang digunakan di Arab dan Cina mengusulkan ada kontak yang terjadi pada periode-periode sebelumnya.[5]

India juga memiliki tradisi kuat dalam aritmetika. Aryabhata (476 - 550) secara sistematik mencari solusi bilangan bulat dari persamaan linear dengan dua variabel dan koefisien bilangan bulat. Algoritmanya dirujuk sebagai "Kuttaka" pada bukunya Âryabhatîya.[6] Persamaan Diofantin derajat dua dipelajari Brahmagupta (598 - 668).[7] Pada abad ke-12, Bhāskara II menyempurnakan metode Chakravala.

Masa Islam abad pertengahan memegang peran ganda dalam perkembangan aritmetika: menggabungkan pengetahuan yang didapatkan di Yunani, India, Cina, dan Eropa,[8] dan menciptakan penemuan baru. Hal ini termasuk studi mengenai sifat dari himpunan bilangan, seperti prima, sempurna, ramah (amicable), dan poligonal.[9] Dalam konteks ini, Qusta bin Lûqâ melakukan terjemahan parsial buku Arithmetica milik Diofantos dari Alexandria, di akhir abad ke-9.[9] Pada masa yang sama, Al-Hajjaj menerjemahkan Elemen milik Euclid.[10] Koleganya, Al-Kharizmi (sekitar 783 - 850), menulis buku mengenai numerisasi. Terjemahan bahasa Latin dari buku ini adalah Algoritmi de numero Indorum.[11] Tsabit bin Qurrah (836-901) mempelajari bilangan amicable dan bilangan sempurna.[12] Ibnu Haitham (965 - 1039) melanjutkan hasil kerjanya dan menemukan teorema Wilson.[13]

Perkembangan di Eropa sunting

 
Pierre de Fermat banyak berkontribusi mengembangkan aritmatika. Sifat-sifat pembagian Euklides, dasar dari aritmatika modular, banyak digunakan oleh matematikawan saat ini.

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".[14] 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  .


Kontribusi Carl Friedrich Gauss sunting

 
Carl Friedrich Gauss adalah penemu cabang matematika yang sekarang disebut aritmetika modular.

Ketika berusia 17 tahun, Gauss membuktikan teorema quadratic reciprocity. Setahun kemudian, pada 30 Maret 1796, ia menyadari kalkulasi aritmetika-nya memungkinkan untuk mengontruksi heptadekagon (poligon dengan 17 sisi) dengan menggunakan jangka dan penggaris, sebuah permasalahan yang tidak terjawab sejak masa kuno. Akhirnya pada 1801, ia mempublikasikan Disquisitiones Arithmeticae (Penelitian tentang Aritmetika), dan dijuluki pangeran matematikawan.[15]

Dua penemuan Gauss tersebut berasal dari pendekatan yang sama, dengan peralatan yang lebih maju ketimbang pada masa Fermat maupun Euler. Hal ini memungkinkan untuk menulis pembuktian yang lebih sederhana, walau menjadi lebih abstrak. Pendekatannya adalah dasar bagi aritmetika modular.

Aritmetika modular awalnya diterapkan kepada bilangan bulat, lalu ke polinomial, dilanjutkan kepada himpunan bilangan baru yang sekarang disebut dengan bilangan Gaussian.

Semua persamaan Diofantin Fermat sudah terselesaikan saat ini, kecuali untuk teorema terakhirnya. Beberapa konjektur baru muncul. Sebagai contoh, jika a dan b saling koprima, apakah barisan aritmetika dengan nilai awal a dan kelipatan b memiliki bilangan prima, jika iya berapa banyak? Gauss dan matematikawan lain seperti Legendre berhipotesis bahwa ada takhingga prima di barisan tersebut, namun mereka tidak mampu membuktikannnya.

Aritmetika modular juga semakin diperkaya. Dirichlet, seorang siswa Gauss membuktikan teorema aritmetic progression[16] dengan mengembangkan konsep karakter, sekaligus memberi dasar formal untuk ilmu teori bilangan analitik.

Abad ke-20 sunting

Kriptografi sunting

 
Enigma adalah mesin enkripsi yang digunakan selama Perang Dunia II, berhasil dipecahkan oleh matematikawan Marian Rejewski.

Kriptografi adalah ilmu yang mempelajari sandi rahasia, dan awalnya termasuk dalam matematika murni. Di sisi lain, aplikasi pada bidang industri yang meningkat membuat notasi matematika yang dikembangkan Gauss populer digunakan dalam ilmu ini. Pada tahun 1883, Auguste Kerckhoffs menyatakan bahwa "keamanan sistem kriptografi seharusnya tidak didasarkan pada kerahasiaan algoritma yang digunakan. Keamanan seharusnya hanya bergantung pada kerahasiaan kunci."[17] Pendekatan baru ini memodifikasi bentuk ilmu ini. Pada pertengahan abad ke-20, ilmu ini menjadi cabang dari matematika terapan.[18]

Pada awal tahun 1930-an, kantor sandi Polandia meminta matematikawan Marian Rejewski untuk memecahkan kode mesin Enigma, yang digunakan oleh Jerman. Kode lawas, seperti sandi Caesar, didefinisikan ulang sebagai transformasi matematis pada himpunan modulus Gaussian atas bilangan bulat. Istilah "aritmatika modular" digunakan untuk menjelaskan teknik ini.

Teori informasi sunting

 
Prosesor Pentium berisi perintah aritmetika dan unit logika yang didasarkan pada aritmetika modular.

Kriptografi bukan satu-satunya bidang yang menggunakan istilah "aritmetika modular". Bidang ilmu teori informasi muncul pada akhir Perang Dunia II. Dalam kepemimpinan Claude Shannon, bidang tersebut menjadi cabang dari matematika terapan.[19] Walau kerahasiaan adalah salah satu topik diskusi, reabilitas (keandalan) juga menjadi tema utama bidang tersebut. Richard Hamming membuat algoritma pertama pada tahun 1950.[20] Sekali lagi, modulus bilangan buat digunakan teknik pengkodean sederhana seperti checksum. Pada tahun 1960, pengkodean yang lebih kuat dikembangkan, didasarkan pada polinomal dengan koefisien atas finite field.[21] Aritmetika yang digunakan untuk objek tersebut umumnya menggunakan kata "modular".

Ilmu komputer menjadi kajian akademik pada awal tahun 1960.[22] Batasan tak terhindarkan dari struktur prosesor mengharuskan bilangan direpresentasikan dalam bentuk bit yang terbatas; menjustifikasi penggunaan modulo. Istilah "aritmetika modular" sering muncul, kita bahkan dapat menemukan bilangan Gaussian atau polinomial, sebagai contoh, untuk kalkulasi bilangan bulat berukuran besar.

Teknik yang dikembangkan untuk kriptografi, teori kode, dan aritmetika komputer, didasarkan pada konsep yang sama, memberikan suatu kesatuan di matematika terkait teori informasi.

Objek dengan aritmetika modular sunting

Kekongruenan bilangan bulat sunting

Penerapan aritmetika modular tertua ada pada bilangan bulat. Setelah menetapkan sebuah bilangan bulat  , yang disebut dengan modulus, kekongruenan modulo n dilakukan dengan melakukan perhitungan terhadap sisa hasil pembagian bilangan-bilangan terhadap n. Dua bilangan bulat dikatakan kongruen modulo n, jika selisih kedua bilangan tersebut merupakan kelipatan n (yaitu, jika ada bilangan bulat k sehingga ab = kn).

Kekongruenan modulo n adalah sebuah relasi kekongruenan, artinya kekongruenan adalah relasi ekuivalensi yang kompatibel dengan operasi penambahan, pengurangan, dan perkalian. Kekongruenan modulo n dilambangkan:

 

Tanda kurung mengartikan bahwa (mod n) berlaku untuk kedua ruas persamaan. Notasi ini berbeda dengan notasi b mod n (tanpa tanda kurung), yang mengacu pada operasi modulus. Notasi b mod n merujuk pada sebuah bilangan bulat unik   dengan   dan memenuhi   (Dengan kata lain, sisa   ketika dibagi dengan  [23]).

Sebagai contoh, dalam modulus 12 seseorang dapat menyatakan bahwa  , karena 38 - 14 = 24 merupakan kelipatan 12. Cara lain untuk menyatakannya adalah dengan mengatakan bahwa 38 dan 14 memiliki sisa yang sama, yakni 2, ketika dibagi dengan 12.

Himpunan {… , a − 2n, an, a, a + n, a + 2n, …} adalah himpunan semua bilangan bulat yang kongruen dengan a modulo n. Himpunan ini disebut kelas kekongruenan, kelas residu, atau cukup dengan residu dari a modulo n; dan dilambangkan dengan an. Gauss berkontribusi dengan menganalisis struktur himpunan kelas kekongruenan ini, yang sekarang dikenal dengan gelanggang bilangan bulat modulo n,[24] dan dilambangkan  ,  , atau  .[23][25] Namunn, notasi   tidak disarankan karena bisa disalahartikan dengan himpunan bilangan bulat adic- n . Gelanggang   fundamental untuk berbagai cabang matematika (lihat § Aplikasi di bawah).

Gelanggang ini didefinisikan untuk n > 0 sebagai:

 

Operasi penjumlahan, pengurangan, dan perkalian di   adalah analogi dari kekongruenan bilangan bulat:

  •  
  •  
  •  

Dalam hal ini,   adalah gelanggang komutatif. Misalnya, di gelanggang  , dapat ditulis

 

seperti dalam aritmetika modular untuk sistem 24 jam.

Polinomial sunting

 
Konstruksi dengan penggaris dan jangka dari poligon reguler 17 sisi, dengan menggunakan teknik aritmatika modular.

Gauss menyadari aritmetika modular juga dapat diterapkan pada himpunan polinomial dengan koefisien bilangan pecahan, karena himpunan tersebut memiliki penjumlahan, perkalian, dan pembagian Euklides. Kekongruenan pada himpunan ini didasarkan dari sisa hasil bagi Euklides sebuah polinomial dengan polinomial lain.

Gauss menerapkan pendekatan ini ke polinomial   dan menemukan faktor-faktor primitifnya, yang disebut dengan polinomial siklotomik. Hal ini digunakan untuk menemukan konstruksi penggaris dan jangka dari heptadekagon, sebuah poligon reguler dengan 17 sisi. Namun, ia ragu untuk menganggap penerapan ini termasuk dalam aritmetika; ia menulis: "Teori pembagian pada lingkaran, atau pada poligon reguler ..., bukan bagian dari aritmetika dengan sendirinya, namun prinsipnya didapatkan dari aritmetika tingkat lanjut".[26]

Bilangan aljabar sunting

Pada kasus polinomial dengan koefisien bilangan bulat, sifat pembagian hanya berlaku untuk polinomial dengan koefisien derajat tersebesar bernilai 1 atau -1. Bagian ini membahas modulus berupa polinomial  , dengan struktur modular yang didapatkan masih bagian dari gelanggangnya. Gelanggang ini berisi himpunan bilangan dalam bentuk  , dengan   dan   berupa bilangan bulat dan   berupa unit bilangan imajiner, yang berkorespodensi dengan monomial  . Himpunan tersebut dikenal sebagai bilangan

Sistem residu sunting

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[27] (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 .[28]

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 .[29] 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 sunting

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 .[30] Himpunan {5,15} dari atas, misalnya, adalah turunan dari modulo 4 sistem residu tereduksi.

Perkembangan teoritis sunting

Dalam matematika, umum dijumpai sebuah konsep matematika yang dikembangkan dalam sebuah bidang, digunakan ulang pada bidang-bidang lain. Hal yang sama juga berlaku untuk aritmetika modular, yang membantu banyak bidang matematika murni, seperti aljabar dan teori Galois. Namun, perkembangan-perkembangan berikut tidak dianggapkan sebagai kasus khusus dari aritmetika modular, karena digunakan bersama konsep-konsep lainnya.

Struktur hasil bagi sunting

Dalam matematika modern, aritmetika modular diformalkan dengan menggunakan konsep Euclidean ring. Konsep relasi ekuivalensi memungkinkan aritmetika modular diterapkan ke banyak struktur aljabar. Sebagai contoh, hasil bagi sebuah grup dengan sebuah subgrup normal, dengan menggunakan teorema Jordan-Holder, adalah alat dasar untuk mengklasifikasikan grup hingga. Grup hasil bagi juga digunakan dalam topologi aljabar untuk mengelompokkan lipatan.

Sifat kekongruenan bilangan bulat sunting

Hubungan kekongruenan bilangan bulat dapat ditulis sebagai

 

yang secara eksplisit menunjukkan hubungannya dengan pembagian Euklides. Namun, suku   tersebut bukanlah sisa pembagian   oleh  . Dalam pengartian yang lebih tepat,   bahwa a dan b memiliki sisa yang sama ketika dibagi dengan n , yakni

 
 

dengan 0 ≤ r < n adalah sisa pembagian keduanya. Mengurangkan kedua ekspresi diatas, kita dapat menemukan hubungan   sebelumnya, dengan memilih k = pq.

Definisi kekongruenan juga berlaku untuk nilai negatif. Sebagai contoh:

 

Sifat dasar sunting

Relasi kekongruenan pada bilangan bulat memenuhi semua kondisi relasi ekuivalensi. Dengan demikian, pada relasi kekongruenan   modulo   berlaku

  • Sifat refleksif:  
  • Sifat simetris: jika   maka  
  • Sifat transitif: jika   dan  , maka  

Untuk sebarang nilai  . Lebih lanjut, operasi penjumlahan dan perkalian tetap berlaku pada relasi kekongruen modulo  . Jika   memenuhi   dan  , maka   dan  . Hal ini juga menyebabkan beberapa operasi lain tetap berlaku:

  • Penjumlahan skalar:   dan  
  • Perkalian skalar:  
  • Perpangkatan:  , untuk bilangan bulat non-negatif  
  • Untuk polinomial   dengan koefisien-koefisien bilangan bulat, berlaku  

Untuk operasi pencoretan (pembatalan) berlaku aturan berikut:

  • Bentuk   dapat disederhanakan menjadi  
  • Bentuk   dapat disederhanakan menjadi  
  • Untuk kasus   dan   saling koprima, bentuk   dapat disederhanakan menjadi  

Jika  , belum tentu berlaku  . Hal tersebut hanya berlaku jika   koprima dengan   dan  , dengan φ adalah fungsi total Euler.

Invers perkalian sunting

Tidak semua relasi kekongruenan modulo   memiliki invers perkalian. Eksistensi bilangan bulat   (sehingga  ) ada jika dan hanya jika   saling koprima dengan modulus  . Secara khusus, jika   adalah bilangan prima maka   (yang terletak diantara  ) akan selalu koprima dengan  . Dalam kasus ini, invers perkalian kekongruenan modulo   ada untuk semua bilangan yang tidak kongruen dengan nol. Bilangan bulat   disebut invers perkalian modular dari   modulo  . Berikut beberapa sifat invers perkalian modular:

  • Jika   dan   ada, maka berlaku  . Pada kasus  , hal ini dapat digunakan untuk menunjukkan ketunggalan invers perkalian.
  • Jika   dan   ada, maka solusi untuk kekongruenan linear tersebut adalah  

Invers perkalian invers   dapat cari secara efisien dengan menemukan nilai   pada Persamaan Bézout  ; dengan menggunakan algoritme Euklides diperluas.

Sifat lain sunting

Berikut daftar beberapa hasil lebih lanjut terkait hubungan kekongruenan:

  • Teorema kecil Fermat: Jika p adalah bilangan prima yang 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−1a 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−1a φ(n) − 1 (mod n).
  • Konsekuensi sederhana lainnya adalah jika ab (mod φ(n)), dengan φ adalah fungsi total Euler, maka kakb (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 xa (mod m) dan xb (mod n). Faktanya, xb 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 gka (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 x2a (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
 

Aplikasi sunting

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.[31]

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 sunting

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  :[32]

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 sunting

Catatan sunting

  1. ^ Heath, Thomas (1911). "The thirteen books of Euclid's Elements". The Mathematical Gazette. 6 (92): 98–101. 
  2. ^ "Euclid's Elements, Book IX, Proposition 36". mathcs.clarku.edu. Diakses tanggal 2021-02-09. 
  3. ^ Martzloff, Jean-Claude. (1988). Histoire des mathématiques chinoises. Impr. Louis-Jean). Paris: Masson. hlm. 129. ISBN 2-225-81265-9. OCLC 416811520. 
  4. ^ Chen, Joseph C. Y. (1996-03-01). Early Chinese Work in Natural Science: A Re-examination of the Physics of Motion, Acoustics, Astronomy and Scientific Thoughts (dalam bahasa Inggris). Hong Kong University Press. hlm. 224. ISBN 978-962-209-385-0. 
  5. ^ Chemla, Karine (1994). "Similarities between chineese and arabic mathematical writings : (I) root extraction". Arabic Sciences and Philosophy. 4 (2): 207–266. 
  6. ^ Agathe Keller. Un commentaire indien du VIIème siècle, Bhâskara et le ganitapada de l’aryabhatiya. Histoire, Philosophie et Sociologie des sciences. Université Paris 7 - Denis Diderot, 2000. Français. ffhalshs-00006349f
  7. ^ Sarasvati, S. S. Prakash (1986). A critical study of Brahmagupta and his works. Delhi. 
  8. ^ Pinès, Shlomo (1986). Studies in Arabic versions of Greek texts and in Medieval science. Leiden. 
  9. ^ a b L'âge d'or des sciences arabes : exposition présentée à l'Institut de monde arabe, Paris, 25 octobre 2005-19 mars 2006. Alaoui, Brahim., Institut du monde arabe (France). [Arles]: Actes Sud. 2005. ISBN 2-7427-5672-8. OCLC 317446627. 
  10. ^ Berggren, John Lennart (1986). Episodes in the Mathematics of Medieval Islam. Springer. hlm. 70-71. 
  11. ^ Crossley, John; Henry, Alan (1990). "Thus Spake al-Khwārizimī: A Translation of the Text of Cambridge University Library Ms. li.vi.5". Historia Mathematica. 17: 103–131. 
  12. ^ Carmody, Francis J. (1941). Thabit b. Qurra, Four Astronomical Tracts in Latin. Berkeley. 
  13. ^ Rashed, Roshdi (1980). "Ibn al-haytham et le théorème de Wilson". Archive for History of Exact Sciences. 22 (4): 305–321. 
  14. ^ Fermat, Korespodensi, sebuah surat kepada Marin Mersenne, 25 Desember 1640.
  15. ^ Naudin, Patrice. (1992). Algorithmique algébrique : avec exercices corrigés. Quitté, Claude. Paris: Masson. ISBN 2-225-82703-6. OCLC 26033061. 
  16. ^ Dirichlet (1840). "Recherches de diverses applications de l'analyse infinitésimale à la théorie des nombres". Journal de Crelle. 21. 
  17. ^ Kerckhoffs, A. (1883). "La cryptographie militaire". Journal des sciences militaires. IX: 5–83 dan 161–191. 
  18. ^ Shannon, Claude (1949). "Communication Theory of Secrecy Systems". Bell System Technical Journal. 29: 656–715. 
  19. ^ Shannon, Claude (1948). "A Mathematical Theory of Communications". Bell System Techical Journal. 27: 379–428 dan 623–656. 
  20. ^ Hamming, Richard (1950). "Error Detecting and Correcting Codes". Bell System Techical Journal. 29: 150–163. 
  21. ^ Bose, Raj Chandra; Ray-Chaudhuri, D. K. (1960). "On a class of error-correcting. Binary group codes". Information Control. 3: 68–79. 
  22. ^ Denning, Peter J. (2000). Computer Science: The Discipline (PDF). Encyclopedia of Computer Science. Archived from the original on 2006-05-25. Diakses tanggal 2021-02-09. 
  23. ^ a b "Comprehensive List of Algebra Symbols". Math Vault (dalam bahasa Inggris). 2020-03-25. Diakses tanggal 2020-08-12. 
  24. ^ Ini adalah gelanggang, ditunjukkan di bawah.
  25. ^ "2.3: Integers Modulo n". Mathematics LibreTexts (dalam bahasa Inggris). 2013-11-16. Diakses tanggal 2020-08-12. 
  26. ^ Carl Friedrich Gauss (trad. A.-C.-M. Poullet-Delisle, éd. Courcier, 1807), [ Disquisitiones Arithmeticae ], 1801
  27. ^ Weisstein, Eric W. "Modular Arithmetic". mathworld.wolfram.com (dalam bahasa Inggris). Diakses tanggal 2020-08-12. 
  28. ^ (Pettofrezzo & Byrkit 1970, hlm. 90)
  29. ^ (Long 1972, hlm. 78)
  30. ^ (Long 1972, hlm. 85)
  31. ^ "Euler's sum of powers conjecture". rosettacode.org (dalam bahasa Inggris). Diakses tanggal 2020-11-11. 
  32. ^ 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 sunting

Pranala luar sunting

Templat:Teori bilangan