Kezdőoldal » Tudományok » Természettudományok » Lövöldözős játék. Használható...

Lövöldözős játék. Használható hozzá matematika?

Figyelt kérdés

Van egy lövöldözős játék, két csapat áll egymással szemben. Az egyes harcosoknak van egy életereje, ez kinél több, kinél kevesebb. Ha valakit eltalálnak csökken az életereje. Az ellenfél pusztításának képessége is eltérő, van aki gyakrabban tud lőni és nagyobb sebet ejt. Akinek sok életereje van az általában(de nem mindig) erősebben lő. Ha valakinek elfogy az életereje, akkor meghal és nem tud lőni. A súlyos sebesült változatlan erősen lő.


Gyakran van olyan helyzet hogy több ellenségre is ráfoghatom a puskát, csak néha nehéz eldönteni melyikre célszerű.



2012. szept. 22. 12:07
1 2
 11/18 anonim ***** válasza:

Ez egy kicsit bonyolultabb probléma szerintem, mint ahogy egy korábbi válaszadó lefesti, de mindenképpen érdekes.


Egy megjegyzés a sebzés-életerő kapcsolatáról: mivel a kettő nem függ egymástól, ezért elegendő azt figyelni, hogy egy adott ellenfelet hányszor kell eltalálni, hogy meghaljon. Így az életerő tetszőleges egész szám, a sebzést pedig ki lehet iktatni a feladatból.


A feladat egy átfogalmazása:


A továbbiakban általánosságban tegyük fel, hogy van n darab ellenfél, D[1],..,D[n] sebzéssel és L[1],..,L[n] élettel.(damage-life) A kérdés, hogy egy adott ellenfél a játék folyamán mennyit sebez rajtunk, ha ez megvan, summázva mindegyik ellenfélre megkapjuk, hogy a játék során mennyit sebeztek rajtunk összesen.


Ha egy ellenfél meghal a következő körben nem fog már sebezni, tehát a sebzése a játék során jellemezhető, egy a[k]=(1,1,1,1,..,1,0,...) sorozattal, ahol az utolsó egyes azon a helyen áll, hol az adott ellenfél meghalt. A rajtunk esett össz-sebzést a k-adik játékos által jelöljük mondjuk C[k]-val.

Ekkor C[k]=D[k]*max{i}{a[k]=1}


Legyen P L[1] db 1-es, L[2] db 2-es, stb...L[n] db n-es ismétléses permutációinak halmaza. Ekkor ha p egy ilyen permutáció, akkor ebből a fent bevezetett a[k] sorozatok megadhatóak úgy, hogy a[k] első l db tagja 1, a többi 0, ahol l=max{i:p(i)=k}, vagyis az utolsó alkalom, amikor az adott ellenfelet el kell találnom ahhoz, hogy meghaljon.


Így C[k]=max{j:p(j)=k}*D[k] és

C=sum{k=1,..,n}}{C[k]}


A feladat tehát az, hogy melyik az a p permutáció, melyre


a sum{k=1,..,n}{max{j:p(j)=k}*D[k]} minimális

2012. szept. 24. 20:24
Hasznos számodra ez a válasz?
 12/18 anonim ***** válasza:
Egy javítás: nyilván max{i:a[i]=1}
2012. szept. 24. 20:27
Hasznos számodra ez a válasz?
 13/18 anonim ***** válasza:

Korábbi válaszoló vagyok... A te formalizmusoddal D[i]/L[i] szerint kell csökkenő sorrendbe rakni az ellenfeleket.


Vegyünk egy tetszőleges sorrendet, benne két olyan ellenfelet, akiket egymás után nyírsz ki. Az elsőnek D1 és L1, a másodiknak D2 és L2 az értékei. Kérdés: érdemes-e őket megcserélni az adott permutációban? Mindkettőt L1+L2 idő alatt nyírod ki, sorrendtől függetlenül, és ennyi kör körönként D1+D2 sebzést szenvedsz el, amiből levonódik az, amit az először kinyírt ellenfél már nem lő, mert idő előtt meghal. Ha ez elsőt (D1,L1) nyírod ki először, akkor a hátramaradó L2 időben mentesülsz körönként D1 sebzéstől. Ha fordítva, akkor L1 kör alatt szabadulsz meg körönként D2 sebzéstől. Melyik a több? Ha (L1,D1)-nek jobb az aránya, akkor D1/L1>D2/L2, ebből D1*L2>D2*L1. Vagyis, ha a nagyobb D/L arányút nyírod ki először, akkor több sebzéstől mentesülsz.


Tehát ha van egy permutációd, akkor azt folyamatosan javítgatod úgy, hogy a szomszédosakat megcseréled, hogy a nagyobb D/L arány kerüljön előre. Ezzel folyamatosan jobb megoldásokat kapsz, végül csökkenő sorrendben lesznek az ellenfelek. Tehát ez a legjobb megoldás. Ha két ellenfél D/L aránya megegyezik, akkor mindegy, milyen sorrendben nyírod ki őket, és szabadon fel is cserélhetők.


A sorrend tehát: ABKIGHFCDJEL.


Ajánlom figyelmedbe, hogy nem feltétlen ez a megoldás, ha az ellenfelek idő közben eltűnhetnek szem elöl, vagy leállhatnak a lövéssel.

2012. szept. 24. 23:04
Hasznos számodra ez a válasz?
 14/18 anonim ***** válasza:
^ Onnan emlékszem rá, hogy nagyon sok játéknál előjön ez a probléma. :D
2012. szept. 24. 23:08
Hasznos számodra ez a válasz?
 15/18 A kérdező kommentje:

Próbálom emészteni az általatok leírtakat. Közben magam is próbálkoztam.


Nekem ez a sorrend jött ki: KABIFGHCDJEL


Egy ilyen képlet ad egy számot minden ellenfél mellé, amelyiknek nagyobb, azt érdemes hamarabb elintézni.

=Lövésszám/(X*GYÖK(GYÖK(GYÖK(X))))*100

Az X az illető által okozott életerő veszteség körönként.


Hogy jó e vagy sem azt nem tudom.

2012. szept. 25. 00:31
 16/18 anonim ***** válasza:
Igen, közben én is arra gondoltam, hogy ilyen triviális lesz a megoldás. A kérdező esetleg valami levezetést is tud adni a képletére?
2012. szept. 25. 12:20
Hasznos számodra ez a válasz?
 17/18 A kérdező kommentje:

Nem biztos, hogy ez jó(tökéletes) megoldás, de legalább közel van hozzá. Nem volt semmiféle levezetés.:) Csak beírtam találomra ezt-azt. Táblázatban több körre lemodelleztem az eseményeket és egész jól működik.


A 11-es postját még megkísérlem az én értelmi szintemre lefordítani, netán ha érti valaki próbálja meg a gyakorlatba ültetni a linkelt táblázatban.


A 16-osnál ki van számolva, hogy egy bizonyos ellenfélnél mennyire gazdaságosak a lövéseim az ellen harcierő/lövésszám alapján. De az a modell nem számol eléggé az ellenfél kinyírásához szükséges idővel.

2012. szept. 25. 23:13
 18/18 anonim ***** válasza:
Próbáld a K-t berakni az AB után!
2012. szept. 25. 23:54
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, 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!