Vikokotozi vya Hisabati
Kikokotoo cha Modulo


Kikokotoo cha Modulo

Tafuta baki ya mgawanyo wowote papo hapo ukitumia Kikokotoo chetu cha Modulo cha bure. Inasaidia namba chanya na hasi. Jifunze ukokotoaji wa modulo hapa.

Modulo

1

Kulikuwa na hitilafu katika hesabu yako.

Yaliyomo

  1. Ukokotoaji Bila Kikokotoo cha Modulus
    1. Mfano
  2. Mfano wa Saa wa Kanuni ya Modulo
    1. Mfano
  3. Matumizi ya Modulo
    1. Kubaini Namba Shufwa na Witiri (Even and Odd)
    2. Kubadilisha Vizio (Unit Conversion)
    3. Kubaini Mwaka Mrefu (Leap Year)
  4. Jenereta za Namba Nasibu (Random Number Generators)
    1. Kriptografia (Cryptography)
  5. Hitimisho

Kikokotoo cha Modulo

Operesheni ya modulo ni mbinu ya kihisabati inayotumika kutafuta baki ya operesheni ya mgawanyo. Hasa, modulo hutathmini namba mbili na kurudisha baki kama namba kamili.

Fikiria una watoto watatu, na umenunua boksi lenye peremende 20. Unataka kuwagawia peremende hizo kwa usawa na haki, ukibakiza peremende zilizosalia kwa ajili yako bila kuzivunja vipande vipande. Kwa kuwa watoto wako bado wako shuleni, unaweza kukokotoa baki mapema, na kukuruhusu kuweka kando fungu lako.

Hili ni tukio kamili la kutumia opereta ya modulo, ambayo mara nyingi huwakilishwa kwa alama ya % au kifupisho cha mod. Ingawa unaweza kufanya ukokotoaji wa modulo kichwani kwa namba ndogo kwa urahisi, kufanya kazi na namba kubwa ni haraka na rahisi zaidi ukitumia kikokotoo maalum cha modulo.

Mlinganyo huo unaweza kuwakilishwa kama ifuatavyo:

Gawiwa = (Hisa × Kigawanyo) + Baki

Katika mfano wetu:

  • gawiwa ni 20 (jumla ya idadi ya peremende);
  • kigawanyo ni 3 (idadi ya watoto);
  • hisa ni 6 (idadi ya peremende kwa kila mtoto);
  • baki ni 2 (idadi ya peremende unazoweza kuchukua kwa ajili yako).

Ikiwa unatumia operesheni ya modulo, unaweza kuiandika katika muundo ufuatao:

x % y = r

au

x mod y = r

Ambapo x ni gawiwa, y ni kigawanyo, na r ni baki.

Katika mfano wetu,

20 % 3 = 2

Ukokotoaji Bila Kikokotoo cha Modulus

Hebu tuchukue mfano maalum wa ulimwengu halisi.

Mfano

Wayan anaishi Bali na anajenga nyumba ndogo ya wageni yenye vyumba sita vya kuishi. Anajiandaa kuweka vigae (tiles) bafuni. Jirani yake, Gede, ambaye hivi karibuni alimaliza kujenga hoteli yake mwenyewe, anampa Wayan punguzo kubwa la kununua vigae vyake vilivyosalia.

Gede alihesabu maboksi 15 kwenye ghala lake, kila moja likiwa na vigae 4 vya kawaida (sm 60 × 60), pamoja na vigae viwili vilivyo wazi. Hiyo inafanya jumla ya vigae 62. Gede anataka kuuza shehena nzima kwa pamoja.

Sasa Wayan anahitaji kujua ni bafu ngapi anaweza kuziwekea vigae kikamilifu kwa kutumia shehena hii—na ni vigae vingapi vitasalia bila kutumika.

Unatafutaje modulus kwa mkono bila kikokotoo cha opereta ya modulo?

Wayan alipima vipimo vya bafu la kawaida katika nyumba yake ya wageni na kugundua anahitaji vigae 14 kamili kwa kila chumba.

