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/分
必要: 3363 (3505-142)
要件に達してからの時間: 1681.5 分 (3363/2)
2. ResB、ResC、ResD について繰り返します。
3. すべての製品について 1+2 を繰り返します4.時間
が最も短い製品を選択します

どう思いますか?

4

1 に答える 1

2

C&C Tiberium Alliancesのような資源管理ゲームのスクリプトを作成しているようですね。

私の答えは次のとおりです。あなたの2番目のアプローチは、いくつかの変更を加えた方法です。

2 番目のステップでは、時間を合計するのではなく、最大のものを選択します。これは、すべてのリソースが同時に増加しているからですよね?

次の例を参照してください。

            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

したがって、Res A が (オプション A の) Product 4 を購入するのに十分になるまでに 1676.5 分、Res B に 121.5 分、Res C に 24.5 分、Res D にはもう十分なので何も必要ありません。

製品 4 を実際に購入できるようになるまでに必要な時間は、1676.5 分 (つまり、最大) です。

次に、まだ購入されていないすべての製品についてこれを繰り返し、残り時間の昇順で並べ替えます。

お役に立てれば!

于 2013-09-10T03:20:14.550 に答える