У меня есть массив для хранения набора координат для рисования отрезка линии. Итак, вот несколько примеров координат
double[][] plotMatrix = {{10,20},{55,80},
{120,40},{225,30},
{327.5,100},
{427.5,30},
{529,60}};
Следующим шагом является создание двумерной матрицы Маркова.
![enter image description here](https://i.stack.imgur.com/DpPR6.png)
Сначала я считаю время, когда за точкой из левого столбца следует точка в верхнем столбце. Поскольку я хочу линию, за каждой точкой следует еще одна отдельная точка. Это означает, что если на входе у нас {10,20}, то вероятность того, что {55,80} будет следующей точкой, равна 100%.
Я не совсем уверен во всем этом, поэтому, пожалуйста, поправьте меня!
Так что это моя матрица
double[][] markovMatrix = { {0.0,1.0,0.0,0.0,0.0,0.0,0.0},
{0.0,0.0,1.0,0.0,0.0,0.0,0.0},
{0.0,0.0,0.0,1.0,0.0,0.0,0.0},
{0.0,0.0,0.0,0.0,1.0,0.0,0.0},
{0.0,0.0,0.0,0.0,0.0,1.0,0.0},
{0.0,0.0,0.0,0.0,0.0,0.0,1.0},
{0.0,0.0,0.0,0.0,0.0,0.0,0.0}};
Мой алгоритм:
int seed = 0;
int output = 0;
for(int i = 0; i < 40;i++){
double choice = r.nextDouble();
double currentSum = 0.0;
for(;output < markovMatrix.length;output++){
currentSum += markovMatrix[seed][output];
if(choice <= currentSum){
break;
}
}
System.out.println(output);
polygon.lineTo(plotMatrix[output][0], plotMatrix[output][1]);
seed = output;
output = 0;
}
Моя проблема в том, что я получаю ArrayOutOfBoundsException:7
, когда пытаюсь получить доступ к plotMatrix и markovMatrix. Однако выход устанавливается на 0 в конце каждого цикла. Есть идеи, как решить эту проблему?