- Fotók, videók mobillal
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Szívós, szép és kitartó az új OnePlus óra
- Ingyen beszerezhető pár SEGA klasszikus mielőtt lekerülnek a Play Áruházból
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Honor Magic5 Pro - kamerák bűvöletében
- Magisk
- Szerkesztett és makrofotók mobillal
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy S25 - végre van kicsi!
Ú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
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- ThinkPad (NEM IdeaPad)
- Autós topik látogatók beszélgetős, offolós topikja
- Világ Ninjái és Kódfejtői, egyesüljetek!
- The Division 2 (PC, XO, PS4)
- Elektromos cigaretta 🔞
- alza vélemények - tapasztalatok
- Kerékpárosok, bringások ide!
- Belemásznak a reddites beszélgetésekbe az AI-alapú hirdetések
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Gurulunk, WAZE?!
- További aktív témák...
- IPhone 16 Plus 128GB One függő 2025.12.17. Apple jótállás
- IPhone 12 64GB gyári független szép új akku!!
- IPhone 12 128GB gyári független gyári 99%-os akku
- Asus A15 FA506IU 15.6" FHD IPS Ryzen 7 4800H GTX 1660Ti 16GB 512GB magyar vbill gar
- i5-13600KF, RX 9070, DDR5 32GB, 1 TB M.2, Fractal North TG és sok garancia
- LG 65" C1 OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready!
- ÁRGARANCIA!Épített KomPhone i3 10105F 8/16/32GB RAM RX 6500 XT 4GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! ASUS B450 R7 2700X 16GB DDR4 512GB SSD RTX 2060 Super 8GB Zalman i3 FSP 600W
- iKing.Hu - Apple iPhone 14 Pro Max - Gold - Használt, szép állapot
- Konzol felvásárlás!! Xbox Series S, Xbox Series X
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest