I‘我在挣扎,如何使用动态规划找到你可以达到的最高金额,并对交易数量有一个指定的限制
发布于 2013-11-23 03:38:06
这不是一个优雅的解决方案,但它将适用于这个特定的问题(我猜我们有相同的教授)。
逻辑是,对于每个Vn,我们希望为每一个货币找到最高的值,为了做到这一点,我们必须计算出6个值中的最大值。
有6个值,因为有3种货币,而且每种货币都有两种可能的方法,可以将其转换为目标货币。
在这种情况下,由于只有两个交换,所以我只执行两个语句,而不是另一个循环。这是由数组中的0表示的: ratesc
我希望这能帮到你!
for (int n = 1; n <= numberOfTransactions; n++) {
for (int c = 0; c < numberOfcurrencies; c++) {
double max = Double.NEGATIVE_INFINITY;
double temp;
for (int i = 0; i < numberOfcurrencies;i++) {
temp = rates[0][i][c]*V[n-1][i];
if (temp > max)
max = temp;
temp = rates[1][i][c]*V[n-1][i];
if (temp > max)
max = temp;
}
V[n][c] = max;
}
}https://stackoverflow.com/questions/20157748
复制相似问题