Найдите граф, который имеет 6 вершин, каждая из которых является концом или началом ребра и для которого код возвращается к 2 - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь создать граф, который имеет 6 вершин, все его вершины являются началом или концом ориентированного ребра, и следующий код возвращает число 2. Массив G в коде является матрицей смежности.

public static int exam(boolean[][] g){
 int r = 0;
 for (int i=0; i<g.length; i++){
  for (int j = i+1; j<g.length; j++){
   if (g[i][j] && g[j][i]){
    r++;
   }
  }
 }
 return r;
}

Мое решение это график

Это правильно? Спасибо!

1 Ответ

0 голосов
/ 28 апреля 2019

Из того, что вы написали, похоже, что вы вычисляете количество пар точек, соединяющих оба пути. На диаграмме, которую вы связали, соединения (0,1) и (4,5) совместно используют пары точек с (1,0) и (5,4) соответственно. Поэтому функция возвращает 2, как и ожидалось.

Я предполагаю, что матрица выглядит примерно так: (0 = false, 1 = true)

{{0,1,0,0,0,0},
 {1,0,1,0,0,0},
 {0,0,0,1,0,0},
 {0,0,0,0,1,0},
 {0,0,0,0,0,1},
 {1,0,0,0,1,0}}

Как видите, диагональ равна нулю, поскольку точки не соединяются между собой. Значения, отраженные по диагонали и равные 1, соединяют оба пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...