Sum 1 over primtallene

Det er god trening å prate matematikk. Her er det fritt fram for alle. Obs: Ikke spør om hjelp til oppgaver i dette underforumet.

Moderators: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa

Post Reply
Nebuchadnezzar
Fibonacci
Fibonacci
Posts: 5648
Joined: 24/05-2009 14:16
Location: NTNU

Nå bare på gøy fant jeg ut at jeg ville lage en funksjon som tok inn et tall n. Og fant ut hvor mange 1/primtall ledd, vi må ta inn for å komme over dette tallet.

I klartekst. Finne en n slik at

[tex]\sum_{i = 1}^{n} \: \frac{1}{p_t} \: > \: k[/tex]

der k, er tallet vi skriver inn i funksjonen vår. Jeg klarte faktisk å lage en slik kode. Men den er mildt sagt treg. Vist under..

Code: Select all

function Y = Primtall(n)

if n==1 
    Y = 2;
    return
end

if n < 1 || round(n)~=n
    return
end

j = 2;
u = 0;

while u < n
    
    T = primes(j);
    u = numel(T);
    j = 1 + j;

end

Y = T(numel(T));
Og her er den direkte koden. Ovenfor er bare en funksjon for å finne det i`te primtallet. Er sikkert bedre måter å gjøre dette på-

Code: Select all

function Y = E(u)

sum = 0
n = 0

while sum < u
    
    n = n + 1
    
    sum = sum + 1/(Primtall(n))
    
end
    
Y = n;
Noen bedre måter å gjøre dette på ?
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
drgz
Fermat
Fermat
Posts: 757
Joined: 24/12-2008 23:22

Last først ned og legg til i Matlab path: http://www.mathworks.com/matlabcentral/ ... extprime.m

Code: Select all

function [nP ipS pp] = nPrimesReq(k)
n = 3;
p = primes(n);

while 1
    n = nextprime(n,'above');
    p = [p n];
    ps = cumsum(1./p);
    idx = find(ps>k,1,'first');
    if isempty(idx)
        continue;
    else
        ipS = ps(idx);
        nP = idx;
        pp = p(idx);
        break;
    end
end
Så bør du ha i bakhodet at hvis k er større enn et nokså lite tall så vil det ta ca en million år å kjøre koden (mulig det ikke eksisterer en slik n som kan finnes innen rimelig tid når k blir for høy. Elementene man legger til i summen vil jo bli forsvinnende små etterhvert).
Nebuchadnezzar
Fibonacci
Fibonacci
Posts: 5648
Joined: 24/05-2009 14:16
Location: NTNU

ker et "nokså" lite tall. Nemlig e.
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
drgz
Fermat
Fermat
Posts: 757
Joined: 24/12-2008 23:22

[nP ipS pp] = nPrimesReq(exp(1))
nP = 10997
ipS = 2.7183
pp = 116423

;)
Post Reply