Hirdetés
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
- Hét évig frissül az új iQOO
- Azonnali mobilos kérdések órája
- Amazfit Helio Strap – képernyőmentesen
- Hivatalosan is bemutatta a Google a Pixel 6a-t
- Yettel topik
- Telekom mobilszolgáltatások
- Google Pixel topik
- Megérkeztek a Xiaomi 15T sorozatának telefonjai Magyarországra
- Samsung Galaxy A54 - türelemjáték
Ú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!
- OLED TV topic
- Steam Deck
- Milyen billentyűzetet vegyek?
- Fejhallgató erősítő és DAC topik
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
- Arc Raiders
- Gyúrósok ide!
- Revolut
- Szigorúan titkos dokumentumokkal a kezében távozott az Intel egyik mérnöke
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- További aktív témák...
- Asus TUF Gaming A15 AMD Ryzen 5-7535H/16GB RAM/512GB SSD/RTX3050VGA/15,6" 144Hz kijelző
- Samsung Galaxy S25 Ultra 256GB fekete garanciával
- Iphone 13 128gb Midnight 81% + töltő + füles + tok
- -ÚJ,2 ÉV GAR- DDR5 GAMER PC: RYZEN 5 8400F/9600X +RX 9060XT/9070/9070XT +16-64GB DDR5! SZÁMLA!
- DJI Mini 4 Pro Fly More Combo (DJI RC 2) (GL) (Bontatlan)
- DOKKOLÓ BAZÁR! Lenovo, HP, DELL és egyéb más dokkolók (TELJES SZETTEK)
- BESZÁMÍTÁS! 64GB(2x32GB) Kingston Fury Beast 3200MHz DDR4 memória garanciával hibátlan működéssel
- Lenovo ThinkPad X1 Yoga G6 (6th Gen) - i7-1185G7, 32GB, 512GB SSD, multitouch + TOLL
- MSI CreatorPro Z16P RTX A5500 TOUCH! (vapor chamberrel)
- Bomba ár! Lenovo X1 Yoga 2nd - i7-7G I 8GB I 256GB SSD I 14" WQHD Sérült I W11 I CAM I Garancia!
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Laptopműhely Bt.
Város: Budapest






