Visszalépéses keresés (c#)?
Sziasztok az alábbi problémám áll fenn:
van egy Feladat[] feladatok tömböm
a Feladat osztályom tartalmaz egy int Ertek tulajdonságot(megmutatja hogy mennyi az értéke az egyes Feladatoknak) és egy listát (meg sok egyebet, ami most lényegtelen), amibe Ember objektumokat lehet beletenni, ennek a listának a neve AkikElvegezhetikAFeladatot. Különböző feltételek alapján kiválogattam, hogy kik vehetik fel a bizonyosok feladatokat. szóval a feladatok[0].AkikElvegezhetikAFeladatot[0] rámutat arra az Ember objektumra, aki eltudja végezni a 0. indexű feladatot.
Az Ember osztályban van string Nev meg egy int eddigiErtekek tulajdonsagom, a feladat az lenne, hogy (ezt feltöltöm nagyon sok adattal az addig megvan, meg a nagyrésze is csak a keresésben akadtam el) visszalépéses kereséssel megtalálni az összes megoldást, úgy, hogy egy ilyen Ember objektum-nak az eddigiErtekek tulajdonsag maximum 2000 lehet.
Igazából már alap ötleteknek is örülnék, neten néztem példákat, fűrész fogas tömbökben megvalósítottam egy példát a visszalépéses keresésre ami arra a problémára megadja az összes megoldást, de ezt valahogy még nem látom át.
Vazz, ez, amit leírtál, egy akkora érthetetlen katyvasz, hogy meg sem lehet érteni.
Először próbáld meg értelmes mondatokba foglalni a problémádat és akkor remélhetsz segítséget is.
A visszalépéses keresés meg kb. olyan mint egy vak hangya a labirintusban. Szegénykém ki akar kecmeregni onnan, de nem lát. Így megpróbál egyet előre lépni és megint előre. Ha fal van előtte, akkor visszalép _Backtrack-el_ és elfordul jobbra vagy balra, majd újra próbálkozik amíg előrébb nem jut.
van egy Feladat[] feladatok tömböm
Feladat osztály az alábbiakat tartalmazza:
int Ertek; (megmutatja, hogy egy feladat elvégzésért mennyi értéket kap az Ember objektum majd)
List<Ember> AkikElvegezhetikAFeladatot;
Ember osztaly az alábbiakat tartalmazza:
string Nev;
int eddigiOsszertek; (alapesetben ugye 0, ha elvégez egy feladatot, akkor megkapja a feladatért járó értéket..)
a feladatok[0] indexen lévő elem tartalmaz egy AkikElvegezhetikAFeladatot listát ugye. tehát a feladatok[0].AkikElvegezhetikAFeladatot[0] megmutatja az első olyan személyt aki az 0. indexű feladatot eltudja végezni.
Egy személy több feladatot is eltud végezni annyi a megkötés, hogy az eddigiOsszertek tulajdonsága, ne menjen 2000 felé.
A feladat meghatázoni visszalépéses kereséssel az összes lehetséges megoldást arra, hogy ki melyik feladatot vegye fel véglegesen.
Legyen mondjuk ez a kimenet.
List<Ember[]> megoldasok = new List<Ember>();
Tehát az egyes megoldásokat egy Ember[] egyLehetsegesMegoldas tömbben tároljuk, aminek a mérete a feladatok számával egyezik, mert ugye annyi lehet. Aztán ha meghatároztunk egy lehetségedMegoldást, akkor beletesszük a megoldasokba.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!