那里有一个递减收益方程的公式。但是,这些通常涉及指数。还有什么其他方法可以得出这样的方程式?以下面的测试案例为例-一个农场生产10种食物,每生产10个农场,生产率下降5%。
那里有一个递减收益方程的公式。但是,这些通常涉及指数。还有什么其他方法可以得出这样的方程式?以下面的测试案例为例-一个农场生产10种食物,每生产10个农场,生产率下降5%。
Answers:
为了制定收益递减方程,我会立即考虑分数。
这是一张图 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
接下来,您要调整每十个农场生产的食物的数量。因此,您将需要除以十来得到一个适用于每十个场的方程式(假设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时达到峰值。
您可能需要考虑一种匹配情况的算法解决方案。
就是说,考虑一下为什么您的游戏情况的收益会递减,并进行建模。
相同类型的多种设施的收益可能递减,因为它们可能依赖于其他资源或设施,或者导致瓶颈或其他限制情况,例如道路网,可用的工人,运输工具或淡水或电力或其他。
在理想情况下,一个农场每天可以生产10个食物,但每天也需要两个农夫小时。每天每种食物还需要一个淡水,而自己的水井每天最多只能提供5个水。其余的必须从邻近的溪流或河流中带走,或通过运输带入。将食物运送到需要使之有用的地方也可能是一个问题。等等,根据您要代表的内容删除一些内容或添加更多内容,但这可能是更有趣和有意义的原因,这会给其他游戏系统增加兴趣和价值,而不是基于不基于其他游戏元素的人工数学公式。
如果要让广义方程式混乱,可以使用余弦图:A * cos(Bx + C)+ D
但是将其修改为半个周期,因此它将包括在开始时的伪指数上升,然后是短暂的线性上升,直到最终收益递减点。唯一的问题是将需要创建一个无法逾越的天花板。因此,经过一定数量的农场后,您将看不到任何增加。
下图是30分钟跑步过程中步伐增加的图表,准备时进行的锻炼完全相同。这显然不是完美的,但是您可以解决这个问题以找到所需的内容。