Þar sem þetta áhugamál er gjörsamlega steindautt þá ákvað ég að skrifa litla grein um lítið hjálpartæki sem tölvunarfræðingar eru sífellt að nota.

Það er hinn unaðslegi Modulus. Modulus er afskaplega einfalt þegar maður þekkir það, eins og allt annað náttúrulega, en allur galdurinn á bak við hann er að hann deilir tölum og skilar þér til baka afganginum, ekki útkomunni.

Sem dæmi, 4 Mod 2 er jafnt og 0, en af hverju? Jú vegna þess að 4 deilt með 2 er 2 slétt, það er að segja dæmið gengur algjörlega upp.

3 Mod 2 aftur á móti er ekki eins einfalt, 2 gengur ekki upp í 3, það er nokkuð ljóst. Næsta tala fyrir neðan 3 sem 2 gengur upp í er 2, mismunurinn á 3 og 2 er 1, og því mun 3 Mod 2 vera jafnt og 1.

15 Mod 3 er jafnt og? Nú skaltu prófa að reikna þetta sjálf/ur til að sjá hvort þú hafir náð tökum á þessu.


Júbb, rétt hjá þér, 15 Mod 3 eru vitanlega 0 þar sem 3 gengur 5 sinnum upp í 15 slétt.

Annað dæmi, 13 Mod 3?



Já mikið rétt, auðvitað 1 þar sem 3 * 4 eru jafnt og 12 sem er næsta tala við 13 sem 3 gengur upp í. Mismunurinn frá 13 og 12 er 1.

Nú ættu allir að vera búnir að ná tökum á þessu, en hvernig og til hvers notar maður þetta? Modulus er notað í ýmsum tilgangi, algengast er kannski til að finna út hvort tala sé oddatala eða slétt tala, en þá getur maður moddað töluna sem þú ert með – með tveimur, ef afgangur kemur þá er talan oddatala, annars slétt tala.

Dæmi um forritsbút (Athugið að operator-inn fyrir Modulus er ‘%’):

Bool ErSlettTala(int iTala)
{
return (iTala % 2 == 0);
}

Slétt tala sem er deilt með tveimur hefur aldrei afgang eins og við vitum, þannig virkar þessi bútur.

Svo þarf náttúrulega ekki neinn snilling til að sjá að Modulus virkar eingöngu á heiltölur (integer breytur) þar sem rauntölur hafa ekki afgang, heldur “fraction” (hvernig er það á íslensku? brot?)

Að lokum, ef það verður ekki komin inn önnur grein hérna fyrir næstu helgi, þá læt ég ykkur fá aðra Modulus grein! Já þetta er hótun!

(P.S ég biðla til herra hugameister um að greinin brenglist ekki of mikið).