keskiviikko 19. heinäkuuta 2017

Luvun monet kasvot

Kuinka paljon numeroita on?

Pienenä olisin vastannut "äärettömästi". Numeron ja luvun eron oppineena olisin vastannut "kymmenen, nollasta yhdeksään". Ja nyt vastaan: kuinka monta vain haluat. Tässä tekstissä puhutaan lukujen kirjoittamisesta. Aloitamme tutuista numeroista ja siirrymme tietokoneen ykkösten ja nollien kautta yhä oudompiin lukujärjestelmiin.

"Ihan tavalliset" luvut

Kun kirjoitamme lukuja, käytämme yleensä kymmenkantaista paikkajärjestelmää. Kymmenkanta tarkoittaa, että numeroita on kymmenen; paikkajärjestelmä sitä, että numeron arvo riippuu sen sijainnista luvussa. Vaikkapa luvussa $121.3$ ykkönen tarkoittaa sekä sataa että yhtä. Luvun arvo saadaan lausekkeesta

\[ 1 \cdot 10^2 + 2 \cdot 10^1 + 1 \cdot 10^0 + 3 \cdot 10^{-1}. \]

Paikkajärjestelmällä laskeminen on järkevää ja loogista, joten siitä poikkeavia systeemeitä ei nykyään juuri näe. Poikkeuksena ovat roomalaiset numerot, joissa sadalle, kymmenelle ja ykköselle on omat numeronsa. $121$ olisi $\text{CXXI}$ eli $100 + 10 + 10 + 1$. Paikkajärjestelmän suosiolle on hyvä syy: roomalaisilla numeroilla ei voi kirjoittaa desimaaleja ja laskeminen on muutenkin tuskallista! Roomalaiset numerot ovat glorifioitu tukkimiehen kirjanpito.

Muun muassa egyptiläiset hieroglyfit ovat niin ikään ei-paikkajärjestelmä. Samaan aikaan kuitenkin babylonialaiset käyttivät paikkajärjestelmää, kuten myös itsenäisesti laskemisen keksineet mayat. Mutta babylonialaisten kantaluku olikin 60 ja mayojen 20. (Lisää: Miksi ympyrässä on 360 astetta?)

Egyptiläisiä hieroglyfejä, joista osa esittää lukuja.

(Olaf Tausch/Wikimedia Commons. CC-BY 3.0. Rajattu.)

Erilainen kantaluku

Kaikkihan tietävät, että tietokoneen sisällä pyörii ykkösiä ja nollia (paitsi Matrixissa ja sen jatko-osassa Abitissa). Kävin binäärijärjestelmän toimintaa läpi pitkä(veteise)n tietokonesarjani alkupuolella, mutta sama tulee vielä tiivistettynä tässä:

Binäärin kantaluku on 2, koska siinä on kaksi numeroa. Aivan samoin kuin edellisessä esimerkissä binääriluvun $101.1_2$ arvo saadaan lausekkeesta

\[ 1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0 + 1 \cdot 2^{-1}. \]

Tutummin ilmaistuna luku on siis $5.5$. Lausekkeita vertaamalla on helppoa huomata, että numeroiden "suuruus" kerrotaan kantaluvulla aina vasemmalle mennessä. Kymmenjärjestelmässä jokainen numero on kymmenen kertaa oikeanpuoleista arvokkaampi, binäärissä kaksi kertaa. Pilkun jälkeisissä numeroissa kantaluvun eksponentti on negatiivinen: kymmenesosia ja sadasosia, tai puolikkaita ja neljänneksiä.

Kantaluvuksi voidaan valita mikä vain positiivinen kokonaisluku hyvin tuloksin. Esimerkiksi kantaluvulla 3 syntyy ternäärijärjestelmä, jossa on numerot nollasta kahteen. Kymmenen yläpuolella puolestaan otetaan uusia numeroita käyttöön. Heksadesimaalijärjestelmä on yleisesti käytetty, koska se sopii tietotekniikkaan. Sen kantaluku on 16 ja se muodostuu numeroista 0–9 ja kirjaimista A–F. A vastaa kymmentä ja F viittätoista.

