線を描画するための一連の座標を格納する配列があります。ここにいくつかの例の座標があります
double[][] plotMatrix = {{10,20},{55,80},
{120,40},{225,30},
{327.5,100},
{427.5,30},
{529,60}};
次のステップは、2 次元のマルコフ行列を作成することです。
最初に、左の列のポイントの後に上の列のポイントが続く回数を数えます。線が必要なので、各ポイントの後に別の単一のポイントが続きます。つまり、入力として {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 に設定されます。その問題を解決する方法はありますか?