logowanie

matematyka » forum » forum zadaniowe - zadania różne » zadanie

Konkursy, zadanie nr 171

ostatnie wiadomości  |  regulamin  |  latex

AutorZadanie / Rozwiązanie

nemo
postów: 3
2014-10-07 10:44:27

witajcie!

"rozpracowuję" wzory do pewnej gry. w grze tej wartość procentowa skuteczności np. zbroi wyliczana jest z wartości jednostkowej oraz poziomu postaci. tu nie ma problemu:
X=A/(A+f(L))
gdzie X - wartość %, A - wartość jednostkowa oraz
f(L) - inna wartość dla każdego poziomu.
i właśnie to f(L) stanowi dla mnie zagadkę. wartość tej funkcji jest prosta do wyliczenia z posiadanych X oraz A, jednak ja chciałbym poznać WZÓR.
wypisałem więc parę znanych mi wartości w tabelce i próbowałem dopasować coś intuicyjnie, jednak bez powodzenia, a czuję, że to jest raczej prosty, "okrągły" wzór.
tak wygląda tabelka i wykres:

zielona kolumna to poziom a następna to f(L). jej wykres na zielono.
i teraz te szukane:
żółta kolumna to współczynnik różniący kolejne poziomy f(L+1)/f(L), wykres na żółto.
niebieska kolumna to współczynnik różniący dany poziom od pierwszego poziomu f(L)/f(1).
wydaje mi się, że większy sens ma szukanie tej niebieskiej, bo nie trzeba wtedy liczyć poprzednich wartości.

w jaki sposób rozgryźć, jaka to funkcja? to co mi się wydawało "na oko" to nie to (a nie chcę sugerować równań).

proszę o pomoc,
pozdrawiam.

PS. przepraszam, chyba niewłaściwy dział. nie miejcie mi tego za złe.

Wiadomość była modyfikowana 2014-10-07 10:51:57 przez nemo

mimi
postów: 171
2014-10-07 20:47:21

Po pierwsze: czy jesteś absolutnie pewien, że skuteczność procentowa zbroi jest wyliczana z takiego wzoru? Tzn., czy wziąłeś inną zbroję, dla której znasz A, sprawdziłeś w swojej tabelce f(L) dla poziomu swojej postaci i upewniłeś się, czy X się zgadza?

Po drugie: mam dla Ciebie dosyć smutną wiadomość. Przypisanie każdej liczbie L pewnej wartości f(L) tak, że f(L) jest liczbą pluszaków młodszej siostry programisty Twojej gry pomnożonej przed odwrotność czasu w sekundach zjadania przez niego miski L płatków z cynamonem też jest funkcją, a obawiam się, że jej jawnego wzoru na podstawie konkretnych danych możesz nie poznać. Mam na myśli to, że od strony formalnej, nie wdając się w zbędne szczegóły, funkcja jest zbiorem par (L, f(L)), więc funkcją jest też równie dobrze przyporządkowanie wszystkich liczbom naturalnym od 1 do 45 liczb takich, jak masz w tabelce, a każdej naturalnej większej od 45 różowego słonia. Chodzi mi o to, że istnieje nieskończenie wiele funkcji, które dla pierwszych 45 liczb naturalnych mają takie wartości, jak podałeś. Możesz mieć więc nadzieję, że programista miał kaprys użyć jakiejś "ładnej" funkcji, jak wielomian czy funkcja wykładnicza, ale to tylko nadzieja. Równie dobrze mógł sobie wymyślić te wartości i wpisać je ręcznie, czy zadać "ładnymi" funkcjami programowi przedział dla każdego L, aby ten f(L) wylosował z tego przedziału.

Po trzecie: jak już koniecznie chcesz, możesz poszukać w swojej wersji Excela funkcji linii trendu (dawniej była pod prawym przyciskiem myszy, w tych nowszych jest chyba w narzędziach wykresu) i spróbować dopasować do tego jakąś funkcję wykładniczą czy wielomian - komputer znajdzie Ci wzór funkcji, która przechodzi przez zadane przez Ciebie punkty, a jeśli to niemożliwe - jak najbliżej nich.

Po czwarte: rzuć nazwą gry. Mam dużo bardzo grających znajomych, a w moim środowisku ludzie lubią rozkminiać takie rzeczy, a nie tylko zabijać bezmyślnie miniony, więc możliwe, że znam kogoś, kto już wie to, czego Ci potrzeba.


nemo
postów: 3
2014-10-07 23:25:00

"Możesz mieć więc nadzieję, że programista miał kaprys użyć jakiejś "ładnej" funkcji, jak wielomian czy funkcja wykładnicza, ale to tylko nadzieja. Równie dobrze mógł sobie wymyślić te wartości i wpisać je ręcznie, czy zadać "ładnymi" funkcjami programowi przedział dla każdego L, aby ten f(L) wylosował z tego przedziału."

a, no widzisz. w sumie w sedno tym trafiłeś. ;)
właśnie to chcę "rozkminić". zobacz, skoro f(L) układa się w ładną krzywą, to łatwiej zadać ją równaniem czy liczyć i wpisywać do tabelki?
myślę, że to jakiś wzór. sam jestem po części programistą i raczej tak bym to zrobił.
a skoro wzór to po co komplikować i się przemęczać?
na to liczę.

co do szczegółów, to w tym wątku piszę o tych samych sprawach co tu.

a skoro już poruszyłeś sprawę "ręcznego" wpisywania do tabelki, to gdzieś w środku tego przydługiego pierwszego posta są opisane "progi prędkości". też szukam równania do niego. będzie tu istotne zaokrąglanie.

dzięki za odp.
PS. używam OpenOffice. :]



mimi
postów: 171
2014-10-08 20:56:25

"a, no widzisz. w sumie w sedno tym trafił. ;)"
Nie, żebym narzekała, ale jestem jednak dosyć przywiązana do swojej płci ;)

"właśnie to chcę "rozkminić". zobacz, skoro f(L) układa się w ładną krzywą, to łatwiej zadać ją równaniem czy liczyć i wpisywać do tabelki?
myślę, że to jakiś wzór. sam jestem po części programistą i raczej tak bym to zrobił."

Z tym, że skończona, a do tego niewielka liczba danych liczb na wykresie prawie zawsze ułoży się na jakiejś krzywej, która wygląda w miarę ładnie. Tak naprawdę, zielony wykres to nie jest wykres funkcji, którą zadałeś liczbami - prawdziwy wykres powinien składać się tylko z 16 punktów (tyle znasz). Narysuj na papierze w kratkę 16 punktów w taki sposób, że każdy kolejny jest trochę na lewo i trochę do góry w stosunku do pozostałych - prawie na pewno, jeśli masz wyćwiczoną rękę, przejedziesz potem po nich długopisem tak, że narysujesz krzywą, która wyda Ci się ładna. To nie znaczy, że wybierając na początku te punkty wymyśliłeś sobie jakieś równanie, po prostu je wylosowałeś.
Natomiast, jeśli chodzi o wykres, który narysował OpenOffice - nie widzę go na tyle wyraźnie (za gruba linia), żeby stwierdzić, czy po prostu połączył punkty odcinkami, czy znalazł sobie jakieś równanie (istnieją wzory na dopasowywanie różnych krzywych czy prostych do zadanych punktów, są ważne w fizyce doświadczalnej i większość "liczących" programów potrafi je stosować).

Linia trendu jest ważna na wykresach, więc myślę że i w OpenOffice się znajdzie. Radzę poszukać, bo to bardzo przydatna funkcja.
Jeśli zaś chodzi o 16 wartości dla różnych poziomów z Twojego posta, Excel sugeruje mi do nich równanie
$f(L) = 0,0102L^3 - 0,1466L^2 + 27,371L + 48,975$
Nie daje to jednak żadnej gwarancji, że kolejny znany punkt ułoży się na tej krzywej - być może jest to np. wielomian 6 stopnia i ten powyższy dostatecznie dobrze go przybliża dla liczb mniejszych od 50?

Nie jesteś też w stanie być na 100% pewny, że zależność X=A/(A+f(L))jest poprawna (o ile programista Ci tego nie powiedział). Może akurat miał kaprys, żeby inaczej to działało?

Edit: takie małe wyjaśnienie. Jeśli masz dowolną funkcję (może mieć w swoim wzorze np. jakieś śmieszne sinusy, logarytmy, czy co tam jeszcze człowiek może sobie zamarzyć), to jeśli tylko, ujmując to obrazowo, wykres funkcji jest taki, że możesz spokojnie przejechać palcem po jej wykresie i się nie skaleczysz (tzn. nie ma jakiegoś ostrego zakończenia jak na wykresie |x|, nie urywa się gdzieś nagle itd.), to da się ją przybliżyć wielomianem, tzn. znaleźć sobie taki wielomian, że jego wartości zawsze są gdzieś blisko wartości Twojej śmiesznej funkcji. Co więcej, możesz sobie zmniejszać to, jak blisko muszą być (masz wielomian, który zawsze nie różni się od wartości Twojej funkcji o więcej niż 0,1? To możesz zejść do 0,001) - zwiększając stopień wielomianu, który dopuszczasz. Więc dla dowolnej liczby danych, biorąc pod uwagę to, że zapewne gra podaje Wam zaokrąglone wartości, znajdziesz zapewne wielomian, który będzie "się zgadzał". To nie znaczy, że tak było zaprogramowane. Wielomiany po prostu mają taką fajną własność.

Wiadomość była modyfikowana 2014-10-08 21:23:09 przez mimi

nemo
postów: 3
2014-10-13 12:24:43

"Nie, żebym narzekała, ale jestem jednak dosyć przywiązana do swojej płci ;)"
ups, wybacz. :)

"Natomiast, jeśli chodzi o wykres, który narysował OpenOffice ..."
to połączone prostymi punkty. obecnie jest już więcej tych wartości (inni gracze muszą mi dać swoje statystyki) i wykres jest nieco bardziej okrągły.

^^^^update'owałem obraz z tabelką pozostawiając tylko ostatnią kolumnę na wykresie.^^^^

"Linia trendu jest ważna na wykresach, więc myślę że i w OpenOffice się znajdzie."
to, co znajduję zupełnie źle działa. ale popróbuję jeszcze.

"Excel sugeruje mi do nich równanie
f(L)=0,0102L3−0,1466L2+27,371L+48,975"
to raczej nie będzie takie równanie, zbyt skomplikowane moim zdaniem, ale kto wie...

"Nie jesteś też w stanie być na 100% pewny, że zależność X=A/(A+f(L))jest poprawna"
to typowy wzór wykorzystywany w takich grach, ale pewności mieć oczywiście nie mogę.

"Wielomiany po prostu mają taką fajną własność."
zgadza się, ale jestem niemal przekonany, że ten wzór jest bardzo prosty, bo nie ma uzasadnienia jego komplikowanie.

jest też taki problem, że te wartości nie są dokładne. dane do ich obliczenia są zaokrąglane przez co różnią się o ułamki procenta od prawdziwych wartości.

dzięki za poświęcony czas.
pozdrawiam

strony: 1

Prawo do pisania przysługuje tylko zalogowanym użytkownikom. Zaloguj się lub zarejestruj





© 2019 Mariusz Śliwiński      o serwisie | kontakt   drukuj