Alkulukutesteistä

Tämän tutkielman tavoitteena on esittää tunnetuimmat alkulukutestit niin matemaattiselta perustoiltaan kuin käytännön toteutuksiltaan ohjelmakoodin muodossa. Alkulukutestit jaotellaan yleisesti deterministisiin ja probabilistisiin testeihin; deterministiset testit antavat täysin varman vastauksen...

Täydet tiedot

Bibliografiset tiedot
Päätekijä: Sormunen, Lauri
Muut tekijät: Matemaattis-luonnontieteellinen tiedekunta, Faculty of Sciences, Matematiikan ja tilastotieteen laitos, Department of Mathematics and Statistics, University of Jyväskylä, Jyväskylän yliopisto
Aineistotyyppi: Pro gradu
Kieli:fin
Julkaistu: 2016
Aiheet:
Linkit: https://jyx.jyu.fi/handle/123456789/48817
_version_ 1826225726993465344
author Sormunen, Lauri
author2 Matemaattis-luonnontieteellinen tiedekunta Faculty of Sciences Matematiikan ja tilastotieteen laitos Department of Mathematics and Statistics University of Jyväskylä Jyväskylän yliopisto
author_facet Sormunen, Lauri Matemaattis-luonnontieteellinen tiedekunta Faculty of Sciences Matematiikan ja tilastotieteen laitos Department of Mathematics and Statistics University of Jyväskylä Jyväskylän yliopisto Sormunen, Lauri Matemaattis-luonnontieteellinen tiedekunta Faculty of Sciences Matematiikan ja tilastotieteen laitos Department of Mathematics and Statistics University of Jyväskylä Jyväskylän yliopisto
author_sort Sormunen, Lauri
datasource_str_mv jyx
description Tämän tutkielman tavoitteena on esittää tunnetuimmat alkulukutestit niin matemaattiselta perustoiltaan kuin käytännön toteutuksiltaan ohjelmakoodin muodossa. Alkulukutestit jaotellaan yleisesti deterministisiin ja probabilistisiin testeihin; deterministiset testit antavat täysin varman vastauksen, mutta ovat suurille luvuille huomattavasti probabilistia testejä hitaampia. Probabilistiset testit ovat nopeita tehdä, mutta saattavat antaa väärän vastauksen. Testien suoritusaikaa mitataan karkeasti niiden suorittamiseksi vaadittavien laskutoimitusten lukumääarällä. Tutkielmassa käsitellään deterministisistä testeistä jakolaskumenetelmä, Wilsonin lause, Prothin testi, Lucasin ja Lehmerin testi ja viimeisenä suhteellisen uusi AKStesti. Yleisesti deterministiset testit eivät ole kovin käyttökelpoisia, sillä niiden suoritusaika kasvaa eksponentiaalisesti testattavan luvun kasvaessa tai ne toimivat ainoastaan tiettyä muotoa oleville luvuille. Probabilistisiin testeihin päädytään hyöyntämällä Fermat’n pientä lausetta käänteisesti, ja tätä kutsutaan Fermat’n alkulukutestiksi. Kyseinen testi ei kuitenkaan toimi kovin luotettavasti: on olemassa Carmichaelin lukuja, jotka hyvin todennäköisesti toteuttavat Fermat’n pienen lauseen yhtälön, vaikka ovatkin yhdistettyjä lukuja. Fermat’n alkulukutestin johdannainen Millerin ja Rabinin testi on kuitenkin erittäin käytetty sen vuoksi, ett tälle pystytääan määrittelemään virheraja, jolla testi antaa vääriä vastauksia. Solovayn ja Strassenin testi on hyvin lähellä kahta viimeksi mainittua testiä, muttei ole aivan yhtä luotettava kuin Millerin ja Rabinin testi. Alkulukutestiä, kuten monia algoritmeja yleensäkin, nimitetään polynomiaikaiseksi, jos siinä vaadittavien laskutoimitusten lukumäärä on polynomi testattavan luvun numeroiden lukumäärän suhteen. Pitkäänn alkulukutestaus ei ollut polynomisessa ajassa ratkaistava ongelma, ennen kuin vuonna 2002 julkaistiin AKS-testi, joka on ensimmäinen deterministinen ja polynomiaikainen alkulukutesti. Tutkielmassa todistetaan lopulta myös tämän testin toimivuus sekä todetaan, että kyseessä todellakin on polynomiaikainen algoritmi.
first_indexed 2023-03-22T09:58:19Z
format Pro gradu
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "Kurittu, Lassi", "language": null, "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Sormunen, Lauri", "language": null, "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2016-02-17T18:36:22Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2016-02-17T18:36:22Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2016", "language": null, "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.other", "value": "oai:jykdok.linneanet.fi:1522472", "language": null, "element": "identifier", "qualifier": "other", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/48817", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "T\u00e4m\u00e4n tutkielman tavoitteena on esitt\u00e4\u00e4 tunnetuimmat alkulukutestit niin matemaattiselta\r\nperustoiltaan kuin k\u00e4yt\u00e4nn\u00f6n toteutuksiltaan ohjelmakoodin muodossa.\r\nAlkulukutestit jaotellaan yleisesti deterministisiin ja probabilistisiin testeihin; deterministiset\r\ntestit antavat t\u00e4ysin varman vastauksen, mutta ovat suurille luvuille huomattavasti\r\nprobabilistia testej\u00e4 hitaampia. Probabilistiset testit ovat nopeita tehd\u00e4,\r\nmutta saattavat antaa v\u00e4\u00e4r\u00e4n vastauksen. Testien suoritusaikaa mitataan karkeasti\r\nniiden suorittamiseksi vaadittavien laskutoimitusten lukum\u00e4\u00e4ar\u00e4ll\u00e4.\r\nTutkielmassa k\u00e4sitell\u00e4\u00e4n deterministisist\u00e4 testeist\u00e4 jakolaskumenetelm\u00e4, Wilsonin\r\nlause, Prothin testi, Lucasin ja Lehmerin testi ja viimeisen\u00e4 suhteellisen uusi AKStesti.\r\nYleisesti deterministiset testit eiv\u00e4t ole kovin k\u00e4ytt\u00f6kelpoisia, sill\u00e4 niiden suoritusaika\r\nkasvaa eksponentiaalisesti testattavan luvun kasvaessa tai ne toimivat ainoastaan\r\ntietty\u00e4 muotoa oleville luvuille. Probabilistisiin testeihin p\u00e4\u00e4dyt\u00e4\u00e4n hy\u00f6ynt\u00e4m\u00e4ll\u00e4\r\nFermat\u2019n pient\u00e4 lausetta k\u00e4\u00e4nteisesti, ja t\u00e4t\u00e4 kutsutaan Fermat\u2019n alkulukutestiksi.\r\nKyseinen testi ei kuitenkaan toimi kovin luotettavasti: on olemassa Carmichaelin\r\nlukuja, jotka hyvin todenn\u00e4k\u00f6isesti toteuttavat Fermat\u2019n pienen lauseen yht\u00e4l\u00f6n,\r\nvaikka ovatkin yhdistettyj\u00e4 lukuja. Fermat\u2019n alkulukutestin johdannainen Millerin ja\r\nRabinin testi on kuitenkin eritt\u00e4in k\u00e4ytetty sen vuoksi, ett t\u00e4lle pystyt\u00e4\u00e4an m\u00e4\u00e4rittelem\u00e4\u00e4n\r\nvirheraja, jolla testi antaa v\u00e4\u00e4ri\u00e4 vastauksia. Solovayn ja Strassenin testi on\r\nhyvin l\u00e4hell\u00e4 kahta viimeksi mainittua testi\u00e4, muttei ole aivan yht\u00e4 luotettava kuin\r\nMillerin ja Rabinin testi.\r\nAlkulukutesti\u00e4, kuten monia algoritmeja yleens\u00e4kin, nimitet\u00e4\u00e4n polynomiaikaiseksi,\r\njos siin\u00e4 vaadittavien laskutoimitusten lukum\u00e4\u00e4r\u00e4 on polynomi testattavan luvun\r\nnumeroiden lukum\u00e4\u00e4r\u00e4n suhteen. Pitk\u00e4\u00e4nn alkulukutestaus ei ollut polynomisessa\r\najassa ratkaistava ongelma, ennen kuin vuonna 2002 julkaistiin AKS-testi, joka on\r\nensimm\u00e4inen deterministinen ja polynomiaikainen alkulukutesti. Tutkielmassa todistetaan\r\nlopulta my\u00f6s t\u00e4m\u00e4n testin toimivuus sek\u00e4 todetaan, ett\u00e4 kyseess\u00e4 todellakin\r\non polynomiaikainen algoritmi.", "language": "", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted using Plone Publishing form by Lauri Sormunen (lakrsorm) on 2016-02-17 18:36:21.811990. Form: Pro gradu -lomake (https://kirjasto.jyu.fi/julkaisut/julkaisulomakkeet/pro-gradu-lomake). JyX data: [jyx_publishing-allowed (fi) =True]", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by jyx lomake-julkaisija (jyx-julkaisija.group@korppi.jyu.fi) on 2016-02-17T18:36:22Z\nNo. of bitstreams: 2\nURN:NBN:fi:jyu-201602171600.pdf: 597704 bytes, checksum: b7455772a53d021968d843bd97c4f39a (MD5)\nlicense.html: 4776 bytes, checksum: b4fa1934eb45d05602da5b368677299a (MD5)", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2016-02-17T18:36:22Z (GMT). No. of bitstreams: 2\nURN:NBN:fi:jyu-201602171600.pdf: 597704 bytes, checksum: b7455772a53d021968d843bd97c4f39a (MD5)\nlicense.html: 4776 bytes, checksum: b4fa1934eb45d05602da5b368677299a (MD5)\n Previous issue date: 2016", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "1 verkkoaineisto (77 sivua)", "language": null, "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.format.mimetype", "value": "application/pdf", "language": null, "element": "format", "qualifier": "mimetype", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "Alkuluvut", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Alkulukutesti", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Miller-Rabin", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Fermat", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Lucas-Lehmer", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "AKS", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "algoritmi", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Alkulukutesteist\u00e4", "language": null, "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "master thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-201602171600", "language": null, "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Pro gradu -tutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Master\u2019s thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Matemaattis-luonnontieteellinen tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Sciences", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Matematiikan ja tilastotieteen laitos", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Department of Mathematics and Statistics", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Matematiikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematics", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.date.updated", "value": "2016-02-17T18:36:22Z", "language": null, "element": "date", "qualifier": "updated", "schema": "dc"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": null, "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_bdcc", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": "fi", "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "masterThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "4041", "language": null, "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "alkuluvut", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "algoritmit", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.format.content", "value": "fulltext", "language": null, "element": "format", "qualifier": "content", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}, {"key": "dc.type.okm", "value": "G2", "language": null, "element": "type", "qualifier": "okm", "schema": "dc"}]
id jyx.123456789_48817
language fin
last_indexed 2025-02-18T10:54:54Z
main_date 2016-01-01T00:00:00Z
main_date_str 2016
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/7e6dc7dc-d718-4c42-8f59-f7ad37611b2b\/download","text":"URN:NBN:fi:jyu-201602171600.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2016
record_format qdc
source_str_mv jyx
spellingShingle Sormunen, Lauri Alkulukutesteistä Alkuluvut Alkulukutesti Miller-Rabin Fermat Lucas-Lehmer AKS algoritmi Matematiikka Mathematics 4041 alkuluvut algoritmit
title Alkulukutesteistä
title_full Alkulukutesteistä
title_fullStr Alkulukutesteistä Alkulukutesteistä
title_full_unstemmed Alkulukutesteistä Alkulukutesteistä
title_short Alkulukutesteistä
title_sort alkulukutesteistä
title_txtP Alkulukutesteistä
topic Alkuluvut Alkulukutesti Miller-Rabin Fermat Lucas-Lehmer AKS algoritmi Matematiikka Mathematics 4041 alkuluvut algoritmit
topic_facet 4041 AKS Alkulukutesti Alkuluvut Fermat Lucas-Lehmer Matematiikka Mathematics Miller-Rabin algoritmi algoritmit alkuluvut
url https://jyx.jyu.fi/handle/123456789/48817 http://www.urn.fi/URN:NBN:fi:jyu-201602171600
work_keys_str_mv AT sormunenlauri alkulukutesteistä