import numpy as np

import networkx as nx

import matplotlib.pyplot as plt

from random import random,choice

'''

算法描述:

在用Fleury方法寻找欧拉回路的时候需要判断一条边删除之后余下的部分是否为连通图

这个程序用来判断一个图形是否为连通图

1.如果邻接矩阵中有零行,则可直接判断此图不联通

2.如果不联通就收缩一条边,将两个端点合并

3.持续进行2操作,如果最后所有的点都能收缩到一起,说明连通,如果不能收缩到一起,说明不联通

程序会按照你的输入生成一个随机的图形,并打印判断结果和画出图像

算法来自《关于Fleury算法的一点注记》(吕义忠)

'''

n=int(input('input node number: ')) #输入节点数目

m=int(input('input edge number: ')) #输入边数

while m&gt((n-1)*n/2):

print ('too many edges,input again')

n=int(input('input node number: ')) #输入节点数目

m=int(input('input edge number: ')) #输入边数

G = nx.Graph() #实例化nx

for i in range(n): #添加点

G.add_node(i)

counter=0

while counter &lt m: #添加9条边

a=choice(range(n))

b=choice(range(n))

if ((a,b) not in G.edges()) and (a!=b) and ((b,a) not in G.edges()):

G.add_edge(a,b)

counter+=1

def drawit(): #画图方法

pos=nx.spring_layout(G) #散点的排列模式为spring模式

nx.draw(G,pos)

plt.show()

def xor(a,b): #定义一个向量的亦或方法,返回异或运算后的向量

la=len(a)

lb=len(b)

c=zip(a,b)

L=[]

try:

for ai,bi in c:

if ai==bi:

L.append(0)

else:

L.append(1)

return L

except Exception as e:

print(e)

return

M=np.zeros((n,m)) #创建邻接矩阵的雏形

eds=G.edges()

eds=dict(map(lambda i,j:[i,j],list(range(m)),eds)) #将边编号,用字典表示

def connA(): #建立邻接矩阵

for i in range(m):

for j in range(n):

if (eds[i][0]==j) or (eds[i][1])==j:

M[j][i]=1

def inspectzeros(): #检查是否有零行

for i in range(len(M)):

if sum(M[i])==0:

flag=False

return i

return

def delline(Flag): #删除一行

M1=M[:Flag]

M2=M[Flag+1:]

Mc=np.vstack((M1,M2))

return Mc

if __name__=='__main__': #主函数

try:

connA()

Flag=inspectzeros()

#print(M)

if Flag is not None:

#delline(Flag)

print('it has at least two parts')

else:

while len(M)&gt1:

for j in range(m):

if M[0][j]!=0:

for i in range (1,n):

if M[i][j]!=0:

#print (i,j)

M[0]=xor(M[0],M[i])

python连通图_用python实现无向图的连通性判断相关推荐

  1. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  2. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  3. excel python插件_利用 Python 插件 xlwings 读写 Excel

    Python 通过 xlwings 读取 Excel 数据 去年底公司让我做设备管理,多次委婉拒绝,最终还是做了.其实我比较喜欢技术.做管理后发现现场没有停机率统计,而原始数据有,每次要自己在Exce ...

  4. 网络安全用python吗_使用Python进行网络安全渗透——密码攻击测试器

    相关文章: 本篇将会涉及: HTTP 基本认证 对HTTP Basic认证进行密码暴力攻击测试 什么是HTTP 基本认证 HTTP基本认证(HTTP Basic Authentication)是HTT ...

  5. 动态照片墙 python 实现_利用python生成照片墙的示例代码

    这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...

  6. python字符串_(Python基础教程之七)Python字符串操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  7. python 字符识别_使用python进行光学字符识别入门

    python 字符识别 语言模型设计 (Language Model Designing) Optical Character Recognition is the conversion of 2-D ...

  8. 类的继承python事例_【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸...

    作者:白宁超 2016年10月10日22:36:57 摘要:继一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc入门资料包含了基本要点.本文是对文档常用核心要点进行梳理,简 ...

  9. 【100天精通python】Day1:python入门_初识python,搭建python环境,运行第一个python小程序

    目录 专栏导读 1 初始python python 概述 python的应用领域 应用python的公司 2 搭建python 开发环境 2.1 安装python(以windows 系统为例)(1)下 ...

最新文章

  1. VC++实现Turbo码
  2. 进化之路:线程池来帮忙,却好心办坏事
  3. NoSQL数据库:数据的一致性
  4. camera(25)----拍照显示总结---名词解释
  5. 编程理论 —— 计算图框架
  6. PageRank与社交网络模型评估
  7. ubuntu下载安装nginx+nginx-rtmp-module
  8. STM8L串口中断进不去
  9. C语言期末试卷华师,2020华中师大计算机考研经验帖(已上岸)
  10. 比google earth还好的实景地图
  11. 谷歌大牛 Jeff Dean 是如何成为互联网战神的
  12. 第三次面试----蓝凌软件面试记录
  13. 常用中文字体的英文名称
  14. OpenCV训练分类器制作xml文档
  15. 上线 之 App Store审核指南
  16. 浙江大学计算机学院 耿卫东教授 是哪个实验室的,文化与科技的碰撞:2018首届中国文化计算大会在京举行...
  17. 用python对excel进行打印操作
  18. Educational Codeforces Round 118 (Rated for Div. 2)/C. Poisoned Dagger
  19. 【从零开始vnpy量化投资】一. vnpy初探 - 注册、安装、运行策略
  20. go集成gin+swagger

热门文章

  1. 便携式储能系统---“钱景”无限
  2. 5个开源免费的Java项目快速开发脚手架
  3. java内存 phd文件抓取,WAS 常常有heapdump.phd和javacore.txt文件产生
  4. 财政局计算机岗位总结,2018计算机专业技术个人总结与2018计财科财务工作总结汇编.docx...
  5. excapeXML相关
  6. 如何用USB启动系统
  7. 性能测试实践|PerfDog助力微信小游戏/小程序性能调优
  8. 微信开发之微信公众号
  9. 边缘态半无穷格林函数谱函数计算
  10. BugkuCTF-MISC-图穷匕见