Venäläisen talonpojan kertolasku – ratkaisu

Otetaan esimerkiksi vaikkapa tulo 117\cdot 324. Homma toimii seuraavasti: jaetaan toista luvuista toistuvasti kakkosella. Jakojäännöksestä ei tarvitse välittää, vain kokonaiset lasketaan. Näin edetään, kunnes ollaan päästy ykköseen. Viereiseen sarakkeeseen aletaan puolestaan kertoa toista luvuista toistuvasti kakkosella. Kun ollaan päästy yhtä pitkälle kuin vasemmalla, vedetään yli kaikki ne luvut, jotka vastaavat parillista lukua vasemmanpuoleisessa sarakkeessa. Jäljelle jäävät luvut lasketaan yhteen, ja halutun tulon arvo on saatu. Kysymys kuuluu, miksi tämä menetelmä toimii mille tahansa kokonaislukujen tulolle.

Venäläisen talonpojan kertolaskun taustalla on lukujen binääriesitys. Binäärijärjestelmä toimii aivan kuten meille tuttu kymmenjärjestelmäkin, mutta kymmenen sijaan kantalukuna on luku 2. Kun siis esimerkiksi

    \[17034=1\cdot 10^4+7\cdot 10^3+0\cdot 10^2+3\cdot 10^1+4\cdot 10^0,\]

on binääriesityksessä käytettävissä vain numerot 0 ja 1. Siis vaikkapa 23 on binäärilukuna 10111, koska

    \[23=16+4+2+1=1\cdot 2^4 + 0\cdot 2^3+1\cdot 2^2+1\cdot2^1+1\cdot 2^0.\]

Näyttökuva 2015-8-29 kello 20.37.00

Miten tämä sitten liittyy venäläisen talonpojan kertolaskuun? Ideana on muodostaa toisen tulontekijän binääriesitys ja kertoa sillä tulon toista tekijää. Binääriesityksen muodostaminen luvulle on helppoa. Jaetaan luku ensin toistuvasti kakkosella, kunnes jäljellä on vain ykkönen. Luetaan binääriesitys alhaalta ylöspäin. Jos jaon tulos on ollut pariton (eli jakojäännös on jäänyt), on tarvittava bitti 1, jos taas jako on parillinen, bitiksi valitaan 0. Näin voidaan selvästi toimia riippumatta siitä, mikä kokonaisluku on kyseessä.

Näin toimien huomaame luvun 117 binääriesityksen olevan 1110101, sillä 

    \[117=1\cdot 2^6+1\cdot 2^5+1\cdot 2^4+0\cdot 2^3+1\cdot 2^2+0\cdot 2^1+1\cdot 2^0.\]

Nyt laskemamme laskutoimitus onkin periaatteessa 324\cdot (2^0+2^2+2^4+2^5+2^6) eli

    \[324+324\cdot 4+324\cdot 16+ 324\cdot 32+324\cdot 64,\]

joka tietenkin on oikeanpuoleisten yliviivaamattomien lukujen summa. Hauskaa ja melko helppoa, eikö?

Binääriluvuilla on lukematon määrä sovelluksia. Jos mainitsen niistä yhden, voi kukin päätellä niitä jokusen lisää. Nimittäin kaikki maailman tietokoneet perustuvat binäärijärjestelmään.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *