f分布表完整图a=0.01_图 python 实现
圖的基本術語
有向圖:圖中的每條邊都有方向的圖叫有向圖。此時,邊的兩個頂點有次序關系,有向邊 < u,v>成為從頂點u到頂點v的一條弧,u成為弧尾(始點),v成為弧頭(終點),即有向圖中弧 < u,v>和弧 < v,u> 表示不同的兩條邊。
無向圖:圖中的每條邊沒有方向的圖。邊的兩個頂點沒有次序關系,無向圖用邊(u,v)表示對稱弧< u,v>和< v,u>。
權:圖中的邊或弧上有附加的數量信息,這種可反映邊或弧的某種特征的數據成為權。
網:圖上的邊或弧帶權則稱為網。可分為有向網和無向網。
鄰接和關聯:若邊e=(u,v)或弧e= < u,v>,則稱點u和v互為鄰接頂點,并稱邊e或弧e關聯于頂點u和v。
度:在無向圖中,與頂點v關聯的邊的條數成為頂點v的度。有向圖中,則以頂點v為弧尾的弧的條數成為頂點v的出度,以頂點v為弧頭的弧的條數成為頂點v的入度,而頂點v的度=出度+入度。圖中各點度數之和是邊(或弧)的條數的2倍。
圈:圖中聯接同一個頂點的邊叫圈。
平行邊:圖中兩個頂點之間若有兩條或兩條以上的邊,稱這些邊為平行邊。
簡單圖:沒有圈也沒有平行邊的圖。
有向完全圖:有n個頂點,n(n-1)條弧的有向圖。每兩個頂點之間都有兩條方向相反的邊連接的圖。
完全圖:有n個頂點,n(n-1)/2條邊的無向圖。若一個圖的每一對不同頂點恰有一條邊相連,則稱為完全圖。完全圖是每對頂點之間都恰連有一條邊的簡單圖。
路徑長度:路徑上邊或弧的數目。若路徑上的各頂點均不相同,則稱這條路經為簡單路經(或路),除第一個和最后一個頂點相同外,其他各頂點均不相同的路徑成為回路(或環)。
連通圖:在無向圖G中,對與圖中的任意兩個頂點u、v都是連通的,則稱圖G為連通圖。
強連通圖:在有向圖G中,如果對于每一對Vi和Vj 屬于頂點集V,Vi不等于Vj ,從Vi到Vj和從Vj到Vi都存在路徑,則稱G是強連通圖。
強連通分量:有向圖中的極大強連通子圖稱做有向圖的強連通分量。
生成樹:一個連通圖的生成樹是一個極小的連通子圖,它含有圖中全部的n個頂點,但只有足以構成一棵樹的n-1條邊。
有向樹:如果一個有向圖恰有一個頂點的入度為0,其余頂點的入度為1,則是一棵有向樹。
圖的存儲結構
圖的存儲結構,常用的是”鄰接矩陣”和”鄰接表”。
鄰接矩陣
鄰接矩陣是指用矩陣來表示圖。它是采用矩陣來描述圖中頂點之間的關系(及弧或邊的權)。
假設圖中頂點數為n,則鄰接矩陣定義為:
下面通過示意圖來進行解釋。
圖中的G1是無向圖和它對應的鄰接矩陣。
圖中的G2是無向圖和它對應的鄰接矩陣。
通常采用兩個數組來實現鄰接矩陣:一個一維數組用來保存頂點信息,一個二維數組來用保存邊的信息。
鄰接矩陣的缺點就是比較耗費空間。
鄰接表
鄰接表是圖的一種鏈式存儲表示方法。它是改進后的”鄰接矩陣”,它的缺點是不方便判斷兩個頂點之間是否有邊,但是相對鄰接矩陣來說更省空間。
圖中的G1是無向圖和它對應的鄰接矩陣。
圖中的G2是無向圖和它對應的鄰接矩陣。
圖的python實現
在Python中,圖主要是通過列表和詞典來構造。
實現的功能:
- 尋找一條路徑
- 查找所有的路徑
- 查找最短路徑
完整的代碼實現:
''' 圖的表示:A --> BA --> CB --> CB --> DC --> DD --> CE --> FF --> C''' #找一條路 def find_path(graph,start,end,path=[]):path = path + [start]if start == end:return pathif start not in graph.keys():return Nonefor node in graph[start]:if node not in path:newpath = find_path(graph,node,end,path)if newpath:return newpathreturn path if __name__ == '__main__':graph = {'A': ['B', 'C'],'B': ['C', 'D'],'C': ['D'],'D': ['C'],'E': ['F'],'F': ['C']}print(find_path(graph,'A','D'))總結
以上是生活随笔為你收集整理的f分布表完整图a=0.01_图 python 实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《征信业务管理办法》发布
- 下一篇: 在线坐标纸打印输出