欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

利用計算機尋找樹(python實現(xiàn)) - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

利用計算機尋找樹(python實現(xiàn))

發(fā)表時間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):57

from numpy import *
import numpy
import random
import itertools
def check(v):                          #判斷是否是回路
    i3,i4,i5,i6=0,0,0,0
    t=1
    c= numpy.zeros((m, n))             #創(chuàng)建一個與電路矩陣相同大小的零矩陣
    for i3 in v:
        c[:, int(i3)] = a1[:, int(i3)]
    for i4 in range(m):                #將后面所有列的元素與全部加到第一列
        for i5 in range(n-1):
            c[i4,0]+= c[i4,i5+1]
    for i6 in range(m):                #判斷第一列是都有0元素
        if c[i6,0]==0:
            t=0
            break
    if t==1:
        return 1                       #無0即不是回路,返回1 輸出
    else:
        return 0                       #有0即是回路,返回0 不輸出輸出

def C(n,i):                            #確定組合個數(shù)
    #n>=i
    Min=min(i,n-i)
    result=1
    for j in range(0,Min):
        result=result*(n-j)/(Min-j)
    return  result
#電路圖定義部分
if __name__ == '__main__':
    m = int(input("請輸入節(jié)點數(shù)"))
    n = int(input("請輸入支路數(shù)"))
    i = 0
    j = 0
    c = 0
    count = 0
    shu_num=0
    input1 = list(input("請輸入電路圖對應(yīng)矩陣"))
    for c in range(m - 1):
        input1.remove(' ')                  #移除字符串中的空格鍵
    q = list(input1)
    a1 = numpy.zeros((m, n))
    for i in range(m):
        for j in range(n):
            a1[i,j] = int(q[count])         #將list中的每一個元素分別給矩陣按行賦值
            count += 1

    list1 = []
    b=[]
    for i in range(n):
        list1.append(i)                    #list1存放1-n個數(shù)用來產(chǎn)生所有組合
    list2 = list(itertools.combinations(list1, m-1))
    num = int(C(n, m - 1))                 #調(diào)用C函數(shù)
    for i in range (num):
      if  check(list2[i])==1:              #調(diào)用check 檢查是否是回路函數(shù)
            shu_num+=1
            b = [m + 1 for m in list2[i]]
            print("該電路圖的樹",shu_num,b)
代碼驗證:

相關(guān)案例查看更多