首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成随机图

生成随机图
EN

Stack Overflow用户
提问于 2016-04-20 02:08:43
回答 1查看 3.9K关注 0票数 2

让人输入一个整数N作为图中的顶点数。

  • 在每条边上指定从1到10的随机权重。但并不是所有可能的边都存在!如上面的例子所示,X表示一个缺失的边缘。
  • 返回一对(M,L),其中M和L分别是生成的(相同)随机图的矩阵和列表表示。
  • 使用非数字字符作为顶点名,以避免与边缘权重混淆.

代码语言:javascript
复制
#include <iostream>
#include <stdlib.h>
using namespace std;
void gen_random_graph(int n)
{
    int adj_matrix[n][n];
    for(int u = 0; u < n; u++)
    {
        for (int v = 0; v < n; v++)
        {
            if(adj_matrix[u][v]==adj_matrix[v][u])
            {
                adj_matrix[u][v] = rand() % 10 + 1;
                cout << adj_matrix[u][v] << endl;
            }
        }
    }

}

int main()
{
    int N;
    cout << "enter number of vertices" << endl;
    cin >> N;
    gen_random_graph(N);

    return 0;
}

目前为止,THis是我的代码。它能产生重量吗?我要退一双是什么意思?

EN

回答 1

Stack Overflow用户

发布于 2016-04-20 02:23:35

图可以表示为N邻接矩阵(正如您已经设置的那样),其中matrix[i][j]中的值对应于连接顶点i到顶点j的边的权重。零对应于ij之间没有连接。如果是matrix[i][j] == matrix[j][i],则有一个无向图。此外,随机图将具有随机值作为顶点之间的边。

在每个边都存在或不存在的情况下(即权重为0或1),可以有以下内容:

这张照片是从网上偷来的,所以我不相信它。请注意,您可以很容易地确认第一个图是无向的,因为邻接矩阵是对称的。同样,第二个图是有向的,因为矩阵是不对称的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36732586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档