1

我正在尝试为以下任务找到合适的算法:

我有一定数量的资源(实际可用数量)。该数量以给定的速率(增加/分钟)不断增加。目标是从所有给定的选项 a、...、n(这里:option_A、option_B、Option_C)中购买所有可用的产品。

现在,根据上涨的资源,哪个产品可以更早购买(这里:option_A4,option_B3,option_C3)?

Actual available quantity                   
Resource A  142             
Resource B  56              
Resource C  383             
Resource D  335             

Increase/min                    
Resource A  2               
Resource B  263             
Resource C  482             
Resource D  301             

Option_A    ResA    ResB    ResC    ResD    bought
Product 1   00032   00066   00058   00008   *
Product 2   00292   00395   00407   00024   *
Product 3   01752   03555   02033   00073   *
Product 4   03505   31999   12200   00294   
Product 5   07009   63998   85401   02938   

Option_B    ResA    ResB    ResC    ResD    bought
Product 1   00008   00048   00006   00034   *
Product 2   00049   00240   00012   00134   *
Product 3   00098   01438   00083   00806   
Product 4   00491   04314   00499   06451   
Product 5   03929   08628   04985   12901   

Option_C    ResA    ResB    ResC    ResD    bought
Product 1   00022   00011   00024   00078   *
Product 2   00111   00106   00122   00699   *
Product 3   00334   00211   00610   04892   
Product 4   00669   01477   01831   39137   
Product 5   06020   04432   16482   78275   

我不知道是否已经有解决此类任务的算法,但我的方法是:

方法A
1. 实际可用数量
的位数之和 2. 每个产品的位数之
和 3. 将实际可用数量之和与每个产品之和进行比较
4. 识别距离较小的产品

这很容易,但它只是描绘了实际情况,没有涉及不断增加的资源。

方法 B
1. 根据资源的实际数量加上增长率,计算到达每一个资源需要多长时间。

例如,对于 Option_A、产品 1、ResA:
需要:3505
可用:142
增加:2/min
需要:3363 (3505-142)
达到要求后的时间:1681,5min (3363/2)
2. ResB、ResC、ResD 重复并将时间相加
3. 对每个产品重复 1+2
4. 选择时间最短的产品

你怎么看?

4

1 回答 1

2

看起来你正在为C&C Tiberium Alliances之类的资源管理游戏构建脚本,哈哈

我的回答是:你的第二种方法就是这样,有一些改动。

在您的第二步中,您不求时间,而是选择其中的最大值。这是因为所有资源都在同时增加,对吧?

看这个例子:

            Res A   Res B   Res C   Res D
Current       142      56     383     335
Increment       2     263     482     301

Product 4    3505   31999   12200     294
Required     3353   31943   11817       0
Time       1676.5   121.5    24.5       0 mins

所以你需要 1676.5 分钟,直到 Res A 足以购买产品 4(选项 A),Res B 需要 121.5 分钟,Res C 需要 24.5 分钟,Res D 不需要,因为它已经足够了。

您实际购买产品 4 所需的时间为 1676.5 分钟(即最长)

然后,您对尚未购买的每个产品重复此操作,然后随着剩余时间的增加进行排序。

希望这可以帮助!

于 2013-09-10T03:20:14.550 回答