減少する回帰方程式の公式があります。ただし、通常は指数関数が関係します。そのような方程式を考え出す他の方法はありますか?たとえば、次のテストケースを考えてみましょう。1つの農場で10の食料が生産され、生産された10の農場ごとに生産率が5%低下します。
減少する回帰方程式の公式があります。ただし、通常は指数関数が関係します。そのような方程式を考え出す他の方法はありますか?たとえば、次のテストケースを考えてみましょう。1つの農場で10の食料が生産され、生産された10の農場ごとに生産率が5%低下します。
回答:
逓減利益方程式を定式化するために、私はすぐに分数を考えます。
これはのグラフです y=1/F
y
F
大きくなると小さくなります。これにより、0に達することのない安定したドロップオフが得られます。これから、希望する種類の曲線を得るためにそれを変換できます。0より大きい数値を使用すると、常に 0になることのない正の出力が得られます。
正直なところ、WolframAlphaにアクセスして、いくつかの方程式を入力し、描画されたグラフを見て、希望する曲線が得られるかどうかを確認することをお勧めします。それ以外は、線形方程式と二次方程式を読み上げて、数式で変更したいものがすぐにわかるようにします。これは、方程式を介してグラフをモデル化することは少し大きなトピックであり、ここでそれを完全に説明できれば、まず数学教師にその説明を売り込むからです。
基本的に、線形グラフの場合、覚えておいてくださいy=mx+c
。m
は勾配であり、必要なものに応じて正または負になり、をc
インターセプトするポイントy axis
です。x
入力変数でy
あり、出力です。
これは、のグラフであるとy=mx+c
m=1
c=0
二次グラフの場合、それはもう少し複雑になるので、私は少しあいまいになり、あなたは自分で詳細を読む必要があります。カーンアカデミーはこれを教える上で非常に優れたリソースです。一般的な形式y=ax²+bx+c
です。c
はまだy切片であり、それを微調整してグラフを「持ち上げる」ことができます。a
そして、b
の両方が、しかし、異なる程度に同様の曲線に影響を与えます。
これがありますy=-x²+2x+10
。に注意してください-x²
。これにより、曲線が反転します。
基本的に、必要なものが得られるまでグラフをいじりましょう。ただし、エクスペリエンスを迅速かつクリーンに設計したい場合は、さらに読むことを強くお勧めします。基本方程式はゲームにとって重要であり、非常に興味深いものです。
ノートへの他のものがあり、指数と対数グラフ、のすなわちグラフy=e^x
とy=ln(x)
変換に応じて急速に増加して取得するために、急速に減少したグラフ。これに加えて、ベクトルと変換は、「ベース」グラフの実行内容を説明するので役立ちます。
1/x
。もちろん、あなたがしたいことはありません、このような曲線のx
ために等しいものの、ゼロを!
y = a^x
ためのスライダーを追加できa
ます。これらは好きなだけ持つことができます。スライダーをアニメーション化することもできます。実際、とてもいいです。(Mathematicaに相当Manipulate
。)
利益の減少=微分の減少
それで、あなたは何をする必要がありますか?上記の基準に適合する関数を選択して統合します。
このタスクの最も簡単な選択はg(t,n) = 1/(t+1)^n
、n=1
増加する関数と制限された関数の境界をマークすることです。
0からxまでのgの積分が必要なものです:f(x,n) = ((x+1)**(1-n) - 1)/(1-n)
異なるものを探す方法を次に示しますn
そして、ここで同じ最終値に正規化されます
指数n
を変更することで、バランスを簡単に調整できます。
注:ここでの導関数は農場ごとの生産量であり、積分はいくつかの農場の総生産量です。
一般に、線形方程式はで始まりますy = mx + b
。ここb
で、開始値は、増加するにつれてmx
開始値を調整する方法ですx
。
だからあなたの方程式の最初の部分は、b
、になります10
あなたは農場は10食べ物で開始したいので。
y = mx + 10
次に、あなたのケースでは、10農場ごとに生産することで食物を調整したいと考えています。したがって、10のファームごとに機能する方程式を取得するには、10で除算する必要があります(x / 10
整数が返されると仮定すると、つまり13 / 10 = 1
:
y = m * (x / 10) + 10.
最後に、すべてのx / 10
農場でどのように食物を変えたいかを理解する必要があります。あなたの場合、0.5(10の5%)だけ減少させたいのですが、これは線形です。だから我々は得る:
y = -0.5 * ( x / 10 ) + 10.
それで、農場x = 5
では、私たちは得5 / 10 = 0, 0 * -0.5 = 0, 0 + 10 = 10
ます。ファームでx = 11
は11 / 10 = 1, 1 * -0.5 = -0.5, -0.5 + 10 = 9.5
23、ファームでは9.0になります。
次に、すべての農場の総食物を計算する必要があります。
y = 0
for( x = 0; x < totalFarms; x++ )
{
y += -5 * ( x / 10 ) + 10;
}
しかし、多分あなたは5%だけ、以前の値の5%だけ減少させたかったのです。すなわち、10, 10 * 0.95 = 9.5, 9.5 * 0.95 = 9.025
(この場合、減少する量はますます少なくなります)。方程式を修正しましょう。 5%
は指数型の増加であり、指数公式はy = b*m^x
です。
まだb = 10
あります。10で割る必要があります。だから私たちは持っていy = 10*m^(x/10)
ます。 m
ある0.95
我々は価値の95%を毎回取りたいから、。だから、ファームの方程式がx
ありますy = 10*0.95^(x/10)
。
線形減少リターンはありますか?農場ごとの生産量=(1-(0.05 *(f / 10)))*生産率。これにより、総生産(レート*農場の数)のピークがf = 100になります。
状況に合ったアルゴリズムのソリューションを検討することをお勧めします。
つまり、ゲームの状況で利益が減少している理由を考慮し、それらをモデル化します。
同じタイプの複数の施設の収益が減少する可能性があるのは、依存している、またはボトルネック、または道路網、利用可能な労働者または輸送または淡水などの他の制限状況をもたらす他のリソースまたは施設が存在する可能性があることです電気か何でも。
理想的な状況では、1つの農場で1日に10食を生産できますが、1日に2農民時間も必要です。また、1日1食あたり1つの新鮮な水が必要であり、独自の井戸は1日あたり最大5つの水しか供給しません。残りは、隣接する小川または川から取られるか、輸送によって持ち込まれる必要があります。また、有用であるために必要な場所に食べ物を届けることも問題かもしれません。表現したい内容に応じて一部を削除または追加しますが、これらは他のゲーム要素に基づかない人工的な数式とは対照的に、他のゲームシステムに興味と価値を追加するはるかに興味深い意味のある理由になる可能性があります。
一般化された方程式を混乱させたい場合は、コサイングラフを使用できます:A * cos(Bx + C)+ D
しかし、それを半周期に変更すると、最初に擬似指数関数的な上昇が含まれ、その後、線形に短い期間が増加し、最終的に収益の減少点になります。これに関する唯一の問題は、通過できない天井を作成する必要があることです。そのため、一定量の農場の後では、増加は見られません。
下の画像は、30分間のランニングのペースの増加のグラフで、準備とまったく同じワークアウトを行っています。それは明らかに完璧ではありませんが、探しているものを見つけるためにこれを回避することができるかもしれません。