Hebu tufanye ukokotoaji wa mikono!

  1. Ammua namba ya kuanzia au gawiwa. Katika mfano wetu, hiyo ni 62, au idadi ya vigae anavyotoa jirani.
  2. Bainisha kigawanyo. Hiki ni 14—idadi kamili ya vigae vinavyohitajika kwa bafu la kawaida.
  3. Gawanya gawiwa kwa kigawanyo na ushushe jibu chini kuwa namba kamili. 62 / 14 = 4.428571428571429 au 4. Hivyo Wayan anaweza kuweka vigae kikamilifu kwenye bafu nne.
  4. Zidisha jibu lililokadiriwa (namba kamili) na kigawanyo. Hii ni 4 × 14 = 56. Hii inawakilisha jumla ya idadi ya vigae vinavyohitajika kwa vyumba vinne.
  5. Toa jibu la kuzidisha huku kutoka kwenye gawiwa la awali. Hiyo ni 62 - 56 = 6. Hii inamuacha Wayan na vigae sita vya ziada.

Kwa njia iliyorahisishwa na kufupishwa, tunaweza kuandika operesheni hii kama:

62 % 14 = 6

au

62 mod 14 = 6

Wayan anaamua kuwa hii ni ofa nzuri kwa sababu ni jambo la busara daima kuweka akiba ya takriban 10% kwa ajili ya kukata au uharibifu wa ajali. Anaweza kununua tu vigae kamili vinavyohitajika kwa bafu mbili zilizosalia kwenye duka la vifaa vya ujenzi la karibu.

Ingawa hisabati za mkono zinafanya kazi, kikokotoo cha mod mtandaoni kinaweza kutoa jibu hili kamili ndani ya sekunde.

Mfano wa Saa wa Kanuni ya Modulo

Hesabu za modular ni tawi la hisabati ambalo linahusika na miundo ya mizunguko. Njia rahisi zaidi ya kuona hili ni sura ya saa ya kawaida yenye mzunguko wa saa 12. Katika kanuni za hisabati, saa inafanya kazi kwenye mod 12.

Ukitaka kujua ikiwa saa 251 zinagawanyika kikamilifu katika siku kamili bila baki, ungetumia operesheni:

251 mod 24

Jibu ni 11, ikimaanisha kuna baki ya saa 11. Kwa hivyo, jibu ni hapana! Ingegawanyika kikamilifu tu ikiwa jibu lingekuwa 0.

Mfano

Daniel anataka kupanda basi kutoka Atlanta kwenda Miami. Litaondoka saa 1:00 mchana (1 p.m.), na safari inachukua saa 15. Atakapofika itakuwa saa ngapi? Ukokotoaji huo utakuwa:

1 + 15 mod 12

ambayo ni 4. Katika kisa chake, atawasili saa 4:00 alfajiri (4 a.m.).

Matumizi ya Modulo

Kubaini Namba Shufwa na Witiri (Even and Odd)

Moja ya matumizi ya kimsingi ya opereta ya modulus ni kubaini iwapo namba ni shufwa (even) au witiri (odd). Hii inafanya kazi bila dosari kwa sababu x % 2 daima inarudisha 0 au 1. Namba shufwa daima zitarudisha 0 kwa sababu zinagawanyika kikamilifu kwa 2, huku namba witiri daima zitarudisha baki ya 1.

Matumizi ya kawaida ya hili katika uandishi wa programu (programming) ni kubadilisha rangi za safu mlalo (rows) wakati wa kuonyesha jedwali. Kwa mfano, ikiwa unataka safu mlalo zipishane kati ya bluu isiyokoza na kijivu kisichokoza, unaweza kutumia opereta ya modulo kuangalia papo hapo ikiwa namba ya safu mlalo ya sasa ni shufwa au witiri.

Kubadilisha Vizio (Unit Conversion)

Kubadilisha vizio ni mfano mzuri sana wa matumizi ya vitendo ya operesheni ya modulo. Inatumika mara kwa mara wakati wa kubadilisha kizio kidogo, kama vile dakika, inchi, au sentimita, kuwa kizio kikubwa, kama vile saa, maili, au kilomita. Namba za desimali au sehemu (fractions) sio mara zote husaidia katika hali hizi.