Heksadesimaalin suosio perustuu siihen, että $16 = 2^4$. Tämän yhteyden takia yksi heksadesimaalinumero vastaa aina neljää binäärinumeroa. Se on siis huomattavasti tehokkaampi tapa syöttää binäärilukuja. Niihin törmääkin sekä ohjelmoidessa että arjessa: katso wifi-reitittimen tarraa ja löydät heksadesimaalia. (Vähemmän onnekkaana tapana niihin voi törmätä myös virhekoodeissa.)

Aiheeseen palatakseni, toissa kappaleessa on virhe. Ei ole mitään syytä, miksi kantaluvun pitäisi olla positiivinen. Nolla ja plus miinus ykkönen eivät oikein sovi sellaisenaan kantaluvuiksi, mutta kokonaisluvut miinus kakkosesta alaspäin kelpaavat todellakin.

Negatiivinen kantaluku

Miinus kakkoseen perustuvaa lukujärjestelmää kutsutaan negabinääriksi. Siinä on edelleen kaksi numeroa, nolla ja ykkönen, mutta niiden merkitys on erilainen. Koska miinus kakkosen potenssit vuorottelevat negatiivisen ja positiivisen välillä, joka toinen numero kasvattaa ja joka toinen pienentää lukua. Esimerkiksi lievästi tutunnäköinen $101.1_{-2}$ on

\[ 1 \cdot (-2)^2 + 0 \cdot (-2)^1 + 1 \cdot (-2)^0 + 1 \cdot (-2)^{-1}. \]

Lausekkeen arvoksi tulee $4 - 0 + 1 - 0.5 = 4.5$. Edellisessä osassa mainittu $5.5$ pitäisi puolestaan kirjoittaa $11010.1_{-2}$.

Tässä kohtaa saattaisi olla aiheellista kysyä, onko negabinääri käyttökelpoinen lukujärjestelmä. Voiko siinä esittää kaikki mahdolliset luvut? Entä voiko jonkun luvun kirjoittaa useammalla kuin yhdellä tavalla?

On selvää, että kymmenkannassa ensimmäinen ehto täyttyy eikä kaikille luvuille esitystapa edes ole äärettömän pitkä. (Mutta lähes kaikille se on.) Yllättävämpää on, että kymmenkannassa kaikki päättyvät luvut voi kirjoittaa kahdella tavalla: esimerkiksi $0.999\ldots = 1$. Yleensä tätä ei kuitenkaan oteta huomioon, joten kymmenjärjestelmää voi pitää yksikäsitteisenä. Miten on negabinäärin?

Kaikki kunnossa: jokainen luku on esitettävissä ja yksikäsitteinen samalla tavalla. Negabinääri on kyllä sen verran kömpelö, etten oikein usko sen — kuten myöskään negatiivisen kymmenjärjestelmän — menestykseen arkielämässä, mutta teoreettisella tasolla se toki on kiehtova.

Sen sijaan eräs toinen lukujärjestelmä on kiinnostava tietotekniikan kannalta. Tasapainotettu ternääri sisältää numerot -1, 0 ja 1. Ensimmäistä merkitään esimerkiksi $\bar{1}$. Muuten periaate ja laskusäännöt ovat samat kuin ternäärijärjestelmässä.

Negatiivisten lukujen käsittely tekee tästä kiinnostavan. Yleensähän nollaa pienempiä lukuja merkitään eteen asetetulla miinuksella, mutta nyt toimitaan toisin. Desimaaliluku 24 kirjoitetaan tässä järjestelmässä $10\bar{1}0$. Puolestaan desimaaliluku -24 kirjoitetaan $\bar{1}010$ — eli kääntämällä ykköset toisentyyppisiksi! Etumerkkiä ei tarvita!

