C-vel kapcsoltban miért történik ez?
Egy szimulációt írok, amelynek során nagy mennyiségű adattal dolgozok. Van egy for ciklusom, amelyet 0-tól 2 milliárdig futtatva teljesen korrekt és várható eredményeket kapok, de 3 milliárdnál már gondok vannak. Először azt hittem, hogy elszámoltam magam és 9 óra alatt még nem volt ideje kiszámolni a dolgokat a gépnek, de aztán tetem bele egy tájékoztató funkciót, amely szerint a ciklus 71%-nál megáll egy hosszabb időre, majd visszaugrik 1%-ra és ez így megy a végtelenségig. Kipróbáltam 2.5 milliárdig a ciklust, ebben az esetben ez az érték 85%-ra adódott.
3 milliárd 71%-a 2 130 000 000, amíg 2.5 milliárd 85%-a 2 125 000 000, tehát az eltérés 5 000 000. A számok nagyságát tekintve ez igen kicsiny, szóval nekem ebből az következik, hogy a ciklus megközelítőleg a 2.12*10^9-es tartományban gőzöl be. Tudja valaki, hogy miért van ez így és hogy oldható ez meg? Egyszerűen nem értem, hogy ha jó 2.0 milliárdra, akkor miért nem jó 2.2 milliárdra...
Bár már találkoztam a C-nek különböző szépségeivel, sajnos még távolról sem értek hozzá olyan szinten, mint szeretnék.
Egyébként ennek lehet köze ahhoz, hogy milyen fordítót használok? Esetleg javasolhatnátok egyet-kettőt, igazán megköszönném. Jelenleg Pelles-t használok.
Értelemszerűen memóriakorlátos, de ez nyilván evidens. :)
Egyébként elosztott rendszerekkel tovább lehet ezt bővíteni. Illetve ügyes matematikai trükkökkel néha leegyszerűsíthető a probléma úgy, hogy ne kelljen az egész számot tárolni, hanem csak egy részét.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!