- Yettel topik
- Xiaomi 15 - kicsi telefon nagy energiával
- Apple iPhone 11 - népalma
- Csonkítás áldozata lett a nemzetközi Redmi Note 15 Pro+
- Xiaomi 14T - nem baj, hogy nem Pro
- Garmin topik
- Ez lehet az Apple hajlítható telefonjának formája, mérete
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Jelentősen átalakulhat a Xiaomi 17 Ultra kamerarendszere
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
Aktív témák
-
Miracle
senior tag
ez egy elég komoly játékelméleti probléma, nem foglalkoztam vele komolyan, csak olvastam valahol, és nem vagyok a dolgomban biztos, de úgy emlékszem, hogy az ilyen problémákra csak az összes eset végigpróbálgatása után lehet _tökéletes_ megoldást adni, de vannak megoldási stratégiák, amelyek nem adnak tökéletes megoldás, de az esetek nagyrészében jó megoldát adnak. sajnos nem emlékszem, hogy hol olvastam, de még egy problémára is emlékszem, ami ilyesmi volt, és a szerző 4 algoritmusra is adott olyan bemenetet, amivel nem a legjobb eredményt hozta ki. bár nem ugyan ez a probléma volt.
szóval nekem lenne egy ötletem egy egy lehetséges algoritmusra, ami nem tudom, mennyire hatékony, Cben szerintem meg lehet oldani, és azt sem tudom, helyes-e, azaz mennyire ad jó megoldást, az a gyanúm, hogy megfelelő bemenetel meg leht sz*patni, de általános esetben szerintem nem olyan rossz eredményt ad:
1: eltárolod a bemenetet egy szép nagy structokból álló tömbben, és kiszámítod a fajlagos haszon-arányát mindnek, (haszno/végrehajtási idő) rendezed
2: fentről elindulsz lefelé, mindent úgy illesztesz be(az idő-tömbödbe, amiben nyilvántartod, hogy melyik időegységek foglaltak, és melyik task van ott), hogy éppen a határidejére érjen véget.
3: ha amit be akarsz szúrni, és valahol ütközik, akkor agy rekurzív algoritmus megpróbál helyet csinálni neki, azaz
----ha a a végrehajtási idő jobb oldalán ütközik, akkor balra tolja, hogy beférjen,
----ha a végrehajtási idő a bal oldalán ütközik, akkor a már ott lévőt tolja balra, hogy ne ütközön,
----ha elfed egy másikat, akkor a másikat megpróbálja balra tolni
----ha egy már ott lévő teljesen elfedi, akkor az új elemet próbálod meg balra tolni
----ha több elemmel ütközik, akkor
a: hagyod a francba
b: megpróbálod balra tolni azokat, amik ütköznek, ha van közöttük
időrés, ha nincs, akkor az új elemet próbálod
meg balra tolni
szerk: vége, ha végigment a fajlagosan rendezett bemeneten.
szerk: a balra tolás az időben előbbre helyezést akarja jenenteni, vizuális típus vagyok, egyből elképzeltem.
a különböző eltolásokat ugyan ez a beszúrófüggvény intézi, így ha a beillesztés miatti eltolás ütközést okoz, akkor értelem szerűn az először eltolt elemnek is megpróbál helyet csinálni a fent említett módon, kell viszont egy rekurzió-szint korlát, mondjuk hogy max 5ször hívhatja meg magát, ezt egyszerű beépíteni, és visszatérési értékben szépen benne lehet, hogy sikerült-e a beszúrás, és ha igen, akkor a tömb marad, ahogy van, ha nem, akkor a rekurzió minden szintje visszarendezi, amit eltologatot, és visszatér egy hamis értékkel.
na ez egy kicsit bonyolult.
eszembe jutott mégegy:
egy parciálisan rekurzív függvény ami ha X időig rendezve vagyunk, akkor megnézi, mely taskok járnak le a legközelebb, és megpróbál z időnyit (vagy k tasknyit) előre feltölteni, ezen a z időn belül kipróbál minden lehetséges esetet, és a legjobbnak az _első_ elemét teszi bele a végeredménybe, majd megin megpróbál az utóbb betett task lejártától előrelátni.
az utóbbit szerintem sokkal egyszerűbb lekódolni, de az előbbi megérzésem szerint jobb eredményt ad. bár sokkal nehezebb.
persze lehet, hogy van tökéletes hatékony megoldóalgoritmus is, de azzal én nem szolgálhatok, ha nem sikerül olyat találni, akkor remélem segítettem valamit ezzel a két lehetőséggel.
[Szerkesztve] -
steveetm
őstag
Az előző topic erre miért is nem volt jó?
Ha meg tudod valósítani akkor mi a gond?
És a feladat se tiszta, mivan ha nem jut sorra az adott feladat amire be kell fejezni?
Mit kell kiiratni? Az ok hogy amit végrehajtunk, de egy ütemező végrehajt mindent, csak ütemezi őket ugyebár. Nem inkább végrehajtás sorrendje akar ez lenni?
A futási idő-t hogy kell értelmezni? Ha egyszer nekikezdesz a feladatnak az az idő egybe telik el, vagy csak egy ''ütem'' vonódik le?
Üdv.: steveetm
Aktív témák
- Yettel topik
- Xiaomi 15 - kicsi telefon nagy energiával
- Luck Dragon: Asszociációs játék. :)
- LEGO klub
- Lexus, Toyota topik
- Elektromos cigaretta 🔞
- Tarr Kft. kábeltv, internet, telefon
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Apple iPhone 11 - népalma
- S.T.A.L.K.E.R. 2: Heart of Chornobyl
- További aktív témák...
- RTX 4070 ti I Ryzen 5 7600X I 2x16gb ddr5 6000mHz
- LAST MINUTE KARÁCSONY! 2 egyforma i7 GAMER GÉP! Ingyenes SOS kiszállítás (Bp.) !!!
- Asus ROG Zephyrus G16 Intel Core Ultra 9 185H/RTX 4060/16GB DDR5/1TB SSD eladó NÁLAM A LEGOLCSÓBBAN!
- MacBook Pro M1 13 inch 8/512GB magyar bill nálam a legolcsóbban
- Fujitsu 27" B27-8 TE Full HD 1920x1080 hófehér monitor állítható magasság, PIVOT, HDMI számla + gar
- Apple iPhone 15 128GB,Újszerű,Dobozával,12 hónap garanciával
- Új, Aktiválatlan iPhone 16 Pro (256 GB) (rendelhető)
- BESZÁMÍTÁS! MSI B450M R7 5700X 32GB DDR4 500GB SSD RTX 4060 Ti 8GB Zalman Z1 PLUS Cooler Master 700W
- AKCIÓ!! HP Zbook Studio G8 i7-11850H 32GB 512GB Nvidia Quadro RTX A4000 8GB Garis!
- 18 éve! Billentyűzet magyarítás magyarosítás. Festés vagy lézerezés és egyebek! 3 lehetőség is van.
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


