Kezdőoldal » Számítástechnika » Programozás » Miért van az, hogy az online...

Ozmium42 kérdése:

Miért van az, hogy az online Életjátékok gyorsak, amiket pedig én írok, azok lassúak?

Figyelt kérdés

Itt van például ez:


[link]


A legjobb felbontás majdnem pixeles, és így hatalmas a tábla, mégis maximális sebességgel hasít. Az enyémen például 200*200-as táblán már majdnem egy másodpercig tart egy kör, így döcög. Mi lehet a titok?


2017. jún. 7. 22:44
1 2
 11/15 anonim ***** válasza:

Feleslegesen csinálsz dolgokat. Pl lekéred a szomszedko koordinatait egy koordináta pár listába (vagy minek hivjak ezt pythonban)... ez letrehoz tök fleselegesen minden mezore 8+1 objektumot.

Utána vegigmesz ezen a listán.


Felesleges.... cska vegig kene menni a táblán és helyben számolni a szomszedokat, sot ha 4-et már találsz, akkor le is lehet állni... Ekkor egyetlen új objektumot sem hozol létre, ami jelen tős gyorsulás. (Bár én nem pythonozok, de gondolom ott is nagyon számít...)

2017. jún. 8. 09:33
Hasznos számodra ez a válasz?
 12/15 anonim ***** válasza:

A fő gond, hogy létrehozol egy nagy tömböt és annak az összes elemén (példád szerint ciklusonként 200*200 lépésben) végigmész, a helyett, hogy csak a sejtekkel foglalkoznál.


Az említett webes példában is például 73*46 cella van, amiben kezdésként 5 sejt helyezkedik el. Melyik az egyszerűbb: végigvizsgálni minden egyes ciklusban a 73*46 cellát, vagy megvizsgálni azt az 5 sejtet?

2017. jún. 8. 10:26
Hasznos számodra ez a válasz?
 13/15 anonim ***** válasza:
100%

Nem az a fő gond, hogy végig megy a teljes mátrixon, ez egy mai processzornak semmi. Ha sok az elő sejt, akkor nagyon belassulna egyébként. Mások is végigmennek, lásd a példákat itt:

[link]

A gond az, hogy nem csak simán megszámolja a a szomszédokat, hanem külön kigyűjti a szomszédos mezők koordinátáit egy listába, majd azokon vegigmenve számolja meg.

2017. jún. 8. 10:56
Hasznos számodra ez a válasz?
 14/15 Hominida ***** válasza:

#12: "Melyik az egyszerűbb: végigvizsgálni minden egyes ciklusban a 73*46 cellát, vagy megvizsgálni azt az 5 sejtet?"


Végigvizsgálni, ez az egyszerűbb, ha tényleg az egyszerűséget nézzük. Viszont sajnos sok processzoridőt használ el.


Régi szabály, hogy egy programban vagy időbe, vagy memóriába kerül a feladat megoldása. Eltekintve attól, hogy az erőltetett objektumosdi megzavarja az ifjak fejét, és elfelejtkeznek a régimódi, de még mindig ugyanolyan jól működő elemi megoldásokról, erre a feladatra memória bőven fordítható. Csak akkor sajnos dinamikus listákkal, esetleg bitmaszkokkal kell bűvészkedni, ami nem egyszerű, viszont a szituációk nagyobb részében valószínűleg a listakezeléssel, relációs műveletekkel, elágazásokkal együtt is időt lehet nyerni. Épp ezért ez egy nagyon jó kis gyakorlófeladat az optimalizálásra.

2017. jún. 8. 16:09
Hasznos számodra ez a válasz?
 15/15 anonim ***** válasza:
Legyen a sejtednek olyan tulajdonsága, hogy állapot, meg koordináták, és amikor mész a táblán, akkor csak a szomszédok koordinátáit kell kiszámítanod, és az ottani sejtek állapotát elkérned.
2017. jún. 8. 21:40
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!