Autor | Zpráva | ||
---|---|---|---|
Alphard Profil |
#1 · Zasláno: 9. 12. 2010, 19:26:25 · Upravil/a: Alphard
Radovan789:
„Budeš muset použít to stou vlastní funkcí protože for ve for nebo while ve for nerozjedeš.“ Chcete tím říct, že cykly nelze zanořovat? Tady [#29] je funkční řešení. Tady [#2] je efektivní řešení. Teď to zbytečně neprotahujte, obvykle se algoritmus na prvočísla vymýšlí na podzim, když to na školách začnou zadávat jako úkoly :-) |
||
DoubleThink Profil * |
#2 · Zasláno: 9. 12. 2010, 19:29:41
Gauner:
Počítat prvočísla jednotkovou iterací je prasárna prasácká. Mnohem rychlejší (i když paměťově náročnější) je zmiňované Eratosthenovo síto. Nicméně - nějak si nedovedu představit důvod, k čemu ti prvočísla budou. Asymetrické faktorizační šifrovací klíče asi negeneruješ, že ne? Radovan789: „for ve for nebo while ve for nerozjedeš.“ Říká kdo? |
||
Radovan789 Profil * |
#3 · Zasláno: 9. 12. 2010, 19:38:07
Tak jsem se trošku splet.
|
||
Darker Profil |
#4 · Zasláno: 9. 12. 2010, 20:02:41 · Upravil/a: Darker
DoubleThink:
„k čemu ti prvočísla budou“ Já jsem taky ve svých začátcích psal program na prvočíselný rozklad. Prostě jen tak, na procvičení... |
||
Marek88 Profil |
#5 · Zasláno: 9. 12. 2010, 20:25:59 · Upravil/a: Marek88
OT: Pro zrychlení algoritmu stačí dělit pouze do druhé odmocnity testovaného čísla.
$limit = sqrt($zkoumaneCislo); while($delitel<=$limit) { ... } |
||
Keeehi Profil |
#6 · Zasláno: 9. 12. 2010, 20:45:58 · Upravil/a: Keeehi
Marek88:
To už je v [#29]. To Alphardovo řešení by šlo ještě zrychlit: Vyzkoušet dělení dvojkou > $dělitel+1 > vyzkoušet dělení trojkou > $dělitel+2 > vyzkoušet dělení pětkou > $dělitel+2 > … |
||
Marek88 Profil |
#7 · Zasláno: 9. 12. 2010, 21:14:33
Keeehi:
Aha... Přiznávám, že jsem toto vlákno nečetl celé... |
||
Spectator Profil |
#8 · Zasláno: 9. 12. 2010, 22:00:52
Marek88:
„stačí dělit pouze do druhé odmocnity testovaného čísla“ přesně tak. |
||
Časová prodleva: 2 roky
|
|||
Prema Profil * |
#9 · Zasláno: 8. 1. 2013, 07:32:22
Ahoj potřeboval bych poradit jak vytvořit v php prvočíselné dvojice aby se vypisovali na obrazovku pod sebou nebo vedle sebe . např 3,5 11,13
|
||
Alphard Profil |
#10 · Zasláno: 8. 1. 2013, 08:09:26
Jak daleko potřebujete jít? Napadá mě buď cs.wikipedia.org/wiki/Eratosthenovo_síto a pak už by bylo snadné najít v něm dvojice. Když mám pole všech prvočísel do nějaké meze, můžu ho projít cyklem a zjišťovat, jestli je následující větší o 2.
Nebo využít vzorec (6n - 1,6n + 1) a pak ověřit, jestli to jsou prvočísla. Pokud jde jen o ukázku algoritmu, je to jedno. Jestli chcete vážně hledat velká prvočísla, nebude PHP ideální. |
||
Časová prodleva: 11 let
|
0