我正在尝试为以下任务找到合适的算法:
我有一定数量的资源(实际可用数量)。该数量以给定的速率(增加/分钟)不断增加。目标是从所有给定的选项 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. 选择时间最短的产品
你怎么看?