Yanıtlar:
Bir sonucu modül bölümü bir geri kalanı olan tam bölümünün sayının.
Bunun anlamı:
27 / 16 = 1, remainder 11
=> 27 mod 16 = 11
Diğer örnekler:
30 / 3 = 10, remainder 0
=> 30 mod 3 = 0
35 / 3 = 11, remainder 2
=> 35 mod 3 = 2
Açıklamaların çoğu önemli bir adımı gözden kaçırıyor, boşluğu başka bir örnekle dolduralım.
Aşağıdakiler göz önüne alındığında:
Dividend: 16
Divisor: 6
Modül fonksiyonu aşağıdaki gibidir:
16 % 6 = 4
Bunun neden olduğunu belirleyelim.
İlk olarak, gerçekleştirmek bölme tamsayıdır atılır (geri kalanı da bilinir) bir kısmi grup dışında, normal bir bölümü benzer,:
16 / 6 = 2
Ardından, çarpma yukarıdaki bölümü (sonucunu 2
bizim ile) bölen ( 6
):
2 * 6 = 12
Son olarak, çıkarma yukarıdaki çarpma (sonucunu 12
bizim itibaren) temettü ( 16
):
16 - 12 = 4
Bu çıkarmanın sonucu 4
, geri kalan , yukarıdaki modülümüzün aynı sonucudur !
16 // 6 >>> 2
ve16 / 6 >>> 2.6666666666666665
Belki saatli örnek, moduloyu anlamanıza yardımcı olabilir.
Modüler aritmetiğin bilinen bir kullanımı, günün 12 saatlik iki periyoda bölündüğü 12 saatlik düzende kullanılmasıdır.
Diyelim ki şu anda bu saatimiz var: 15:00
Ama aynı zamanda öğleden sonra 3 de diyebilirsiniz.
Modulo'nun yaptığı tam olarak budur:
15 / 12 = 1, remainder 3
Bu örneği wikipedia'da daha iyi açıklanmış olarak bulabilirsiniz: Wikipedia Modulo Article
Modülü hesaplamak için basit formül: -
[Dividend-{(Dividend/Divisor)*Divisor}]
Yani,% 27 16: -
27- {(27/16) * 16}
27- {1 * 16}
Cevap = 11
Not :
Tüm hesaplamalar tam sayılarla yapılır. Ondalık bölüm olması durumunda, ondalık sayıdan sonraki kısım yok sayılır / kesilir.
Örneğin: 27/16 = 1.6875, yukarıda belirtilen formülde sadece 1 olarak alınmalıdır. 0.6875 dikkate alınmaz.
Bilgisayar dillerinin derleyicileri, ondalık kısmı olan bir tamsayıyı da aynı şekilde (ondalıktan sonra keserek) ele alır.
Modül operatörü bir bölme ifadesini alır ve bu hesaplamadan arta kalan her şeyi, yani 13/5 = 2 gibi "kalan" verileri döndürür. Bunun anlamı, bu hesaplamadan kalan veya kalan 3 olduğu anlamına gelir. Neden? çünkü 2 * 5 = 10. Böylece, 13-10 = 3.
Modül operatörü tüm bu hesaplamayı sizin için yapar,% 13 5 = 3.
Çok basit a % b
bölünmesinde kalan olarak tanımlanır a
göre b
.
Daha fazla örnek için wikipedia makalesine bakın .
Bir şey daha eklemek istiyorum:
Temettü bölenden daha büyük / daha büyük olduğunda moduloyu hesaplamak kolaydır
bölünen = 5 bölen = 3
% 5 3 = 2
3)5(1
3
-----
2
ama ya bölen temettüden daha küçükse
temettü = 3 bölen = 5
% 3 5 = 3 ?? Nasıl
Bunun nedeni, 5'in 3'ü doğrudan bölemeyeceği için, temettü olan modulo olacaktır.
Umarım bu basit adımlar yardımcı olur:
20 % 3 = 2
20 / 3 = 6
; dahil etmeyin .6667
- sadece görmezden gelin3 * 6 = 18
20 - 18 = 2
modulo'nun geri kalanıOndalık sayıdan (0.xxx) sonraki sayınız kısa olduğunda daha kolaydır. O zaman tek yapmanız gereken, bu sayıyı bölmeden sonraki sayı ile çarpmaktır.
Ör: 32 % 12 = 8
Yaparsın 32/12=2.666666667
Sonra atarsın 2
ve 0.666666667
0.666666667*12=8
<- Bu senin cevabın.
(yine, yalnızca ondalıktan sonraki sayı kısa olduğunda kolaydır)
Diyelim ki 17 mod 6'nız var.
6 toplamı sizi 17'ye en yakın getirecek, 12 olacak çünkü 12'yi geçerseniz, 17 mod 6 sorusundan daha fazla 18 olacak. Daha sonra 12 ve eksi 17'yi alacak ve size verecek cevabınız, bu durumda 5.
17 mod 6 = 5
Modül bölünmesi oldukça basittir. Bölüm yerine kalanı kullanır.
1.0833... <-- Quotient
__
12|13
12
1 <-- Remainder
1.00 <-- Remainder can be used to find decimal values
.96
.040
.036
.0040 <-- remainder of 4 starts repeating here, so the quotient is 1.083333...
13/12 = 1R1, ergo% 13 12 = 1.
Modülü bir "döngü" olarak düşünmeye yardımcı olur.
Diğer bir deyişle, ifade n % 12
için sonuç her zaman <12 olacaktır.
Bu dizi için dizisi anlamına gelir 0..100
için n % 12
bir:
{0,1,2,3,4,5,6,7,8,9,10,11,0,1,2,3,4,5,6,7,8,9,10,11,0,[...],4}
Bu ışıkta, modül ve kullanımları çok daha net hale gelir.
Anlaşılması gereken tek önemli şey, modülün (burada C'deki gibi% ile gösterilmektedir) Öklid bölünmesiyle tanımlanmasıdır .
Herhangi iki (d, q)
tam sayı için aşağıdakiler her zaman doğrudur :
d = ( d / q ) * q + ( d % q )
Gördüğünüz gibi değeri, değerine d%q
bağlıdır d/q
. Genellikle pozitif tamsayılar d/q
için sıfıra doğru kesilir , örneğin 5/2, 2'yi verir, dolayısıyla:
5 = (5/2)*2 + (5%2) => 5 = 2*2 + (5%2) => 5%2 = 1
Bununla birlikte, negatif tamsayılar için durum daha az açıktır ve dile ve / veya standarda bağlıdır. Örneğin -5/2, -2 (daha önce olduğu gibi sıfıra doğru kesilir) döndürebilir, ancak -3 (başka bir dilde) döndürebilir.
İlk durumda:
-5 = (-5/2)*2 + (-5%2) => -5 = -2*2 + (-5%2) => -5%2 = -1
ama ikincisinde:
-5 = (-5/2)*2 + (-5%2) => -5 = -3*2 + (-5%2) => -5%2 = +1
Daha önce de söylendiği gibi , Öklid bölümü olan değişmezi hatırlayın .
Daha fazla detay:
% 27 16 = 11
Bunu şu şekilde yorumlayabilirsiniz:
16, geçmeden önce 27'ye 1 kez gidiyor.
16 * 2 = 32.
Yani 16'nın 27'de bir, kalan 11'inin gittiğini söyleyebilirsiniz.
Aslında,
16 + 11 = 27
Başka bir örnek:
% 20 3 = 2
Kuyu 3, geçmeden önce 6 kez 20'ye gider.
3 * 6 = 18
20'ye kadar toplamak için 2'ye ihtiyacımız var, böylece modül ifadesinin geri kalanı 2'dir.
Basittir, Modül operatörü (%) tamsayı bölmesinden sonra kalanı döndürür. Sorunuzun örneğini ele alalım. % 27 16 = 11 nasıl? 27'yi 16'ya böldüğünüzde yani (27/16) 11 olarak kalacaksınız ve bu yüzden cevabınız 11'dir.
0 ile başlayan bir tablo yazın.
{0,1,2,3,4}
Tabloya satırlar halinde devam edin.
{0,1,2,3,4}
{5,6,7,8,9}
{10,11,12,13,14}
Birinci sütundaki her şey 5'in katıdır. Sütun 2'deki her şey 5'in katıdır ve kalan 1'dir. Şimdi soyut kısım: Bunu (1) 1/5 veya ondalık genişletme olarak yazabilirsiniz. Modül operatörü yalnızca sütunu döndürür veya başka bir şekilde, uzun bölmede kalanı döndürür. Modulo (5) ile uğraşıyorsunuz. Farklı modül, farklı tablo. Bir Karma Tablosu düşünün.
İki tamsayıyı böldüğümüzde, aşağıdaki gibi görünen bir denklemimiz olacak:
A / B = Q kalan R
A temettüdür; B, bölen; Q bölüm ve R geri kalan
Bazen, sadece A'yı B'ye böldüğümüzde kalanın ne olduğu ile ilgileniriz. Bu durumlar için modulo operatörü (mod olarak kısaltılır) adında bir operatör vardır.
Örnekler
16/5= 3 Remainder 1 i.e 16 Mod 5 is 1.
0/5= 0 Remainder 0 i.e 0 Mod 5 is 0.
-14/5= 3 Remainder 1 i.e. -14 Mod 5 is 1.
Daha fazla bilgi için Khan Academy Makalesine bakın .
Bilgisayar biliminde, Hash tablosu, A'nın karma işleminden sonra değerler olacağı, B'nin tablo boyutu olacağı ve R, öğenin eklendiği yuvaların veya anahtarın sayısı olduğu öğeyi depolamak için Mod işlecini kullanır.
Daha fazla bilgi için Karma tablo nasıl çalışır? Konusuna bakın
Bu, modül operatörünü anlamak için benim için en iyi yaklaşımdı. Size sadece örneklerle açıklayacağım.
16 % 3
Bu iki sayıyı böldüğünüzde kalan sonuçtur. Ben böyle yaparım.
16 % 3 = 3 + 3 = 6; 6 + 3 = 9; 9 + 3 = 12; 12 + 3 = 15
Öyleyse 16'ya kalan 1'dir
16 % 3 = 1
İşte bir örnek daha: 16 % 7 = 7 + 7 = 14
16'ya ne kaldı? Dır-dir2
16 % 7 = 2
Bir tane daha: 24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24
. Yani kalan sıfırdır,24 % 6 = 0