https://www.tekniikkatalous.fi/tiede/matemaatikot-ihmeissaan-alkuluvuista-paljastui-uusi-ominaisuus-6534210
(Melko vanha artikkeli vuodelta 2016)
"Matemaatikot ihmeissään: Alkuluvuista paljastui uusi ominaisuus"
"Alkulukujen on uumoiltu olevan monella tavalla satunnaisia. Lukuteorian tutkijat Kannan Soundararajan ja Robert Lemeke Oliver osoittavat kuitenkin tuoreessa artikkelissaan, että ainakaan se, mihin numeroon alkuluvut loppuvat ei ole täysin satunnaista."
"Jos alkuluku esimerkiksi loppuu numeroon 9, on 65 prosenttia todennäköisempää, että sitä seuraava alkuluku loppuu numeroon 1 kuin numeroon 9."
Tuossa: https://arxiv.org/pdf/1603.03720 matemaatikoiden todistus, josta en ymmärrä hölkäsen pöläystä.
-------------------------
Laskeskelin ja taulukoin noita alkuluvun viimeisen numeron ja sitä seuraavan alkuluvun viimeisen numeron määriä ja sain seuraavanlaisen taulukon:
http://petke.info/lukuparit.jpg
Laskin nuo luvut kaikista 10 miljoonaa pienemmistä alkuluvuista.
Sinänsähän tuo on melko yksinkertainen ominaisuus, mikä ollaan nyt vasta löydetty - mutta auta armias, kun se täytyy matemaattisesti todistaa olemassaolevaksi, niin yli mun hilseen menee! Innostuin etsimään muita melko yksinkertaisia ominaisuuksia alle 10 miljoonan alkuluvuista, mutta se ei tietenkään riitä, että niitä algoritmeillä löytäisikin, kun ne pitäisi TODISTAA!
--------------------------
Laskin kuinka monta kolme peräkkäistä alkulukua on, joiden vikat numerot ovat {1,1,1}, {1,1,3}, {1,1,7}...,{9,9,9} (4 * 4 * 4 = 64 kpl) ja sain ao. taulukon. En sitten tiedä, mitä siitä voisi päätellä? - Ainakin sen, että harvinaisin kolmen viimeisimmän luvun järjestys peräkkäisistä alle 10 miljoonan alkuluvuista on {7,7,7}, joita on 3080 kpl ja yleisin {3,9,1}, joita on 15094 kpl. Onhan siinä melkoinen ero.
Koko taulukko html muodossa:
http://petke.info/kombinaatiot.html
Jos jotakuta kiinnostaa REBOL-koodi, jolla taulukon tein niin se näkyy tuolla:
http://petke.info/koodi2.jpg
(Melko vanha artikkeli vuodelta 2016)
"Matemaatikot ihmeissään: Alkuluvuista paljastui uusi ominaisuus"
"Alkulukujen on uumoiltu olevan monella tavalla satunnaisia. Lukuteorian tutkijat Kannan Soundararajan ja Robert Lemeke Oliver osoittavat kuitenkin tuoreessa artikkelissaan, että ainakaan se, mihin numeroon alkuluvut loppuvat ei ole täysin satunnaista."
"Jos alkuluku esimerkiksi loppuu numeroon 9, on 65 prosenttia todennäköisempää, että sitä seuraava alkuluku loppuu numeroon 1 kuin numeroon 9."
Tuossa: https://arxiv.org/pdf/1603.03720 matemaatikoiden todistus, josta en ymmärrä hölkäsen pöläystä.
-------------------------
Laskeskelin ja taulukoin noita alkuluvun viimeisen numeron ja sitä seuraavan alkuluvun viimeisen numeron määriä ja sain seuraavanlaisen taulukon:
http://petke.info/lukuparit.jpg
Laskin nuo luvut kaikista 10 miljoonaa pienemmistä alkuluvuista.
Sinänsähän tuo on melko yksinkertainen ominaisuus, mikä ollaan nyt vasta löydetty - mutta auta armias, kun se täytyy matemaattisesti todistaa olemassaolevaksi, niin yli mun hilseen menee! Innostuin etsimään muita melko yksinkertaisia ominaisuuksia alle 10 miljoonan alkuluvuista, mutta se ei tietenkään riitä, että niitä algoritmeillä löytäisikin, kun ne pitäisi TODISTAA!
--------------------------
Laskin kuinka monta kolme peräkkäistä alkulukua on, joiden vikat numerot ovat {1,1,1}, {1,1,3}, {1,1,7}...,{9,9,9} (4 * 4 * 4 = 64 kpl) ja sain ao. taulukon. En sitten tiedä, mitä siitä voisi päätellä? - Ainakin sen, että harvinaisin kolmen viimeisimmän luvun järjestys peräkkäisistä alle 10 miljoonan alkuluvuista on {7,7,7}, joita on 3080 kpl ja yleisin {3,9,1}, joita on 15094 kpl. Onhan siinä melkoinen ero.
Koko taulukko html muodossa:
http://petke.info/kombinaatiot.html
Jos jotakuta kiinnostaa REBOL-koodi, jolla taulukon tein niin se näkyy tuolla:
http://petke.info/koodi2.jpg
Vastaukset 28
Vanhimmat
Lemke+Oliver+ja+Soundararan+esittävät+vain+konjektuurin,+eivät+todistusta.+Ja+tämä+konjektuuri+sanoo+itse+asiassa,+että+jokainen+mahdollinen+pari+esiintyy+samalla+tiheydellä+(1/phi(q)^r),+kun+tutkittavien+alkulukujen+määrän+annetaan+kasvaa+rajatta,+mutta+aluksi+("pienillä"+n:n+arvoilla,+kun+siis+otetaan+n+ensimmäistä+alkulukua+tarkasteluun)+esiintyy+"harhaa",+joka+johtuu+suurehkosta+sekundaarisesta+termistä.+Termi+1/phi(q)^r+(eli+1+per+mahdollisten+jäännöstuplejen+määrä)+on+siis+dominoiva+ja+vain+se+jää+raja-arvossa+jäljelle.
Ihmettelin+mistä+Tekniikkatalouden+artikkeliin+(tai+Wired:in+artikkeliin,+josta+se+on+suomennettu)+on+laskettu+luku+65+%+enemmän?+Kun+ne+lukumäärät+pareille+(9,+1)+ja+(9,+9)+ekoja+10^8+alkulukua+tarkasteltaessa+ovat
7,991,431
ja
4,622,916,
mutta+Wired:in+artikkelissa+puhuttiinkin+"Among+the+first+billion+prime+numbers,+for+instance,+a+prime+ending+in+9+is+almost+65+percent+more+likely+to+be+followed+by+a+prime+ending+in+1+than+another+prime+ending+in+9",+eli+siinä+olikin+ilmeisesti+tutkittu+10^9:ää+("billion")+ekaa+alkulukua.
Vähän+on+kyllä+huonosti+tokaistu+Tekniikkatalouden+artikkelissa+tuo:
"Jos+alkuluku+esimerkiksi+loppuu+numeroon+9,+on+65+prosenttia+todennäköisempää,+että+sitä+seuraava+alkuluku+loppuu+numeroon+1+kuin+numeroon+9."
Ihan+kuin+puhuttaisiin+kaikista+alkuluvuista+vaikka+koko+jutussa+on+kyse+vain+alkupään+harhojen+heilahteluista.
Mielenkiintoinen+kysymys!+En+minäkään+koko+(arxiv-)+artikkelia+lukenut,+mutta+tuon+verran+minä+olin+siitä+ymmärtävinäni+:D.
No jos tuo on totta, että kyse on vain satunnaisesta alkupään heilahteluista, niin olen kyllä pettynyt Tekniikka ja Talous -lehden artikkeliin. Minua huijattiin! :(
Kyse on tosiaan vain alkupään heilahtelusta, mutta "löydös" onkin juuri se, että se ei ole ihan satunnaista, vaan siinä on tuollaisia systemaattisia harhoja, että jotkin tuplet ovat toisia yleisempiä (esim (9, 1) vs. (9, 9)).
Ja tämä kaikkihan oli siis vasta konjektuurin tasolla, muutenkaan :D.
Mutta Tekniikka & Talous -lehden artikkeli antaa tosiaan vähän väärän kuvan jutusta.
Jos haluat oikeasti jotain tutkia, älä keskity alkupäähän. Ota 100 000:n tai miljoonan näytejoukko eri kohtaa ääretöntä lukuavaruutta. Aloita vaikka miljardista, ja sitten biljoonasta jne...
Vertaa tuloksia. Alkulukujen suhteellinen määrä vähenee lukujen kasvaessa, joten tulokset eivät varmasti ole samoja.
En voi tutkia mielivaltaiselta väliltä, kun käytän Eratostheneen seulaa alkulukujen tuottamiseen ja siinä tarkastelu täytyy aloittaa luvusta 2. Se tuotti 10 miljoonaa pienemmät alkuluvt vaivaisessa 22 sekunnissa. Muut tavat ovat tuskastuttavan hitaita.
https://fi.wikipedia.org/wiki/Eratostheneen_seula
Höpö höpö! Käytä Python:ia. Voit tehdä ihan mitä vain noin kymmenen rivin ohjelmalla. Voit tutkia melivaltaisen isoja lukuja täysin automaattisesti. Hidastuu tietysti lukujen kasvaessa yli 64-bittisiksi ja lisää hidastusta tulee yli 128-bittisissä. Kaikki tapahtuu automaattisesti. Lataa tarvittavat ohjelmistopaketit, esim. gmpy2.
Vai että höpö höpö. En osaa käyttää ohjelmakirjastoja enkä Pythonilla ole koskaan ohjelmoinnut. Joskus C:llä olen yrittänyt käyttää ohjelmakirjastoja - siis, jotta saisin ominaisuuksia käyttöön, joita ei peruskielessä ole - mutta ohjelmat eivät menneet läpi edes käännösvaiheesta. Ohjelmoin REBOL:lla. Tai no, täytyy miettiä - jospa joku päivä innostuisin kokeilemaan Pythonia. Olisihan tuo mielenkiintoinen tutkimusaihe. Ai on siinä siis ihan peruskielessä mahdollisuus käyttää mielivaltaisen suuria lukuja? Ei tarvitsisi käyttää edes mitään ohjelmakirjastoja?
Ai niin, ja tietokoneeni muistikapasiteettikin tulee vastaan. Pystyin tällä koneella laskemaan vain kaikki alle 10 miljoonan alkuluvut.
Gmpy2:n next_prime(x) on supertehokas. Isoja alkulukuja käsittelevissä nopeutetuissa kirjasto-ohjelmissa on aina häviävän pienen pieni virhemahdollisuus. Eli pitää hieman ymmärtää mitä tekee. Ei mitään merkitystä tälläisissä pienimuotoisissa tilastollisissa laskuissa.
Tuo erittäin pieni virhemahdollisuus kokee vain yli 64-bittisiä lukuja (18x10^18). Ja aina kun mennään alkuluvuissa paljon yli 64-bitin, alkaa tulla kotikoneissa selviä hitausongelmia. Nuo kirjasto-ohjelmat siirtyvät kyllä automaattisesti multiprocessing-tilaan, mutta se tuhlaa tehoa nopeuden kustannuksella.
Ei niitä alkulukuja mihinkään tarvitse tallentaa. Et tarvitse juuri lainkaan muistia. Voit laskea helposti vaikka 1000 miljoonalla alkuluvulla. Kannattaa pysytellä aluksi 64-bittisisä luvuissa. Niissäkin riittää pureskeltavaa koneesi eliniäksi. 18 triljoonaa.
No, en sitten ehkä Pythonilla jos sen ohjelmakirjastoissa on alkulukuja käsitteleviä funktioita, mutta jos haluan laskea alkuluja Eratostheneen seulalla ja laskea esimerkiksi kaikki 10 miljoonaa pienemmät alkuluvut niin minun on tehtävä 10 miljoona alkioinen true/false taulukko. Vähän yli 10 miljoonaa arvoilla ohjelma kaatui ajo-aikaiseen virheeseen: "Not enough Memory"
Pythonin perusteet on äärimmäisen helppo oppia. Et välttämättä tarvitse mitään ylimääräisiä kirjasto-ohjelmia. Ne ovat tehty vain nopeuttamaan määrättyjä laskutoimituksia. Esim. luvun toteaminen alkuluvuksi voidaan tehdä tyhmästi hitaasti tai erittäin älykkäitä monimutkaisia algoritmeja käyttäen nopeasti.
Itse käytän Linux Ubuntua. Siinä Python (kolme eri versiota) valmiiksi asennettuna. Windowsiin se pitää aina erikseen asentaa. Onnistuu helposti. Netti on täynnä ohjeita. Eri Python versiot eivät ole keskenään yhteensopivia ja ne vaativat aina niille käännetyt ohjelmakirjastot. Kannattanee aloittaa uusimmasta eli Python 3:sta. (Sen kanssa ei tietysti vielä toimi jotkut ihan kaikki vanhat hyvät kirjasto-ohjelmat, joten ...)
Minusta Pythonilla koodattu Atkinsin seula ei vie niin paljon muistia. Kokeilin laskea arvoon 20 miljoonaa asti ja se suoriutui onnistuneesti, Koodi sivulta https://stackoverflow.com/questions/21783160/sieve-of-atkin-implementation-in-python
Jos sinulla olisi käytössä kirjastofunktio nextprime(x) (tai next_prime(x)), miten tekisit ohjelmasi?
x = 9876543210123456789
Tähän joku silmukkarakenne
p = next_prime(x) ¤Haetaan seuraava x:ää suurempi alkuluku
...
x = p
Tietysti on hyvä opetella tekemään ensin itse kaikki älykkäästi pienillä luvuilla nopeasti muistia tuhlaten, mutta aina tulee rajat vastaan. Sitten pitää vaan luottaa uusien 64-bittisten prosessoreiden äärimmäiseen nopeuteen ja uskoa, että monet kirjasto-ohjelmat on tehty paremmin kuin mihin itse pystyisi. Saattaa tuhlautua muutama minuutti aikaa, mutta sitä riittää! Jos on käytössä monta ydintä, niihin voi käynnistää ohjelman eri alkuarvoilla.
En pääse alkua pidemmälle. Tämä ohjelma ei tulosta mitään vaikka sen pitäisi. Väliltä 100000000000000 ...10000000000010 löytyvät alkuluvut:
100000000000031
100000000000067
100000000000097
100000000000099
Mutta mitään ei tulostu esim. parin (1,7) eikä muunkaan kohdalla.
import gmpy2
from gmpy2 import mpz
from gmpy2 import mpfr
eka = mpz(100000000000000)
toka = mpz(100000000000100)
vikat = [1,3,7,9]
for luku1 in range(mpz(eka), mpz(toka)):
if gmpy2.is_prime(luku1):
print luku1
for vika1 in range(0, 4):
for vika2 in range(0, 4):
print(vika1, vika2)
for luku1 in range(mpz(eka), mpz(toka)):
if gmpy2.is_prime(luku1):
string1=str(luku1)
vikamrk1=string1[len(string1)-1]
if vikamrk1 == str(vika1):
luku2 = gmpy2.next_prime(luku1)
string2=str(luku2)
vikamrk2=string2[len(string2)-1]
if vikamrk1==vikamrk2:
print luku1, luku2, vika1, vika2
Siis väliltä 100000000000000...100000000000100
Koodi+siisteyti+paljon+modulos+%+operaattorilla,+mutta+ei+se+vieläkään+toimi.
import+gmpy2
from+gmpy2+import+mpz
eka+=+mpz(100000000000000)
toka+=+mpz(100000000000100)
vikat+=+[1,3,7,9]
for+luku1+in+range(mpz(eka),+mpz(toka)):++
if+gmpy2.is_prime(luku1):
print+luku1
for+vika1+in+range(0,+4):
for+vika2+in+range(0,+4):
print(vika1,+vika2)
for+luku1+in+range(mpz(eka),+mpz(toka)):
if+gmpy2.is_prime(luku1):
if+vika1+==+luku1+%+10:
luku2+=+gmpy2.next_prime(luku1)
if+vika2+==+luku2+%+10:
print+luku1,+luku2,+vika1,+vika2
Kokeilepa+näin:+http://tpcg.io/vcW62X
Tekeekö+haluamasi+eli+halusitko+tulostaa+ne+vierekkäiset+alkulukuparit+ja+niiden+vikat+numerot?
Virhe+ylläolevassa+taitaa+olla+siinä,+että+testaat
if+vika1+==+luku1+%+10:
mutta+eihän+sinun+tarvitse+testata+tuota++vaan+vain+katsoa+mitkä+vikat+luvut+on.
Tuossa+noin+testaamisessa+käy+niin,+että+muuttuja+vika1+on+jäänyt+edellisessä+luupissa+(jossa+ilmeisesti+halusit+tulostaa+kaikki+mahdolliset+parit)
for+vika1+in+range(0,+4):
++++for+vika2+in+range(0,+4):
+++++++++print(vika1,+vika2)
viimeiseen+sijoitettuun+arvoon,+samoin+kuin+muuttuja+vika2:kin,+joten+sen+takia+mitään+ei+tulostu,+kun+tuolla+välillä+ei+ole+yhtään+(9,9)+paria.
Ja+joo,+täällä+forumilla+ylimääräiset+väli-merkit+poistuvat,+joten+ainakaan+Python+koodia+on+tänne+hankala+postata.+Mutta+tuolla+linkatulla+sivulla+sitä+voi+jopa+suorittaa+(klikkaa+Execute+ylävasemmalla).
Muuten,+ehdotus+tuohon+koodiin:++käytä+while-luuppia+ja+pidä+muistissa+missä+luvussa+olet+menossa.+Kun+otat+seuraavan+alkuluvun,+niin+jatka+siitä.+Testaa+jos+mennään+yli+loppuarvon+ja+breikkaa+luuppi+siinä+tapauksessa.
Jotai niinkun tähän tyyliin: http://tpcg.io/stl5x1
Tällä tavoin voisi tallentaa löytyneiden parien lukumäärät Pythonin dict:iin: http://tpcg.io/5rYcQ8
Kiitoksia! Nyt sun koodi löytää lukuparit :) Nyt voin alkaa taulukoimaan ja "tilastoimaan" niitä.
Joo, sähän teitkin sitten koko koodin ja veit multa ohjelmointi ilon :) Meillä meni vähän ristiin kommentoinnit. Ehdit juri ennen mun seuraavaa kommenttia julkaisemaan koko koodin - siis sen lukuparien tilastoinninkin.
Perättäisten+alkulukujen+viimeisten+numeroiden+tilasto+väliltä+kvadriljoona+(10+potetenssiin+24)+ja+(kvadriljoona+++miljardi).+
(7,+3)+:+1166576
(9,+3)+:+1144502
(1,+3)+:+1220574
(3,+7)+:+1188492
(9,+1)+:+1259451
(7,+1)+:+1141032
(3,+1)+:+1129175
(7,+7)+:+991558
(9,+9)+:+995211
(3,+9)+:+1213985
(1,+9)+:+1096316
(1,+7)+:+1212767
(3,+3)+:+990388
(9,+7)+:+1130502
(1,+1)+:+995038
(7,+9)+:+1224154
Todennäköisyys+että+9:n+seuraisi+1+useammin+kuin+9+on+pienentynyt+oleellisesti.+Tässä+enää+17%+suurempi+on+tn.+sille+että+seuraa+9(mikäli+osasin+prosenttilaskun+oikein).+Mun+konjektuuri+on,+että+eri+peräkkäisten+lukuparien+määrät+lähestyvät+toisiaan+kun+alkulukujen+määrä+lähestyy+ääretöntä+;)+.
Artikkelista miinuksia Tekniikka&Talous -lehdelle, siitä saa kuvan, että noin olisi todistettu asian olevan, vaikka kyse on äärellisestä alkupään joukosta.
No tiedättekös Ulamin spiraalin?
https://en.wikipedia.org/wiki/Ulam_spiral
"Todistaako" se teidän mielestä, että alkuluvut eivät ole niin satunnaisia kun ollaan luultu?
Tein 1000*1000 taulukon ja siinäkin näyttävät tuollaiset vaakaviivat kulkevan läpi koko otannan.
http://petke.info/kuva.png
Tekniikka ja Talous -lehden uutistoimittajat ovat täysin ammattitaidotomia ja englantia osaamattomia. Suurin osa ainakin verkkolehden "ihmeuutisista" on suureksi osaksi puppua. Satoja erilaisia "keksintöjä" (akuista, metalleista, jne.), joista ei kirjoiteta missään muualla. Perustuvat ymmärtämättömyyteen asioiden tarkoitushakuiseen vääristelyyn. Tekstejä on lyhennetty ja hävitetty faktat.
Ei kiinnosta. Turhaa hössötystä