1
我需要找到圖的平均最優路徑。我決定使用Floyd-Warhsall的算法來獲得所有可能的最佳長度,但所有條目都用零寫入。有想法該怎麼解決這個嗎?圖的平均最優路徑
原點矩:
0 0 0 0 1 0
0 0 1 0 4 0
0 1 0 0 0 2
0 0 0 0 0 1
1 4 0 0 0 2
0 0 2 1 2 0
平均代碼:
double average = 0;
vector<vector<double> > p;
p = matrix;
for(int k = 0; k < vertices; k++)
{
for(int i = 0; i < vertices; i++)
{
for(int j = 0; j < vertices; j++)
{
if((p[i][k] + p[k][j] < p [i][j]))
{
p[i][j] = p[i][k]+p[k][j];
}
}
}
}
double sum = 0;
for(int i = 0;i < vertices; i++)
{
for(int j = 0; j < vertices; j++)
{
sum += p[i][j]; //adds up all entries
}
}
double fact = 0;
for(int i = 1; i < vertices; i++)
{
fact += i;
}
average = sum/fact;
return average;
你在哪裏定義'vertices'? –
@JoeFrambach它們是在一個類中定義的,它們只是圖中頂點的數量。 – user2057191