Tätä järjestelmää käytettiin joissakin laskimissa, joista tunnetuin on neuvostoliittolainen tietokonemalli Setun. Aikanaan se oli binäärikoneita tehokkaampi, mutta sen tuotanto jäi vähäiseksi ja rautaesiripun taakse. Nykyään binäärijärjestelmä on käytössä kaikkialla, mutta tasapainotetulla ternäärillä voi olla sovelluksia vielä tulevaisuudessa. Ainakin se on kiinnostava historiallinen oikku.

Laser!

Optinen tietokone voisi hyödyntää valon polarisaatiota numeroiden $1$ ja $\bar{1}$ erottamiseen.
(Ben Williams/Flickr. CC-BY-NC 2.0. Rajattu.)

Vielä oudommat lukujärjestelmät

Itse asiassa vielä korjattukin kappale on väärässä. Ei ole mitään syytä, miksi kantaluvun pitäisi olla kokonaisluku.

Yksi suosittu valinta kantaluvuksi on kultainen leikkaus $\phi$, jolloin numeroiksi valitaan 0 ja 1. Kuten linkissä mainitaan, kultaisella leikkauksella on joitakin hauskoja ominaisuuksia, jotka tekevät siitä kätevän kantaluvun. Vaikkapa kakkonen kirjoitettaisiin $10.01_\phi$, koska $2 = \phi + \phi^{-2}$. Edelleen kaikki luvut ovat kirjoitettavissa, mutta ne eivät olekaan yksikäsitteisiä: joillekin luvuille on monta esitystapaa. Kaksoiskappaleet voidaan kuitenkin sulkea pois lisäämällä sääntöjä lukujen esittämiselle.

Vähän eksoottisempia valintoja ovat vanhat kunnon $e$ ja $\pi$. Näissä kantalukujärjestelmissä on se erikoinen ominaisuus, että niissä kokonais- tai rationaaliluvuilla ei ole päättyvää esitystapaa. Tämä on siksi, että $e$ ja $\pi$ ovat transsendenttejä — ne eivät ole minkään äärellisen kokonaislukupolynomin ratkaisu. Ikävä kyllä jo pariin kertaan nähty lauseke

\[ a_nk^n + a_{n-1}k^{n-1} + \dots + a_{m+1}k^{m+1} + a_mk^m = L \]

on sellainen polynomi. Jos $L$ on toivottu lukuarvo ja $a_n$ kumppaneineen sen numerot halutussa lukukannassa, saadaan yhtälö, jossa tuntemattomana on kantaluku $k$. Jos ratkaisuksi saataisiin $k=\pi$, kyseessä olisi paha ristiriita sen kanssa, että $\pi$ ei voi olla tuontyyppisen yhtälön ratkaisu. Siksi polynomin täytyy olla äärettömän pitkä tai kokonaan olematon. Ehkä tämän takia $e$-simaaliluvut eivät ole juttu.

Vielä yksi erikoinen lähestymistapa on käyttää eri kantalukua kullekin numerolle. Yksi menetelmä perustuu kertomaan: oikeanpuoleisin numero kerrotaan luvulla $1!$, seuraava luvulla $2!$ ja niin edelleen. Huutomerkkiä edeltävä luku on suurin sallittu numero kyseiselle paikalle. Vaikkapa luku $301_!$ tarkoittaa siis

\[ 3 \cdot 3! + 0 \cdot 2! + 1 \cdot 1! \]

eli tuttavallisemmin 19. Ehkä hieman yllättävänä piirteenä tässäkin systeemissä jokainen kokonaisluku on esitettävissä yksikäsitteisesti! Tällä on jopa jotain käytännön merkitystä kombinatoriikan alalla.

Mutta entäpä jos kantaluku ei olisikaan tavallinen luku vaan sopivasti valittu kompleksiluku? Se nähdään ensi viikolla.

Ei kommentteja:

Lähetä kommentti

Kommentit ovat moderoituja — yritän hyväksyä kommenttisi mahdollisimman pian. Voit kirjoittaa kommenttiin LaTeX-koodia tai yksinkertaista HTML-merkintää: lue lisää Kommentointi-sivulta.