我有以下代码,我正在尝试将其从 C++ 转换为 Java。该代码应该生成一个二叉树,用于计算股票期权价格。以下是以下 C++ 代码:
class Price {
public:
double stockPrice;
double optionPrice;
};
int numIntervals = 500;
Price ** binomialTree;
binomialTree = new Price*[numIntervals+1];
for (i = 0; i <= numIntervals; i++) {
binomialTree[i] = new Price[i + 1];
}
for (i = 0; i <= numIntervals; i++) {
for (j = 0; j <= i; j++) {
binomialTree[i][j].stockPrice = sNaught * pow(up, j) * pow(down, i-j);
}
}
我需要初始化二叉树的java代码,这样我就可以遍历它并计算各种价格。让我失望的部分是binomialTree[i] = new Price[i+1];
发生在循环内部的部分,它使二维数组成为动态的,这是您在 java 中无法做到的。这就是我想出的结果,但与给出的值相比,结果价格是不正确的。
class Price {
double stockPrice = 0.0;
double optionPrice = 0.0;
Price(double sP, double oP) {
this.stockPrice = sP;
this.optionPrice = oP;
}
}
int i,j;
Price[][] binomialTree = new Price[numIntervals+1][numIntervals+2];
for (i = 0; i <= numIntervals; i++) {
for (j = 0; j <= i; j++) {
binomialTree[i][j] = new Price(option.getsNought() * Math.pow(up, j) * Math.pow(down, i-j), 0);
}
}