Hyppää sisältöön
    • Suomeksi
    • In English
Trepo
  • Suomeksi
  • In English
  • Kirjaudu
Näytä viite 
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
JavaScript is disabled for your browser. Some features of this site may not work without it.

C++ -kirjasto suurien lukujen operaatioihin

Pelttari, Joonas (2021)

 
Avaa tiedosto
PelttariJoonas.pdf (552.4Kt)
Lataukset: 



Pelttari, Joonas
2021

Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-06-14
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202106155911
Tiivistelmä
Tässä työssä toteutetaan C++ -ohjelmointikielellä kirjasto, jolla voidaan laskea perusoperaatioita suuremmille luvuille kuin tavallisesti kokonaislukuja (engl. integer) käyttämällä pystyttäisiin. Toteutettu ohjelma käyttää lukujen käsittelyssä ja tallentamisessa merkkijonoja (engl. string), mikä mahdollistaa suurien lukujen operaatioiden laskemisen merkkijonon maksimipituuden ollessa 2³²-1 eli 4 294 967 295 merkkiä. Vertailuna C++ -kielen suurin mahdollinen kokonaisluku on 20 merkkiä pitkä (18 446 744 073 709 551 615).
Toteutetut operaatiot ovat yhteen-, vähennys- ja kertolasku, mutta tämän lisäksi työhön toteutettiin myös mahdollisuus suorittaa Karatsuba-algoritmi eripituisille luvuille ja näin todeta sen toteutuksen olevan linjassa asymptoottisen suoritusajan kanssa.
Työssä käsitellään algoritmien ja niiden pseudokoodien teoriaa sekä toteutetaan C++ -ohjelmointikielelle käsiteltävät algoritmit sillä tavalla, että niiden vertaaminen esitettyyn pseudokoodiin on mahdollista ja helpohkoa C++ -ohjelmointikieltä osaavalle henkilölle. Tämä palvelee työssä lyhyesti mainittua ideaa siitä, että työtä olisi mahdollista hyödyntää toteutettaessa vastaavat operaatiot jollekin toiselle ohjelmointikielelle.
Algoritmien asymptoottiset suoritusajat suuria lukuja käsittelevissä operaatioissa ovat tärkeässä osassa, joten niitä tarkastellaan sekä teoreettisella että käytännön tasolla. Käytännön tarkastelussa suoritetaan toteutettua C++ -ohjelmaa ja lasketaan sieltä saatavat asymptoottiset suoritusajat verraten niitä teoreettisiin. Käytännön tasolla on myös tärkeää huomioida, että parempi asymptoottinen tehokkuus ei välttämättä tee algoritmista toista nopeampaa, koska suuret vakiotermit saattavat jäädä huomioimatta ja siksi käytännössä tehokkuus riippuu käsiteltävien lukujen suuruudesta.
Kokoelmat
  • Kandidaatintutkielmat [11031]
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste
 

 

Selaa kokoelmaa

TekijätNimekkeetTiedekunta (2019 -)Tiedekunta (- 2018)Tutkinto-ohjelmat ja opintosuunnatAvainsanatJulkaisuajatKokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste