Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 06. 06. 2013 19:18

Snay
Zelenáč
Příspěvky: 4
Reputace:   
 

Eratosthenovo síto v wxmaxima

Zdravím všechny,
potřebovala bych poradit s jedním malým problémem. Mám naprogramované Eratosthenovo síto v Maximě. Pokud však zadám jako horní hranici číslo větší než 100.000 nezobrazí se vůbec nic nebo hlaška: Výraz je příliš dlouhý pro zobrazení. Nevíte jak tomuto zabránit??
Předem děkuji za pomoc :)

Offline

  • (téma jako vyřešené označil(a) Snay)

#2 06. 06. 2013 19:34

Arabela
Příspěvky: 1927
Reputace:   181 
Web
 

Re: Eratosthenovo síto v wxmaxima

Ahoj ↑ Snay:,
ako bežný užívateľ tomu zabrániť nemôžeš, musíš prijať toto obmedzenie. Systémový programátor by situáciu vyriešiť vedel zásahom do systému.


server.gphmi.sk/~domanyov

Offline

 

#3 07. 06. 2013 08:44

Snay
Zelenáč
Příspěvky: 4
Reputace:   
 

Re: Eratosthenovo síto v wxmaxima

↑ Arabela:↑ Arabela:
Děkuji mockrát za odpověď. Budu se tedy muset spokojit s tím, co mám :)

Offline

 

#4 07. 06. 2013 20:25

kaja.marik
Veterán
Příspěvky: 1915
Reputace:   57 
 

Re: Eratosthenovo síto v wxmaxima

↑ Snay:
Mozna by se dalo nepouzit wxmaximu ale maximu.
A je mi divne, ze pri praci s cisly okolo 100 000 jsou problemy, protoze to je sest znaku.
Nesnazite se tisknout vsechno na jeden radek?

Offline

 

#5 12. 06. 2013 06:49

Snay
Zelenáč
Příspěvky: 4
Reputace:   
 

Re: Eratosthenovo síto v wxmaxima

↑ kaja.marik:
Na výpis využívám příkazu makelist(b,b,1,N). Nevím jaký jiný příkaz použít, protože pak se využívá příkazu delete pro vymazání složených čísel.

Offline

 

#6 12. 06. 2013 10:19

kaja.marik
Veterán
Příspěvky: 1915
Reputace:   57 
 

Re: Eratosthenovo síto v wxmaxima

Tak asi se nemusi tisknout cely ten seznam najdenou, ale jenom ulozit do nejake promenne a potom prochazet ten seznam a vypisovat kazdou polozku na samostatny radek.

Offline

 

#7 12. 06. 2013 15:50

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 864
Reputace:   61 
 

Re: Eratosthenovo síto v wxmaxima

Zdravím,
podle Wikipedie jsem sestavil tento kód:

Code:

Eratos(n):=block([i, j, L, m],
    m: ceiling(sqrt(n)),
    L: makelist(if oddp(i) then i else 0, i, 1, n),
    L[1]: 0,
    L[2]: 2,
    for i: 3 thru m step 2 do (
        if is(L[i] # 0) then (
            L[2*i]: 0,
            for j: 3*i thru n step 2*i do (
                L[j]: 0
            )
        )
    ),
    delete(0, L)
)$
compile(Eratos);

Doba výpočtu je velmi závislá na velikosti $n$.
Pro $n = 30000$ trvá výpočet 3 sekundy, pro $n=100000$ již 35 sekund.

Pro větší $n$ jsem to raději nezkoumal.

Pro porovnání:

Code:

Prime_List(n):=block([i, L],
    L: makelist(if primep(i) then i else 0, i, 1, n),
    delete(0, L)
)$
compile(Prime_List);

Tento kód pro zobrazení prvočísel do 100000 trvá pouze 0.3 sekundy, ale pracuje na jiném principu.

Pokud chceš řešit proč tvůj kód nefunguje jak má, měl by si jej sem umístit, jinak budeme jen hádat...


LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson