Kezdőoldal » Számítástechnika » Programozás » C# Van egy hátizsák aminek...

C# Van egy hátizsák aminek van egy teherbíró kapacitása, hogyan pakolom teli legoptimálisabban egyes tárgyakkal amiknek meg van adva a súlya?

Figyelt kérdés

pl: hátizsák kapacitás: 6 kg

tárgy1: 2 kg

tárgy2: 3 kg

tárgy3: 4 kg

Legoptimálisabb választás az 1. és a 3. tárgy lenne.

Mindezt visszalépéses kereséssel kellene megcsinálni.

(Nem hátizsák probléma, mert ott a tárgyakhoz értékeket is rendelnek!)



2014. máj. 2. 22:38
 1/8 iostream ***** válasza:
Mit jelent a legoptimálisabb?
2014. máj. 2. 22:52
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
Azt, hogy a megoldás legjobban kihasználja a hátizsák tartalmát.
2014. máj. 2. 22:57
 3/8 anonim ***** válasza:

Hát, próbáld ki az összes lehetséges változatot (2^3 féle) és amelyik a legjobban kitölti.

Nem optimalizált, de működik. :)

2014. máj. 2. 23:15
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

"Nem hátizsák probléma, mert ott a tárgyakhoz értékeket is rendelnek!"

Visszavezethető arra. A tárgy értéke legyen a súlyával arányos. Kézenfekvő hogy a tárgy értéke legyen a súlya.

2014. máj. 3. 09:15
Hasznos számodra ez a válasz?
 5/8 iostream ***** válasza:

"Azt, hogy a megoldás legjobban kihasználja a hátizsák tartalmát."


Tehát a legoptimálisabb az a legjobb. ÍGY MÁR NYILVÁNVALÓ PETI!


De tényleg, mi a legjobb? A lehető legnagyobb súly, az világos. És emellett a legtöbb dolog, vagy nekünk a nehezebb cuccok többet érnek? Mit értünk legjobb alatt?

2014. máj. 3. 13:01
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
Nem hátizsákprobléma, hanem pakolási probléma néven ismert a feladat.
2014. máj. 4. 21:59
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:

Sikerült összeállítani egyfajta megoldást a problémára:

i=-1;

vege=false

N=tárgyak elemszáma

indexek=null //Az a tömb, vagy lista ami tárolja a tárgyak indexeit

Ciklus amíg (!vége)

--i++

--Ciklus amíg(i < N és !Megfelel(i, indexek))

----//Megfelel ha eddigi indexek össztömege +=tárgyak[i].tömege<=N

----i++;

--Ciklus vége

--Ha (i < N)

----Indexbe i

--Különben

----Ha (jelenlegi indexekből összeállt tömegek optimálisabb mint az előző optimális) akkor optimálisindexek = indexek

----//optimális akkor ha az előzőleg eltárolt optimális megoldásnál nagyobb a tömege

----Ha (indexek=null) akkor vege=true

----Különben

------i=indexekből az utolsó elem

------indexekből utolsó elem törlése

----Elágazás vége

--Elágazás vége

Ciklus vége

2014. máj. 15. 21:47
 8/8 A kérdező kommentje:

*Elírtam ott hogy:

eddigi indexek össztömege +=tárgyak[i].tömege<=6

2014. máj. 15. 22:03

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!