当前位置: 首页 > 知识库问答 >
问题:

如何在python中创建带负边权的随机单源随机无环有向图

隗高旻
2023-03-14

有没有一种方法可以在NetworkX甚至没有NetworkX的情况下做到这一点?

共有1个答案

葛学民
2023-03-14

您可以使用gnp_random_graph()生成器生成随机DAG,并且只保留从较低索引指向较高索引的边。例如。

In [44]: import networkx as nx

In [45]: import random

In [46]: G=nx.gnp_random_graph(10,0.5,directed=True)

In [47]: DAG = nx.DiGraph([(u,v,{'weight':random.randint(-10,10)}) for (u,v) in G.edges() if u<v])

In [48]: nx.is_directed_acyclic_graph(DAG)
Out[48]: True

这些可能有不止一个源,但是你可以用@Christopher的建议来解决这个问题,即创建一个指向所有源的“超级源”。

对于小的连接概率值(上面的p=0.5),这些也不太可能连接。

 类似资料:
  • 问题内容: 这个问题:如何生成随机BigInteger描述了一种与BigIntegers实现与Random.nextInt(int n)相同的语义的方法。 我想对BigDecimal和Random.nextDouble()做同样的事情。 上述问题的一个答案建议创建一个随机的BigInteger,然后从中以随机的比例创建一个BigDouble。一个非常快速的实验表明这是一个非常糟糕的主意:) 我的直

  • 总结 因此,我有一个有向无环加权图,其中每条边都有一个输入和输出节点,每个节点都有一个ID,我使用一个字典将所有传入的边映射到一个节点的ID,并使用另一个字典对所有传出的边进行同样的操作,这样,当出现节点ID时,我可以在大约O(1)时间内告诉所有传入和传出的边。 要求 我需要能够添加新的随机边(即连接两个随机节点),以保证无论图有多大,它都不会有任何循环。 我试过的 由于我完全控制如何构建我的图,

  • 我是C#新手,在我创建的这个随机数猜谜游戏中,我很难理解哪里出错了。我试图在第30行的do time循环中添加一个random.next命令,当我运行程序时,它会说我的猜测太高或太低,我不明白出了什么问题。这是未完成的代码: 如果我删除numberTo猜测=随机。下一个(100)1;代码工作正常,但重复相同的随机数。 请帮忙。

  • 问题内容: 我尝试使用,但一些数字相同。有没有一种方法/模块来创建唯一的随机数列表? 问题答案: 这将返回从0到99范围内选择的10个数字的列表,没有重复。 参考你的特定代码示例,你可能希望一次从文件中读取所有行,然后从内存中的已保存列表中选择随机行。例如: 这样,你只需要在循环之前实际从文件中读取一次即可。与返回文件开头并为每次循环迭代再次调用相比,执行此操作效率更高。

  • 本文向大家介绍如何随机化R中已经创建的向量?,包括了如何随机化R中已经创建的向量?的使用技巧和注意事项,需要的朋友参考一下 有些向量是在R中随机创建的,而有些不是在R中随机创建的,但是我们可以对这两种类型的向量进行随机化处理。随机化可确保无偏性,因此,特别是在创建具有易于改变分析结果的目标的矢量时,这是必要的。R中的随机化可以简单地借助样本函数完成。 不是随机创建的向量的随机化- 随机创建的向量的

  • 问题内容: 我正在用python创建一个项目,我想创建一个加密安全的随机数,我该怎么做?我已经在线阅读了常规随机生成器生成的数字不是密码安全的信息,并且该函数返回的是我的字符串,而不是数字。 问题答案: 您可以通过将函数应用于所返回的字节来获取随机数列表,如下所示 报价文件, 返回 适合加密使用* 的随机字节字符串。 * 该函数从特定于操作系统的随机性源返回随机字节。尽管返回的数据的确切质量取决于