HerHesap
TREN

Modüler Aritmetik Hesaplama (mod)

a mod n kalanını negatif sayılar dahil doğru hesaplayın; modüler toplama, çarpma, üs alma (aᵉ mod n) ve modüler ters (a⁻¹ mod n) adım adım. 10¹⁵’e kadar sayılar tam olarak işlenir.

Son güncelleme:

 

Negatif olabilir; en fazla 10¹⁵.

 

a mod n217 = 3 × 5 + 2, yani 17 ≡ 2 (mod 5)
  • Bölüm ⌊a ÷ n⌋3
  • İşaretli kalan (C, Java, JavaScript %)2
  • Sonuç (kalan)2

Nasıl hesaplanır?

Modüler aritmetik, sayıların bir modüle bölümünden kalan üzerinden çalışır; saat, haftanın günleri ve takvim hesapları bunun günlük örnekleridir. IBAN’daki kontrol basamakları (ISO 13616, ISO/IEC 7064 MOD 97-10), karma (hash) fonksiyonları ve RSA şifrelemesi de modüler aritmetiğe dayanır. Programlama dillerinde % işleci negatif sayılarda farklı davranabilir; araç ikisini de gösterir.

Formüla mod n = a − n × ⌊a ÷ n⌋ · 0 ≤ a mod n < na: bölünen (negatif olabilir) · n: modül (pozitif) · ⌊ ⌋: aşağı yuvarlama. a ≡ b (mod n), a ile b’nin n’e bölümünden aynı kalanı verdiğini gösterir.
  1. Bölüm aşağı yuvarlanır (negatif sayılarda da), kalan a − n × bölüm’dür; böylece kalan her zaman 0 ile n − 1 arasında olur.
  2. Toplama ve çarpmada önce kalanlar alınabilir: (a × b) mod n = ((a mod n) × (b mod n)) mod n.
  3. aᵉ mod n için üs ikili tabana çevrilir; taban her adımda karesi alınıp mod n’e indirilir ve üssün 1 olan bitlerinde sonuca çarpılır.
  4. a⁻¹ mod n, genişletilmiş Öklid algoritmasıyla bulunur; yalnızca EBOB(a, n) = 1 ise vardır.

Örnek

17 mod 5 = 2, çünkü 17 = 3 × 5 + 2. Negatif sayıda −7 mod 3 = 2, çünkü −7 = (−3) × 3 + 2. Saat 10’dan 8 saat sonrası (10 + 8) mod 12 = 6. Üs: 3⁷ mod 11 = 2.187 mod 11 = 9. Ters: 17 × 2.753 = 46.801 = 15 × 3.120 + 1, yani 17⁻¹ mod 3.120 = 2.753.

Sık sorulan sorular

Negatif sayının modu nasıl alınır?

Matematikte kalan her zaman 0 ile n − 1 arasındadır: −7 mod 3 = 2 (−7 = −3 × 3 + 2). C, Java ve JavaScript’teki % işleci bölümü sıfıra doğru yuvarladığı için −7 % 3 = −1 verir; Python’daki % ve Excel’deki MOD ise 2 verir.

Büyük üsler nasıl bu kadar hızlı hesaplanıyor?

Ardışık kare alma yöntemiyle: 3²⁰⁰ hiç yazılmaz; 3, 3², 3⁴, 3⁸ … her adımda mod n’e indirilir ve üssün ikili açılımındaki (200 = 11001000₂) basamaklara göre çarpılır. 200 için 8 kare alma yeter; sonuç 3²⁰⁰ mod 50 = 1.

Modüler ters ne zaman yoktur?

a ile n’in 1’den büyük ortak böleni varsa. Örneğin 6 ile 9’un EBOB’u 3 olduğu için 6⁻¹ mod 9 yoktur. n asal ise 0 dışındaki her sayının tersi vardır.

Kaynak

Siteyi nasıl kullandığınızı anlamak için, izin verirseniz Google Analytics çerezleri kullanıyoruz. İzin vermezseniz çerez kaydedilmez. Çerez politikası