Saya tidak begitu mengerti cara kerja pembagian modulus. Saya sedang menghitung 27 % 16
dan mengakhiri 11
dan saya tidak mengerti mengapa.
Saya tidak dapat menemukan penjelasan dalam istilah awam secara online. Dapatkah seseorang menjelaskan pada tingkat yang sangat tinggi tentang apa yang terjadi di sini?
Sebagian besar penjelasan melewatkan satu langkah penting, mari kita isi celahnya menggunakan contoh lain.
Diberikan sebagai berikut:
Fungsi modulus terlihat seperti ini:
Mari kita tentukan mengapa demikian.
Pertama, lakukan pembagian bilangan bulat , yang mirip dengan pembagian normal, kecuali bilangan pecahan (alias sisa) yang dibuang:
Kemudian, kalikan hasil pembagian di atas (
2
) dengan pembagi kita (6
):Terakhir, kurangi hasil perkalian di atas (
12
) dari dividen (16
) kita:Hasil pengurangan ini,
4
, yang sisanya , adalah hasil yang sama dari kami modulus atas!sumber
16 // 6 >>> 2
dan16 / 6 >>> 2.6666666666666665
Mungkin contoh dengan jam bisa membantu Anda memahami modulo.
Penggunaan yang umum dari aritmatika modular adalah penggunaannya dalam format 12 jam, di mana hari dibagi menjadi dua periode 12 jam.
Katakanlah saat ini kita punya waktu: 15:00
Tapi bisa juga dikatakan sudah jam 3 sore
Inilah yang dilakukan modulo:
Anda menemukan contoh ini dengan lebih baik dijelaskan di wikipedia: Wikipedia Modulo Article
sumber
Rumus sederhana untuk menghitung modulus adalah: -
Jadi, 27% 16: -
27- {(27/16) * 16}
27- {1 * 16}
Jawaban = 11
Catatan :
Semua perhitungan menggunakan bilangan bulat. Dalam kasus hasil bagi desimal, bagian setelah desimal akan diabaikan / dipotong.
misal: 27/16 = 1,6875 dianggap hanya 1 dalam rumus yang disebutkan di atas. 0,6875 diabaikan.
Penyusun bahasa komputer memperlakukan bilangan bulat dengan bagian desimal dengan cara yang sama (dengan memotong setelah desimal) juga
sumber
Operator modulus mengambil pernyataan pembagian dan mengembalikan apa pun yang tersisa dari perhitungan itu, data "yang tersisa", sehingga untuk berbicara, seperti 13/5 = 2. Yang berarti, ada 3 yang tersisa, atau tersisa dari perhitungan itu. Mengapa? karena 2 * 5 = 10. Jadi, 13 - 10 = 3.
Operator modulus melakukan semua perhitungan itu untuk Anda, 13% 5 = 3.
sumber
pembagian modulus sederhananya: membagi dua angka dan mengembalikan sisanya saja
27/16 = 1 dengan sisa 11, oleh karena itu 27% 16 = 11
ditto 43/16 = 2 dengan sisa 11 jadi 43% 16 = 11 juga
sumber
Sangat sederhana:
a % b
didefinisikan sebagai sisa pembagiana
olehb
.Lihat artikel wikipedia untuk contoh lainnya.
sumber
Saya ingin menambahkan satu hal lagi:
mudah untuk menghitung modulo ketika dividen lebih besar / lebih besar dari pembagi
pembilang = 5 pembagi = 3
tetapi bagaimana jika pembagi lebih kecil dari dividen
pembagi = 3 pembagi = 5
Ini karena, karena 5 tidak dapat membagi 3 secara langsung, modulo akan menjadi dividen
sumber
Saya harap langkah-langkah sederhana ini akan membantu:
20 / 3 = 6
; tidak menyertakan.6667
- abaikan saja3 * 6 = 18
20 - 18 = 2
, yang merupakan sisa dari modulosumber
Lebih mudah bila angka Anda setelah desimal (0.xxx) pendek. Maka yang perlu Anda lakukan hanyalah mengalikan angka itu dengan angka setelah pembagian.
Ex:
32 % 12 = 8
Anda lakukan
32/12=2.666666667
Kemudian Anda membuangnya2
, dan fokus pada0.666666667
0.666666667*12=8
<- Itu jawaban Anda.(sekali lagi, hanya mudah jika angka setelah desimalnya pendek)
sumber
Pembagian modulus menghasilkan sisa pembagian, bukan hasil bagi.
sumber
Katakanlah Anda memiliki 17 mod 6.
berapa total 6 akan membuat Anda paling dekat dengan 17, itu akan menjadi 12 karena jika Anda pergi lebih dari 12 Anda akan memiliki 18 yang lebih dari pertanyaan 17 mod 6. Anda kemudian akan mengambil 12 dan minus dari 17 yang akan memberi Anda jawaban Anda, dalam hal ini 5.
17 mod 6 = 5
sumber
Pembagian modulus cukup sederhana. Ini menggunakan sisa, bukan hasil bagi.
13/12 = 1R1, ergo 13% 12 = 1.
Ini membantu untuk memikirkan modulus sebagai "siklus".
Dengan kata lain, untuk ekspresi tersebut
n % 12
, hasilnya akan selalu <12.Artinya urutan himpunan
0..100
untukn % 12
adalah:Dalam hal ini, modulus serta kegunaannya menjadi lebih jelas.
sumber
Satu-satunya hal penting untuk dipahami adalah bahwa modulus (dilambangkan di sini dengan% seperti di C) didefinisikan melalui pembagian Euclidean .
Untuk dua
(d, q)
bilangan bulat apa pun , berikut ini selalu benar :Seperti yang Anda lihat, nilai
d%q
tergantung pada nilaid/q
. Umumnya untuk bilangan bulat positifd/q
yang dipotong menuju nol , misalnya 5/2 memberikan 2, maka:Namun untuk bilangan bulat negatif situasinya kurang jelas dan tergantung pada bahasa dan / atau standar. Misalnya -5/2 bisa mengembalikan -2 (dipotong ke nol seperti sebelumnya) tetapi juga bisa mengembalikan -3 (dengan bahasa lain).
Dalam kasus pertama:
tapi yang kedua:
Seperti yang dikatakan sebelumnya, ingatlah invariannya , yaitu divisi Euclidean .
Keterangan lebih lanjut:
sumber
Anda dapat menafsirkannya seperti ini:
16 dibagi 1 kali menjadi 27 sebelum mengopernya.
Jadi bisa dibilang 16 masuk satu kali dalam 27 dengan sisa 11.
Faktanya,
Contoh lainnya:
Nah 3 dibagi 6 kali menjadi 20 sebelum meneruskannya.
Untuk menjumlahkan hingga 20 kita membutuhkan 2 sehingga sisa ekspresi modulusnya adalah 2.
sumber
Sederhana, operator Modulus (%) mengembalikan sisa setelah pembagian integer. Mari kita ambil contoh pertanyaan Anda. Bagaimana 27% 16 = 11? Ketika Anda membagi 27 dengan 16 yaitu (27/16) maka Anda mendapatkan sisanya sebagai 11, dan itulah mengapa jawaban Anda adalah 11.
sumber
Tulis tabel yang dimulai dengan 0.
Lanjutkan tabel dalam baris.
Semua yang ada di kolom satu adalah kelipatan 5. Semua yang ada di kolom 2 adalah kelipatan 5 dengan 1 sebagai sisa. Sekarang bagian abstrak: Anda dapat menulis bahwa (1) sebagai 1/5 atau sebagai ekspansi desimal. Operator modulus hanya mengembalikan kolom, atau dengan cara berpikir lain, ia mengembalikan sisanya pada pembagian panjang. Anda berurusan dengan modulo (5). Modulus berbeda, tabel berbeda. Pikirkan Tabel Hash.
sumber
Saat kita membagi dua bilangan bulat, kita akan memiliki persamaan yang terlihat seperti berikut:
A / B = Q sisa R
A adalah dividen; B adalah pembagi; Q adalah hasil bagi dan R adalah sisanya
Terkadang kita hanya tertarik pada apa yang tersisa ketika kita membagi A dengan B. Untuk kasus ini ada operator yang disebut operator modulo (disingkat mod).
Contoh
Lihat Artikel Khan Academy untuk informasi lebih lanjut.
Dalam ilmu Komputer, tabel Hash menggunakan operator Mod untuk menyimpan elemen di mana A akan menjadi nilai setelah hashing, B adalah ukuran tabel dan R adalah jumlah slot atau kunci tempat elemen dimasukkan.
Lihat Bagaimana tabel hash bekerja untuk informasi lebih lanjut
sumber
Ini adalah pendekatan terbaik bagi saya untuk memahami operator modulus. Saya hanya akan menjelaskan kepada Anda melalui contoh.
Saat Anda membagi dua angka ini, hasilnya adalah sisa. Ini adalah cara saya melakukannya.
Jadi yang tersisa 16 adalah 1
Ini satu contoh lagi:
16 % 7 = 7 + 7 = 14
apa yang tersisa menjadi 16? Adalah2
16 % 7 = 2
Satu lagi:
24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24
. Jadi sisanya nol,24 % 6 = 0
sumber