Kwa mfano, tukitaka kupata idadi ya saa katika dakika 373, kuelezea jibu kama saa 6 na dakika 13 ni jambo la kimantiki zaidi kuliko kusema saa 6.2166666666666666667.

Mgawanyo wa kawaida (ulioshushwa chini kuwa namba kamili ya karibu zaidi) hubainisha jumla ya idadi ya saa, huku operesheni ya modulo ikikokotoa dakika zilizosalia. Iwe unashughulika na muda, umbali, shinikizo, nishati, au uhifadhi wa data, unaweza kutumia mbinu hii ya jumla kubadilisha vizio bila shida.

Kubaini Mwaka Mrefu (Leap Year)

Mfano mwingine wa vitendo wa opereta ya modulo ni kukokotoa ikiwa mwaka fulani ni mwaka mrefu (leap year).

Mwaka mrefu ni mwaka wa kalenda ambao una siku ya ziada—Februari 29—katika kalenda ya jua.

Mnamo Januari 1, 45 K.K., kiongozi wa kidikteta wa Roma, Julius Caesar alianzisha kalenda iliyobuniwa Roma na wanaastronomia wa Aleksandria. Kalenda hii ilitegemea ukokotoaji kwamba mwaka wa kiastronomia ni takriban siku 365.25 (siku 365 na saa 6). Ikajulikana kama kalenda ya Julian.

Ili kufidia mabadiliko ya saa sita, Caesar alianzisha mwaka mrefu. Kwa miaka mitatu mfululizo, kulikuwa na siku 365. Katika kila mwaka wa nne (kigawe cha nne), siku moja ya ziada iliongezwa mwezi Februari.

Hata hivyo, kadiri karne zilivyopita, ilibainika kuwa kanuni hii pekee haikuwa sahihi kabisa.

Mwaka wa wastani wa kitropiki (muda kati ya ikwinoksi mbili za machipuko) uko karibu na siku 365, saa 5, na dakika 49. Tofauti kati ya mwaka wa wastani wa kitropiki na mwaka wa kalenda ya Julian ilikuwa takriban dakika 11. Katika kipindi cha miaka 128, dakika hizo 11 zilijumlishwa na kuwa siku nzima ya ziada.

Ili kufidia kosa hili lililojikusanya na kuepuka mabadiliko ya majira ya baadaye, Papa Gregory XIII alifanyia marekebisho kalenda mnamo 1582. Alianzisha kanuni za ziada za mwaka mrefu. Miaka mirefu bado ilikuwa vigawe vya nne, lakini isipokuwa (exceptions) ziliwekwa kwa miaka ambayo ilikuwa vigawe vya 100. Miaka ya karne ingekuwa miaka mirefu tu ikiwa pia inagawanyika kikamilifu kwa 400.

Kanuni za kubaini mwaka mrefu zikawa kama ifuatavyo:

  • Mwaka ambao namba yake ni kigawe cha 400 ni mwaka mrefu.
  • Miaka mingine yote ambayo jumla yake ni kigawe cha 100 si miaka mirefu (kwa mfano, miaka 1700, 1800, 1900, 2100, 2200, 2300).
  • Miaka mingine yote, ambayo namba yake ni kigawe cha 4, ni miaka mirefu.
  • Miaka mingine yote iliyosalia si miaka mirefu.

Hivyo, miaka 1700, 1800, na 1900 si miaka mirefu kwa sababu ni vigawe vya 100 lakini si vya 400. Hata hivyo, miaka 1600 na 2000 ni miaka mirefu kwa sababu ni vigawe vya 400.

Hebu turudi kwenye tatizo letu.

Tunajua kwamba:

  • Ikiwa namba ya mwaka mod 4 = 0, na namba ya mwaka mod 100 ≠ 0 basi ni mwaka mrefu.
  • Ikiwa namba ya mwaka mod 400 = 0, basi ni mwaka mrefu.
  • Katika hali nyingine yoyote, si mwaka mrefu.

