- sziku69: Szólánc.
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- ldave: New Game Blitz - 2025
- vrob: Az utolsó DOS játékok 1996 - 1997-ben, egy korszak lezárul
- Ndruu: Segíts kereshetővé tenni a PH-s arcképeket!
- Elektromos rásegítésű kerékpárok
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Új hozzászólás Aktív témák
-
bucsupeti
senior tag
Az órát átszámolni percekbe, hozzáadni a perc részt. Ezt mindkettőnél megcsinálni.
Az elsőből kivonjuk a másodikat és vesszük az abszolút értékét.
A kapott eredmény / 60 lesz az óra a kapott eredmény % 60 lesz a perc.Ennyi.
C-ben számolás+kiiratás (draft):
kulonbseg=abs((o1*60+p1)-(o2*60+p2))
printf("%d:%d",int(kulonbseg/60),kulonbseg%60Szerintem az ellenőrzött input és annak feldolgozás sokkal "bonyolultabb".
-
kingabo
őstag
Persze működne láncolt listával is, de 1millió elemnél elég durva overhead lenne az 500 000. elemet megtalálni, a felezgetésekhez. Másrészt a tömb elemei sorfolytonosan vannak a memóriában, ezekből egyszerre több is bekerül a proci cache-jébe, míg a lista elemei össze-vissza lehetnek a memóriában, sokkal többször kellhet a procinak a ramhoz fordulnia. Ekkora elemszámnál meg már elég rendesen érvényesül a sok kicsi sokra megy mondás...
-
Gyuri16
senior tag
tomb akarhogy is gyorsabb lesz, mar ha a beolvasasrol van szo. itt egy az egyben masolasrol beszelunk, ennel hogyan akarsz gyorsabban a memoriaba juttatni valamit? lancolt listanal sokszor kell memoriat foglalnod es erteket masolnod.
raadasul ha mar megvan a listad mit kezdesz vele? csak sorjaban tudod olvasni ami nagyon redukalja mit tudsz vele csinalni. a masik topicban irtam egy divide and conquer algoritmust, ilyesmit a listan nem tudsz megcsinalni.
ha annyira zavar, hogy kicsit tobb helyet foglaltal (ha mondjuk nem tudod elore mennyi adat lesz) azt utolag fel lehet szabaditani. ha ugyesen csinalod meg mindig kevesebb memoriad van feleslegesen mint lancolt listaval.
viszont tovabbra is nem ez a lenyegi kerdes, hanem, hogy mit akarsz kezdeni az adatokkal, hogyan szamolod at?
-
WonderCSabo
félisten
Nem, nem, nem.
% 100 mindig azt az intervallumot jelenti, ahonnan akarod a random számot
A % az egy teljesen szabályos aritmetikai operátor C-ben, semmi intervallum előállító, vagy ilyesmi. A % visszaadja a szám osztóval való osztásának maradékát (modulo). Pl. 12 % 5 az 2. Valóban, amikor véletlen számokat állítunk elő, a % operátort hívjuk segítségül. Ugyanis a rand() fv. egy baromi nagy számot ad vissza. Ha ezt mondjuk 100-al modulozod le, akkor a nagy szám 100-al való osztásának lehetséges maradékát kapod vissza.
Tehát 100 esetében: 0 - 100
Nem 0-100 között, hanem 0-99 között. A maradék nem lehet 100, hiszen akkor már nem maradék, hiszen még egyszer megvan a nagy számban, az igazi osztási eredmény nőne eggyel. Ha pedig 1-100 között akarod, akkor simán hozzáadsz egyet a lemodulozott értékhez.
Tehát, a moduloval az intervallum hosszát adjuk meg, a hozzáadással pedig az eltolást.
j0k3r! megelőzött a mondandóm egy részében.
-
cucka
addikt
hogy lehetne a tartalmát random kiíratni úgy, hogy minden elem szerepeljen és csak egyszer (nincs ötlet).
Például egy nagyon fapados megoldás: indexeled az elemeidet 0-tól n-ig. Egy iterációban veszel 2 random indexet és felcseréled a nekik megfelelő elemeket. Az iterációt elég sokszor megismétled. (Ha csak a kiírás kell random legyen, akkor a cserélgetéshez hozz létre egy, az indexeket tartalmazó tömböt és annak elemeit cserélgesd)
Igazából ez egy nem túl jó megoldás, cserébe nagyon egyszerű átlátni és megvalósítani. (Pl. azért nem jó, mert az iterációk számának növelésétől nem lesz "rendezetlenebb" a tömböd). Továbbá érdemes arra odafigyelni, hogy ha listával dolgozol, akkor egy adott indexű elem elérése O(n) műveletigényű, míg tömböknél O(1), tehát a fent vázolt megoldás meglehetősen lassú.
-
Karma
félisten
Sok megoldás van rá, pl. veszed az indexeket 1-től n-ig, megkevered őket, aztán ennek mentén kiírod. Ez láncolt listával halál, a tömb sokkal hatékonyabb most.
-
Gyuri16
senior tag
ha a random kiiratas a cel, akkor en a vectort ajanlanam. nem nagy gond megirni, es sokkal elegansabb lesz. lancolt listat sorrendben kiirni egyszeru, de veletlenszeruen nagyon nem effektiv. (lehet ugyeskedni azzal, hogy kiiratsz egy elemet, aztan veletlenszeruen elore vagy hatra mesz egy veletlen mennyiseget, de nem vagyok benne biztos, hogy igy matematikailag ugyanakkora lenne az eselye az osszes permutacionak, nem beszelve arrol, hogy ez kimeriti a ganyolas fogalmat)
-
Gyuri16
senior tag
egyik kerdes, hogy mivel indexeled az adataid, tehat mi szerint akarsz keresni a strukturaban.
masik kerdes, hogy milyen operaciokat akarsz elvegezni a strukturan. tehat az indexeles/kereses legyen gyors, vagy fontos hogy pl ket strukturat gyorsan tudj egyesiteni.
legkezenfekvobb megoldas egy dinamikus tomb a c++-os vector mintajara, ahol te kezeled a memoriat, es ha elfogy akkor lefoglalsz ketszer annyit.
tovabba vannak bonyolultabb strukturak, itt tenyleg az a kerdes mire kell, egy par tipp:
vector: random indexeles gyors, viszont problemas ha elfogy a hely. egyesiteni szinten gond
lancolt lista: talan a legegyszerubb megoldas, viszont lassu a kereses benne.
red black tree: kereses logaritmikus, mivel fastruktura mindig annyi helyet foglalsz le amennyi kell. eleg bonyolult, szoval ha sima c-rol van szo akkor csak tenyleg nagy adatokhoz allnek neki programozni
hash table: kereses eleg gyors, itt is gond lehet a lefoglalt memoria nagysaga, nem art elore tudni kb mennyi adat leszsok megoldas van, szoval nem artana tudni mire fogod hasznalni
-
Karma
félisten
Nem kötelező láncolt listát használnod, de vannak helyzetek, amikor az a legpraktikusabb. A kérdés az, hogy hány elemről van szó, illetve hogy milyen műveleteket akarsz rajtuk végezni.
Ugyanis 1) a struktúrákból is lehet tömböket csinálni a stacken, ha kevés darab lesz belőlük. 2) A heapen is csinálhatsz tömböt, ekkor ugye a méret nem akkora para. 3) Valamint ott vannak a láncolt listák, amit említettél. 4) Vannak hibrid megoldások, amikor egy tömbben ábrázolsz egy listát egy a következő elem sorszámát tartalmazó indexmezővel; és biztos van, ami nem jutott eszembe.
A műveleteket azért mondtam, mert a tömbökben gyors a navigáció, de lassú a törlés; a listákban gyors a beszúrás és törlés, de lassan lehet bejárni.
-
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Futás, futópályák
- Ingatlanos topic!
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Allegro vélemények - tapasztalatok
- E-roller topik
- Miért álltak az oldalak egy hétig, mi történt?
- Autós topik látogatók beszélgetős, offolós topikja
- Azonnali fáradt gőzös kérdések órája
- BestBuy topik
- Hobby elektronika
- További aktív témák...
- JÁTÉKOS Dell 15 NVIDIA 2gb Intel core i5-7200 8gb ddr4 256gb ssd win11 Magyar bill VILÁ
- MONITOR + R7 7800X3D/RX6900XT 16GB/ (32GB) 2X16GB 6000MHZ DDR5/ 1,5TB SSD/ 1000W
- Egyedi Épített Mechanikus Billentyűzet Eladó! GMMK PRO + Gateron Brown + Glorious Rainfores (593929)
- LG UltraGear 27GR95QE-B OLED Monitor 2560x1440 / 240Hz / 0.03 ms / G-Sync / FreeSync
- INGYEN POSTA - ÚJ GAMER PC V903 - i7-14700KF - RTX 5070 -DDR5 32GB RAM -1TB SSD -www.olcsogamerpc.hu
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD RTX 2060 Super 8GB Rampage SHIVA ADATA XPG 600W
- BESZÁMÍTÁS! MSI B450M R5 3600 16GB DDR4 512GB SSD GTX 1080 8GB Rampage SHIVA ADATA 600W
- Autószimulátor! Leírásokkal, mindenestül, játékkal, kulcsrakészen!
- HIBÁTLAN iPhone 13 mini 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3044
- Fujitsu LIFEBOOK E449 i5-8250U 8GB 256GB 14" FHD 1 év garancia
Állásajánlatok
Cég: FOTC
Város: Budapest