python 存储数据到有向无环图_Python 随即生成DAG(有向无环图)

给校队选拔赛出了道DAG上的背包问题,需要生成DAG数据。

最开始使用的方法是先随机生成再判环,如果有环就重新生成。这种方法得到DAG的概率随着点数和边数的增加而急速降低,为了一个DAG要生成很多次,等很长时间。然后觉得这样的方法很stupid。。。

听了好甜给的先生成拓扑序的构造方法,这样可以保证生成的图里面没有环。

首先随机生成一个 1 到N 的permutation。这个permutation就是DAG的拓扑序,然后每次随机从前往后连边,这样就可以保证生成的是一个DAG了。真心膜拜

Life is short ,Use Python

from random import shuffle as sl

from random import randint as rd

def gn():

num = rd(1,1000)

return num

def w2f(f,num,fg):

f.write(str(num))

if fg==True:

f.write('\n')

else:

f.write(' ')

def DataMake(c):

MAXL =100000;

f = open('data'+str(c)+'.in','w')

n = 1000

node = range(1,n+1)

sl(node)

sl(node)

m = rd(1,min(n*n,5000))

w2f(f,n,0);w2f(f,m,1)

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 = rd(1,MAXL)

w = gn()

w2f(f,x,0);w2f(f,y,0);w2f(f,l,0);w2f(f,w,1)

k = gn()

w2f(f,k,1)

for i in range(0,k):

w2f(f,gn(),1)

print n,' node',m,' edges',k,'Queries'

f.close()

DataMake(1)

print 'Done'

JavaScript + SVG实现Web前端WorkFlow工作流DAG有向无环图

一.效果图展示及说明 (图一) (图二) 附注说明: 1. 图例都是DAG有向无环图的展现效果.两张图的区别为第二张图包含了多个分段关系.放置展示图片效果主要是为了说明该例子支持多段关系的展现(当前也 ...

[转帖]算法精解:DAG有向无环图

算法精解:DAG有向无环图 https://www.cnblogs.com/Evsward/p/dag.html DAG是公认的下一代区块链的标志.本文从算法基础去研究分析DAG算法,以及它是如何运用 ...

算法精解:DAG有向无环图

DAG是公认的下一代区块链的标志.本文从算法基础去研究分析DAG算法,以及它是如何运用到区块链中,解决了当前区块链的哪些问题. 关键字:DAG,有向无环图,算法,背包,深度优先搜索,栈,BlockCh ...

[转帖]MerkleDAG全面解析 一文读懂什么是默克尔有向无环图

MerkleDAG全面解析 一文读懂什么是默克尔有向无环图 2018-08-16 15:58区块链/技术 MerkleDAG作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点,今 ...

拓扑排序-有向无环图(DAG, Directed Acyclic Graph)

条件: 1.每个顶点出现且只出现一次. 2.若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面. 有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说. 一 ...

PGM学习之六 从有向无环图(DAG)到贝叶斯网络(Bayesian Networks)

本文的目的是记录一些在学习贝叶斯网络(Bayesian Networks)过程中遇到的基本问题.主要包括有向无环图(DAG),I-Maps,分解(Factorization),有向分割(d-Separ ...

Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配

/** 题目:Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配 链接:https://vjudge.net/proble ...

C#实现有向无环图(DAG)拓扑排序

对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在 ...

随机推荐

面向初学者之烦人的mainactivity启动前的actionBAR

相信各位初学者的童鞋都遇到过一个问题,(大神们就别喷我哦,多多帮帮指正,嘿嘿)那就是当你点开你开发的软件或者是dome时,会发现这么一个问题: 你曾今以为你的软件点开的时候是这样的: 然而事实是残酷的 ...

dojo布局(layout)

使用BorderContainer和ContentPane实现布局 1.效果图如下: 2.HTML代码:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值