Ukiwa na hati (script) rahisi ya Python, unaweza kubaini ikiwa mwaka wowote ni mwaka mrefu au la. Itaonekana hivi:

year = int(input('Enter year: '))

if (year%4 == 0 and year%100 != 0) or (year%400 == 0) :

	print(year, "is a leap year.")

else:

	print(year, "is not a leap year.")

Matumizi maarufu ya opereta ya modulo katika uandishi wa programu ni pamoja na:

  • Kubaini iwapo kitu ni shufwa au witiri;
  • Kufanya operesheni maalum kwa kila kipengee cha N katika orodha;
  • Kuzuia namba ndani ya safu maalum (specific range);
  • Kuzungusha kupitia chaguo zenye kikomo (safu mviringo/circular array);
  • Kugeuza namba (reversing a number);
  • Kubadilisha data ya mstari mmoja kuwa matriki (matrix);
  • Kubaini iwapo safu (arrays) ni matoleo yaliyozungushwa ya kila mmoja;
  • Upangaji wa kurasa (Pagination).

Jenereta za Namba Nasibu (Random Number Generators)

Hesabu za modulo hutumika mara kwa mara katika vifaa vya kompyuta na vifaa vya mawasiliano kuunda namba dhibiti na kuzalisha namba zinazokaribia kuwa nasibu (pseudo-random) ndani ya masafa yenye kikomo. Mfano maarufu sana ni linear congruential generator, mbinu iliyopendekezwa na Derrick Henry Lehmer mnamo 1949.

Mbinu ya linear congruential inafanya kazi kulingana na fomula ifuatayo:

$$X_{n+1} = (a × X_n + c)\mod m$$

Ambapo:

  • m ni modulo,
  • a ni kizidisho,
  • c ni kiongezeko, na
  • X₀ ni thamani ya awali.

Kwa mfano, kwa m = 11, X₀ = 9, a = 9, c = 9, tunapata mfululizo ufuatao wa namba nasibu:

9, 2, 5, 10, 0, 9, 2, 5, 10, 0, 9

Kriptografia (Cryptography)

Wataalamu wa Kriptografia hutegemea sana opereta ya modulo. Inapotumika kwenye namba kubwa sana, modulo husaidia kuunda kile kinachojulikana kama "fomula za mwelekeo mmoja" (one-way functions). Fomula hizi maalum hufanya iwe rahisi kikokotoo kupata jibu katika upande mmoja lakini ni vigumu sana kuirejesha nyuma (reverse-engineer).

Kwa mfano, ukiambiwa kwamba 9 ni jibu la kuzidisha namba yenyewe kwa yenyewe (squaring), unaweza kugundua haraka kwamba namba ya awali ilikuwa 3. Mchakato huo ni rahisi kuufuatilia kuanzia mwanzo hadi mwisho. Hata hivyo, nikikuambia kuwa 9 ni jibu la x mod 29, ni vigumu sana kugundua namba ya awali.

Wataalamu wa Kriptografia hutumia sifa hii ya hisabati kuzalisha namba tasa kubwa sana (giant prime numbers) na kuunda funguo za kiusiri (cryptographic keys) zilizo salama sana.

Hitimisho

Iwe unagawa vitu kwa usawa kwenye makontena, kuangalia ikiwa namba moja inagawanyika kikamilifu na nyingine, au tu kukokotoa muda, operesheni ya modulo inaweza kutumika kote. Katika hali hizi zote, kutafuta baki ni muhimu sawa na kutafuta hisa (quotient) katika operesheni ya kugawanya.

Ingawa matatizo rahisi ya modulus yanaweza kutatuliwa kwa angalizo, ukokotoaji wa mkono unaweza kuwa mgumu haraka kwa kutumia seti kubwa za data. Kwa majibu ya haraka, sahihi, na yasiyo na usumbufu, daima inapendekezwa sana kutumia kikokotoo cha modulus mtandaoni ili kupata suluhisho kamili.