For cyklus s opravdu hodně opakováním – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

For cyklus s opravdu hodně opakováním – C / C++ – Fórum – Programujte.comFor cyklus s opravdu hodně opakováním – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Marek0
Duch
18. 7. 2006   #1
-
0
-

zdravim, potřebuju u cyklu for hodně opakování(tolik, že už mi to hlásí chybu), představte si tisíce let převedené na sekundy;-) Nevíte někdo, jak to obejít, nebo nějakej jinen návrh jak to provést? Děkuji :darth:

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
some_one0
Návštěvník
18. 7. 2006   #2
-
0
-

No, a jakouze chybu to hlasi?

Nahlásit jako SPAM
IP: ...–
Alan0
Věrný člen
18. 7. 2006   #3
-
0
-

a while taky nejde?

Nahlásit jako SPAM
IP: ...–
PSP user|Web developer|C4D user||Maya Lamer|Photoshop User|Guitar player
Marek0
Duch
18. 7. 2006   #4
-
0
-

tak dobr?, zd? se, ?e to jede(nefunguje to v pythonu, m?j omyl), provar je, ?e to jede skute?n? dlouho, ikdy? to se d? ?ekat. Jak dlouho se bude propo??t?vat cyklus(velmi jednoduch?, jen jedna rovnice+nahrazen? hodnot),kter? jede 31 536 000 000 kr?t?? :ehh: a dojede v?bec?

Nahlásit jako SPAM
IP: ...–
some_one0
Návštěvník
18. 7. 2006   #5
-
0
-

Jak dlouho pojede (v ideálním stavu) se dá spočítat -sečíst všechny hodnoty tiků v daných operacích. (IMHO je nesmyslené to počítat), pak záleží na systému.
Jinak nenapadá mě rozumný(žádné chyby, přehlcení atp.) důvod proč by to dojet nemělo, z logiky algoritmu to není problém.

Nahlásit jako SPAM
IP: ...–
Matěj Pácha0
Super člen
18. 7. 2006   #6
-
0
-

No, taky nev?m, pro? by to nem?lo fr?et. J? jsem teda zat?m po??tal nejv?c okolo deseti milion? cykl? a probl?m nebyl. V jednom cyklu se po??talo asi 5 rovnic, n?soben?, d?len?, s??t?n?, od??t?n?. Jinak rychlost v?po?tu dost z?vis? na tom, kolik je v dan? chv?li voln?ch syst?mov?ch prost?edk? a jak?m způsobem se m? po??tat (jestli je k dispozici koprocesor a jak?, neboli: jestli do Brna m??e? jet po d?lnici nebo mus?? po okresk?ch)

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
Marek0
Duch
18. 7. 2006   #7
-
0
-

mimochodem, je to progr?mek na v?po?et n?r?stu hmotnosti planetesim?ly v z?vislosti na ?ase, a simulu t?m situaci p?ekotn?ho r?stu(po??tek-miliony planetek->postupem ?asu se sr??ej? a sni?uje se po?et, a? vznikne kritick? situace). T?d k probl?mu-funguje to, 1000x no problem, 100 000 no problem, 1 000 000 pomalej??, le? jde to. Pak u? to je ne?nosn?, nevyp??e chybu, ale zd? se mi, jako by ve v?po?tu vůbec nepokra?oval. Jde n?jak nastavit priorita toho procesu? jako aby procesor vyu??val co nejv?c to jde? nebo jak?koli n?vrh pot???. u? t?d d

Nahlásit jako SPAM
IP: ...–
Jakub Doucek0
Stálý člen
18. 7. 2006   #8
-
0
-

Priorita jde nastavit pomocí vláken ale to je trochu složitější. Spíš bych zkusil algoritmus nějak optimalizovat nebo když je to tak náročný výpočet, tak je docela logické, že to pude dlouho, tak třeba aspoň ukázat, kolik % už má za sebou, ať víš, jestli se to vůbec hejbe;)

Nahlásit jako SPAM
IP: ...–
Pro ty, co hledají odpověď http://ehoy.wz.cz
Matěj Pácha0
Super člen
19. 7. 2006   #9
-
0
-

Jak je tam o?et?en? podm?nka na po?et opakov?n?? Pomoc? cyklu for cca takhle(?):
for(long i = 0; i < 100000000; i++) ??? Resp. jakej typ inkrementu je pou?itej. Proto?e p?i tak velk?m po?tu na to cel? ??sla pravd?podobn? sta?it nebudou. A pokud tam je inkrementem typ float, tak potom zas hroz? n?co takov?ho:
1000000 + 1 = 1000000 !!!
Proto?e float m? jen 6 platn?h ??slic. Double m? tu??m 15 a long double 18.

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
some_one0
Návštěvník
20. 7. 2006   #10
-
0
-

no, tak se hold použije long long, nebo nějaký extedned třída pro velký čísla

Nahlásit jako SPAM
IP: ...–
Matěj Pácha0
Super člen
21. 7. 2006   #11
-
0
-

Šlo spíš o to, jak to tam má autor, jestli porovnává v cyklu inkrementovanou hodnotu typu int s číslem 30 000 000, tak potom je otázkou, jestli operační systém odhalí přetečení, protože jestli ne, tak se konce nedočkáš. Dá se to řešit násobením typů, stačí mít dva do sebe vnořené cykly a když je v každém typ int, tak výsledný počet cyklů je 32 000 x 32 000 = hodně

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
Peter D.0
Expert
22. 7. 2006   #12
-
0
-

bool koniec = false;
while (!koniec)
{ /*code*/ }
:drink:

Nahlásit jako SPAM
IP: ...–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 106 hostů

Podobná vlákna

Variace s opakovanim — založil jirka

Variace s opakovanim — založil Milan

Hodně problemu — založil Jakub Kahoun

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý