Istnieją wzory na malejące równanie zwrotu; jednak zwykle wiążą się one z wykładniczym. Jakie są inne sposoby wymyślenia takiego równania? Weźmy na przykład następujący przypadek testowy - jedno gospodarstwo wytwarza 10 żywności, na każde 10 wyprodukowanych gospodarstw wskaźnik produkcji spada o 5%.
game-design
mathematics
Extrakun
źródło
źródło
Odpowiedzi:
Aby sformułować równanie malejących zwrotów, od razu pomyślałem o ułamkach.
To jest wykres
y=1/F
y
będzie się zmniejszać wraz zeF
wzrostem. Zapewni to stały spadek, który nigdy nie osiągnie 0. Na tej podstawie możesz go przekształcić, aby uzyskać żądaną krzywą. Użycie liczb> 0 zawsze daje wynik dodatni, który nigdy nie wynosi 0.Szczerze mówiąc, poleciłbym pójść do WolframAlpha i postawić kilka równań i spojrzeć na wykresy, które rysuje, aby zobaczyć, czy daje krzywą, którą chcesz. Poza tym przeczytaj równania liniowe i kwadratowe, aby szybko dowiedzieć się, co chcesz zmienić we wzorze. Wynika to z faktu, że modelowanie wykresów za pomocą równań jest nieco dużym tematem, a gdybym mógł to tutaj doskonale wyjaśnić, najpierw sprzedałbym to wyjaśnienie niektórym nauczycielom matematyki.
Zasadniczo, w przypadku wykresów liniowych pamiętaj
y=mx+c
.m
jest gradientem i może być dodatni lub ujemny w zależności od potrzeb ic
jest punktem, w którym przechwytujey axis
.x
jest zmienną wejściową iy
wyjściową.To jest wykres
y=mx+c
gdziem=1
ic=0
W przypadku wykresów kwadratowych robi się to trochę bardziej skomplikowane, więc będę trochę niejasny i sam będziesz musiał przeczytać szczegóły. Khan Academy jest naprawdę dobrym źródłem do nauczania tego. Ma ogólną formę
y=ax²+bx+c
.c
jest nadal punktem przecięcia y i można go dostosować, aby „podnieść” wykres.a
ib
oba wpływają na krzywą podobnie, ale w różnym stopniu.Jest
y=-x²+2x+10
. Zwróć uwagę na-x²
, co powoduje odwrócenie krzywej.Zasadniczo baw się wykresami, dopóki nie dostaniesz tego, czego chcesz, ale zdecydowanie polecam więcej, jeśli chcesz szybko i czysto zaprojektować doświadczenie. Podstawowe równania są ważne w grach i naprawdę interesujące.
Inne rzeczy, na które należy zwrócić uwagę, to wykresy wykładnicze i logarytmiczne , tj. Wykresy
y=e^x
i,y=ln(x)
aby uzyskać szybko rosnące i szybko malejące wykresy w zależności od transformacji. Oprócz tego pomocne są wektory i transformacje, które opisują to, co robisz na wykresie „bazowym”.źródło
1/x
. Oczywiście do takiej krzywej nie chceszx
, aby równe zeru, choć!y = a^x
że można ustawić suwak,a
aby grać z tą funkcją. Możesz mieć ich tyle, ile chcesz. Możesz nawet animować suwaki. Właściwie to całkiem miłe. (Odpowiednik MathematikiManipulate
.)Zmniejszające się zwroty = malejący instrument pochodny
Więc co musisz zrobić? Wybierz funkcję, która spełnia powyższe kryteria i zintegruj ją.
Najprostszym wyborem do tego zadania jest miejsce, w
g(t,n) = 1/(t+1)^n
którymn=1
wyznacza się granicę między ciągle rosnącymi i ograniczonymi funkcjami.Potrzebna
f(x,n) = ((x+1)**(1-n) - 1)/(1-n)
jest całka g od 0 do x: oto jak wygląda inaczej
n
I tutaj jest znormalizowany do tej samej wartości końcowej
Zmieniając wykładnik
n
można łatwo dostosować bilansowanie.Uwaga: Pochodną tutaj jest produkcja na gospodarstwo, podczas gdy całka jest całkowitą produkcją dla wielu gospodarstw
źródło
Ogólnie rzecz biorąc, równanie liniowe zacznie się od
y = mx + b
, gdzieb
jest twoja wartość początkowa, imx
to, w jaki sposób dostosowujesz wartość początkową wraz zex
wzrostem.Tak więc pierwsza część twojego równania będzie polegała na tym
b
,10
że chcesz, aby farmy zaczynały od 10 posiłków.Następnie, w twoim przypadku, chcesz dostosować żywność produkowaną przez co dziesięć gospodarstw. Będziesz musiał podzielić przez dziesięć, aby uzyskać równanie, które działa na każde dziesięć farm (zakładając, że
x / 10
zwraca liczbę całkowitą, tj .13 / 10 = 1
:Wreszcie musimy ustalić, w jaki sposób chcemy zmienić żywność dla każdej
x / 10
farmy. W twoim przypadku chcesz go zmniejszyć o 0,5 (5% z 10), co jest liniowe. Otrzymujemy więc:Tak na farmie
x = 5
, otrzymujemy5 / 10 = 0, 0 * -0.5 = 0, 0 + 10 = 10
. Za farmęx = 11
dostajemy11 / 10 = 1, 1 * -0.5 = -0.5, -0.5 + 10 = 9.5
, za farmę 23 dostalibyśmy 9,0.Następnie wystarczy obliczyć całkowitą żywność dla wszystkich gospodarstw.
Ale może ty o 5%, chciałeś, aby spadła o 5% poprzedniej wartości. Tj.
10, 10 * 0.95 = 9.5, 9.5 * 0.95 = 9.025
(W tym przypadku kwota, o którą zmniejszamy, staje się coraz mniejsza). Więc zmodyfikujmy równanie.5%
to wykładniczy wzrost typu, a formuła wykładnicza toy = b*m^x
.Nadal mamy
b = 10
i musimy dokonać podziału przez 10 lew. Więc mamyy = 10*m^(x/10)
.m
jest0.95
, ponieważ chcemy za każdym razem brać 95% wartości. Tak więc równanie dla farmyx
jesty = 10*0.95^(x/10)
.źródło
Czy zrobiłby to liniowy malejący zwrot? produkcja na gospodarstwo = (1 - (0,05 * (f / 10))) * wskaźnik produkcji. Daje to szczyt wartości całkowitej produkcji (wskaźnik * # gospodarstw) przy f = 100.
źródło
Możesz rozważyć rozwiązanie algorytmiczne, które pasuje do sytuacji.
To znaczy, zastanów się, dlaczego zwroty w twojej grze maleją, i modeluj je.
Wiele obiektów tego samego typu może przynosić coraz mniejsze zyski, ponieważ mogą istnieć inne zasoby lub obiekty, od których zależą, lub które powodują wąskie gardła lub inne sytuacje ograniczające, takie jak sieć dróg, dostępni pracownicy, transport lub słodka woda lub elektryczność lub cokolwiek innego.
Jedno gospodarstwo może wyprodukować 10 posiłków dziennie w idealnych warunkach, ale wymaga to również dwóch godzin pracy rolnika dziennie. Wymaga również jednej świeżej wody na jedzenie dziennie, a jego własna studnia zapewnia tylko do 5 wody dziennie. Resztę należy zabrać z sąsiedniego strumienia lub rzeki lub przywieźć transportem. Problemem może być także dostarczenie jedzenia tam, gdzie musi być przydatne. Itd. Usuń niektóre lub dodaj więcej w zależności od tego, co chcesz reprezentować, ale mogą to być o wiele bardziej interesujące i znaczące powody, które dodają zainteresowanie i wartość do innych systemów gier, w przeciwieństwie do sztucznej formuły matematycznej nie opartej na innych elementach gry .
źródło
Jeśli chcesz, aby uogólnione równanie zadzierało, możesz użyć wykresu cosinus: A * cos (Bx + C) + D
Ale zmień go na pół okresu, aby obejmował pseudo wykładniczy wzrost na początku, a następnie krótki okres liniowego wzrostu, aż do ostatecznie malejącego punktu zwrotów. Jedyny problem polega na tym, że wymagałoby to stworzenia nieprzekraczalnego sufitu. Więc po pewnej liczbie gospodarstw nie zobaczysz żadnego wzrostu.
Poniższy obraz to wykres wzrostu tempa dla 30-minutowych biegów, wykonując dokładnie ten sam trening w przygotowaniu. To oczywiście nie jest idealne, ale możesz być w stanie z tego skorzystać, aby znaleźć to, czego szukasz.
źródło