区間グラフを生成するためのアルゴリズムや簡単な手順はありますか? ノード
を使用して間隔グラフを生成する必要があります。ここで、1 から 10000 まで変化します。
可能であれば、グラフの発生行列表現が必要です。
追加の制限は、これらすべてのグラフを完成させないことです。n
n
よろしくお願いします!
==追加==
Java での実装は次のとおりです。
public Object generate(int numberOfNodes) {
int listCapacity = numberOfNodes * 2;
List<Integer> arr = new ArrayList<Integer>();
int[][] adjacencyMatrix = new int[numberOfNodes][numberOfNodes];
Integer nodeNumber = 0;
for (int i = 0; i < listCapacity; i = i + 2) {
arr.add(nodeNumber);
arr.add(nodeNumber);
nodeNumber++;
}
Collections.shuffle(arr);
for (int i = 0; i < numberOfNodes; i++) {
for (int j = arr.indexOf(i); j < arr.lastIndexOf(i); j++) {
adjacencyMatrix[i][arr.get(j)] = 1;
adjacencyMatrix[arr.get(j)][i] = 1;
}
adjacencyMatrix[i][i] = 0;
}
return new Graph(adjacencyMatrix);
}
ただし、場合によっては、間隔グラフを作成できないことがあります。