2013-11-23 37 views
0

林挣扎如何找到可以与交易的动态规划动态规划?

+2

我不明白这个问题(甚至是你想解决的问题)是什么。 –

回答

1

这不是一个完美的解决方案的数量规定限额达到美元的最高金额,但它会为这个特定问题的工作(我猜我们有同一位教授)。

逻辑是,对于每个V [n] [c]我们希望为每个货币单位找到可能的最高值,为了做到这一点,我们必须计算6个值中的最大值。

有6个值,因为有3种货币,而且每种货币都有两种可能的方式可以转换为目标货币。

在这种情况下,因为只有2个交易所,我只是做两个陈述而不是另一个循环。这由数组中的0表示:rates [0] [i] [c]

我希望这有助于!

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; 
     } 
    }