我试图根据p的函数在图形的随机过程中删除边,其中p从0到1。在第一次迭代中,从图形中随机删除了0.1或10%的节点。在第二次迭代中,剩余边的20%被删除,依此类推。 当已删除的边缘再次出现在随机函数中时,发生了我的错误。
我的尝试
<span>
错误-
.text()
答案 0 :(得分:0)
您可以在for循环开始之前获得一组边。您需要从该集合中删除这些边缘,因为它们已从图形中删除,以免在以后的迭代中再次选择它们。
或者,在选择要删除的边之前,在每次迭代中从图形中获取边集。
答案 1 :(得分:0)
可能有以下解决方案。
在每次迭代中,您都要考虑当前百分比p
并删除p*number_of_remaining_edges
边。
import random
import networkx as nx
g = nx.fast_gnp_random_graph(20,0.3)
p_values = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]
for p in p_values:
g.remove_edges_from(random.sample(g.edges(),k=int(p*g.number_of_edges())))