主要方法是运用Top排序倒退回来,这里我考虑到节点和和边内容的一些关系,假设有n个节点,这里控制边的个数为[n-1,(n*(n-1)/2+1]
from random import randint as rd
import numpy as np
def DataMake():
n=int(input("请输入设置的节点数:"))
node=range(1,n+1)
node=list(node)
m=rd(n-1,(n*(n-1))/2+1)
DAG=np.zeros((n,n))
for i in range(0,m):
p1=rd(1,n-1)
p2=rd(p1+1,n)
x=node[p1-1]
y=node[p2-1]
l=np.random.randint(10,20)
if DAG[x-1][y-1]!=0:
continue
else:
DAG[x-1][y-1]=l
print(DAG)
np.savetxt("DAG.txt",DAG,fmt='%.2f')
DataMake()