歐拉回路是數(shù)學(xué)家歐拉在研究著名的德國(guó)哥尼斯堡(Koenigsberg)七橋問(wèn)題時(shí)發(fā)現(xiàn)的。如圖1所示,流經(jīng)哥尼斯堡的普雷格爾河中有兩個(gè)島,兩個(gè)島與兩岸共4處陸地通過(guò)7座楊 彼此相聯(lián)。7橋問(wèn)題就是如何能從任一處陸地出發(fā),經(jīng)過(guò)且經(jīng)過(guò)每個(gè)橋一次后回到原出發(fā)點(diǎn)。
這個(gè)問(wèn)題可抽象為一個(gè)如圖2所示的數(shù)學(xué)意義上的圖,其中4個(gè)結(jié)點(diǎn)分別表示與4塊陸土Il 對(duì)應(yīng),如結(jié)點(diǎn)C對(duì)應(yīng)河岸C,結(jié)點(diǎn)A對(duì)應(yīng)島A等,而結(jié)點(diǎn)之間的邊表示7座橋。
歐拉由此提出 了著名的歐拉定理。
1)歐拉路:通過(guò)圖中所有邊的簡(jiǎn)單路。
2)歐拉回路:閉合的歐拉路。
3)歐拉圖:包含歐拉回路的圖。
以下判斷基于此圖的基圖連通。
無(wú)向圖存在歐拉回路的充要條件
一個(gè)無(wú)向圖存在歐拉回路,當(dāng)且僅當(dāng)該圖所有頂點(diǎn)度數(shù)都為偶數(shù),且該圖是連通圖。
有向圖存在歐拉回路的充要條件
一個(gè)有向圖存在歐拉回路,所有頂點(diǎn)的入度等于出度且該圖是連通圖。
混合圖存在歐拉回路條件
要判斷一個(gè)混合圖G(V,E)(既有有向邊又有無(wú)向邊)是歐拉圖,方法如下:
假設(shè)有一張圖有向圖G',在不論方向的情況下它與G同構(gòu)。并且G'包含了G的所有有向邊。那么如果存在一個(gè)圖G'使得G'存在歐拉回路,那么G就存在歐拉回路。
其思路就將混合圖轉(zhuǎn)換成有向圖判斷。實(shí)現(xiàn)的時(shí)候,我們使用網(wǎng)絡(luò)流的模型?,F(xiàn)任意構(gòu)造一個(gè)G'。用Ii表示第i個(gè)點(diǎn)的入度,Oi表示第i個(gè)點(diǎn)的出度。如果存在一個(gè)點(diǎn)k,|Ok-Ik|mod 2=1,那么G不存在歐拉回路。接下來(lái)則對(duì)于所有Ii>Oi的點(diǎn)從源點(diǎn)連到i一條容量為(Ii-Oi)/2的邊,對(duì)于所有Ii
無(wú)向圖歐拉回路解法
求歐拉回路的一種解法
下面是無(wú)向圖的歐拉回路輸出代碼:注意輸出的前提是已經(jīng)判斷圖確實(shí)是歐拉回路。
C語(yǔ)言代碼,不全,請(qǐng)不要直接粘貼。
intnum=0;//標(biāo)記輸出隊(duì)列 intmatch[MAX];//標(biāo)志節(jié)點(diǎn)的度,無(wú)向圖,不區(qū)分入度和出度 voidsolve(intx) { if(match[x]==0) Record[num ]=x; else { for(intk=0;k<=500;k ) { if(Array[x][k]!=0) { Array[x][k]--; Array[k][x]--; match[x]--; match[k]--; solve(k); } } Record[num ]=x; } }
pascal代碼:
求無(wú)向圖的歐拉回路(遞歸實(shí)現(xiàn))
programeuler; constmaxn=10000;{頂點(diǎn)數(shù)上限} maxm=100000;{邊數(shù)上限} typetnode=^tr; tr=record f,t:longint;{邊的起始點(diǎn)和終止點(diǎn)} al:boolean;{訪問(wèn)標(biāo)記} rev,next:tnode;{反向邊和鄰接表中的下一條邊} end; varn,m,bl:longint;{頂點(diǎn)數(shù),邊數(shù),基圖的極大連通子圖個(gè)數(shù)} tot:longint; g:array[1..maxn]oftnode; d:array[1..maxn]oflongint;{頂點(diǎn)的度} fa,rank:array[1..maxn]oflongint;{并查集中元素父結(jié)點(diǎn)和啟發(fā)函數(shù)值} list:array[1..maxm]oftnode;{最終找到的歐拉回路} o:boolean;{原圖中是否存在歐拉回路} procedurebuild(ta,tb:longint);{在鄰接表中建立邊(ta,tb)} vart1,t2:tnode; begin t1:=new(tnode); t2:=new(tnode); t1^.f:=ta; t1^.t:=tb; t1^.al:=false; t1^.rev:=t2; t1^.next:=g[ta]; g[ta]:=t1; t2^.f:=tb; t2^.t:=ta; t2^.al:=false; t2^.rev:=t1; t2^.next:=g[tb]; g[tb]:=t2; end; proceduremerge(a,b:longint);{在并查集中將a,b兩元素合并} varoa,ob:longint; begin oa:=a; whilefa[a]<>adoa:=fa[a]; fa[oa]:=a; ob:=b; whilefa[b]<>bdob:=fa[b]; fa[ob]:=b; ifa<>bthenbegin dec(bl);{合并后,基圖的極大連通子圖個(gè)數(shù)減少1} ifrank[a]=rank[b]theninc(rank[a]); ifrank[a]>rank[b]thenfa[b]:=aelsefa[a]:=b; end; end; procedureinit;{初始化} vari,ta,tb:longint; begin fillchar(fa,sizeof(fa),0); fillchar(rank,sizeof(rank),0); fillchar(d,sizeof(d),0); readln(n,m); fori:=1tondofa[i]:=i; bl:=n; fori:=1tomdobegin readln(ta,tb); build(ta,tb); inc(d[tb]); inc(d[ta]); merge(ta,tb); end; end; proceduresearch(i:longint);{以i為出發(fā)點(diǎn)尋找歐拉回路} varte:tnode; begin te:=g[i]; whilete<>nildobegin ifnotte^.althenbegin te^.al:=true; te^.rev^.al:=true; search(te^.t); list[tot]:=te; dec(tot); end; te:=te^.next; end; end; proceduremain;{主過(guò)程} vari:longint; begin o:=false; fori:=1tondo ifd[i]=0thendec(bl);{排除孤立點(diǎn)的影響} ifbl<>1thenexit;{原圖不連通,無(wú)解} fori:=1tondo ifodd(d[i])thenexit;{存在奇點(diǎn),無(wú)解} o:=true; fori:=1tondo ifd[i]<>0thenbreak; tot:=m; search(i);{從一個(gè)非孤立點(diǎn)開(kāi)始尋找歐拉回路} end; procedureprint;{輸出結(jié)果} vari:longint; begin ifnotothenwriteln('Nosolution.')elsebegin writeln(list[1]^.f); fori:=1tomdowriteln(list[i]^.t); end; end; begin init; main; print; end.
注意record中的點(diǎn)的排列是輸出的倒序,因此,如果要輸出歐拉路徑,需要將record倒過(guò)來(lái)輸出。
求歐拉回路的思路:
循環(huán)的找到出發(fā)點(diǎn)。從某個(gè)節(jié)點(diǎn)開(kāi)始,然后查出一個(gè)從這個(gè)出發(fā)回到這個(gè)點(diǎn)的環(huán)路徑。這種方法不保證每個(gè)邊都被遍歷。如果有某個(gè)點(diǎn)的邊沒(méi)有被遍歷就讓這個(gè)點(diǎn)為起點(diǎn),這條邊為起始邊,把它和當(dāng)前的環(huán)銜接上。這樣直至所有的邊都被遍歷。這樣,整個(gè)圖就被連接到一起了。
具體步驟:
1。如果此時(shí)與該點(diǎn)無(wú)相連的點(diǎn),那么就加入路徑中
2。如果該點(diǎn)有相連的點(diǎn),那么就加入隊(duì)列之中,遍歷這些點(diǎn),直到?jīng)]有相連的點(diǎn)。
3。處理當(dāng)前的點(diǎn),刪除走過(guò)的這條邊,并在其相鄰的點(diǎn)上進(jìn)行同樣的操作,并把刪除的點(diǎn)加入到路徑中去。
4。這個(gè)其實(shí)是個(gè)遞歸過(guò)程。
一、你先告訴我暗配管為什么要剔槽(明配管也不需要剔槽)。二、墻高3.5米和4米,層高是幾米?0.711是在底板上,還是在頂板上?三、附上沒(méi)有識(shí)別的原sad圖。以上三條解決了,才能幫你分析分析。
沒(méi)拉閘,如果拉閘,是跳到下面,那個(gè)黑色的小方塊會(huì)突出來(lái),現(xiàn)在所有的開(kāi)關(guān)都在上面,而且下方的小黑方塊也沒(méi)突出。 如果被拉閘了,先將小黑方塊按下去,再把開(kāi)關(guān)推到上面就可以。 如果現(xiàn)在家里沒(méi)電,查看一下...
我檢查回路的時(shí)候發(fā)現(xiàn)有個(gè)等沒(méi)連上?這會(huì)不會(huì)影響工程量?回路我是重頭拉到尾的沒(méi)錯(cuò)吧
如果你的燈不是及頂?shù)?,你?huì)少算豎向的管線。你可以手動(dòng)繪制立管和配線。
格式:pdf
大?。?span id="ij9uvte" class="single-tag-height">4.7MB
頁(yè)數(shù): 18頁(yè)
評(píng)分: 4.7
圖論講義第4章-歐拉圖與hamilton圖
格式:pdf
大小:4.7MB
頁(yè)數(shù): 2頁(yè)
評(píng)分: 4.7
推拉式房屋門(mén),或稱(chēng)拉門(mén)。是房屋建筑中門(mén)類(lèi)的一種。大多安裝在房屋建筑物的出入口處,可以左右開(kāi)關(guān)的裝置。這種房門(mén)在日本、朝鮮等國(guó)家中頗為盛行,特別是在日本國(guó)內(nèi),和式住宅的門(mén)窗,幾乎皆為拉門(mén)、拉窗。在我國(guó)的一些房屋建筑物上也常能見(jiàn)到。有些是采用鋁合金等材料加工制做。顯得新穎美觀,大有興起發(fā)展的趨勢(shì)。究其淵源,在建筑史中未見(jiàn)有關(guān)記載,有人以為是近代發(fā)明創(chuàng)造的產(chǎn)物,或從國(guó)外傳入。殊不知這種推拉式房門(mén),早在我國(guó)原始社會(huì)新石器時(shí)代人
18世紀(jì),著名的數(shù)學(xué)家歐拉曾經(jīng)研究過(guò)摩擦力跟繩索繞在柱子上的圈數(shù)之間的關(guān)系。得出了著名的“歐拉韁繩理論”
歐拉─伯努利梁方程內(nèi)容描述了梁的位移與載重的關(guān)系:
歐西瑪F4全自動(dòng)重布拉布機(jī)(鋪布機(jī))
特長(zhǎng)
無(wú)布停機(jī),自動(dòng)駛回定點(diǎn)。
五分鐘無(wú)使用時(shí),自動(dòng)關(guān)機(jī)。
緊急停止時(shí),已下放布料不會(huì)拖拉。
流線外型、降低風(fēng)阻、減少噪音、減低震動(dòng)。
PLC觸控屏幕操作系統(tǒng)。
無(wú)張力式拉布作業(yè)。
簡(jiǎn)化操作、提高生產(chǎn)效率、確保質(zhì)量。
可傾斜布槽,方便布料進(jìn)出。
標(biāo)準(zhǔn)配備
拉布長(zhǎng)度設(shè)定記憶裝置.拉布機(jī)之加減速度計(jì)算機(jī)控制
槽式自動(dòng)追踨松布裝置
緊急停止裝置.自動(dòng)上升裝置
依布寬設(shè)定裁刀行走距離.層數(shù)計(jì)數(shù)器
對(duì)邊裝置.切刀裝置
回裝置(卷支布料)
單側(cè)固定式移動(dòng)折布器.雙拉用固定折布器
可傾斜布槽。
主要裝置
液晶觸控裝置:簡(jiǎn)易設(shè)定拉布長(zhǎng)度、方式、數(shù)量、速度及段落。
切刀裝置:切刀和主機(jī)可以簡(jiǎn)單地進(jìn)行拆裝,布料切斷時(shí)可以依布寬設(shè)定裁刀行走距離及切斷速度。
折布裝置:可作單向及往返拉布。
自動(dòng)布料預(yù)松裝置:先松布再鋪放,消除拉布張力并保持拉布質(zhì)量的一致性。
電眼自動(dòng)對(duì)邊裝置:在拉布順序運(yùn)作過(guò)程中可以正確做到自動(dòng)對(duì)邊。
布尾感應(yīng)器裝置:布料拉完時(shí)控制主機(jī)自動(dòng)停止運(yùn)作,并自動(dòng)駛回固定點(diǎn)。
自動(dòng)上升裝置:可依布料厚度設(shè)定上升量,配合拉布。
緊急停止裝置:于裁床兩側(cè)設(shè)有停機(jī)用鋼索,可隨時(shí)于裁床任何位置拉動(dòng)鋼索作緊急停機(jī)。2100433B