歐拉公式的推導
e^ix=cosx+isinx,其中e是自然對數的底,i是虛數單位。這個等式將三角函數的定義域擴展到了複數,建立了三角函數和指數函數之間的關係。在複變函數論中,這個等式具有重要的地位。
e^ix=cosx+isinx的證明:
因爲e^x=1+x/1!+x^2/2!+x^3/3!+x^4/4!+……
cos x=1-x^2/2!+x^4/4!-x^6/6!……
sin x=x-x^3/3!+x^5/5!-……
在e^x的展開式中把x換成±ix.(±i)^2=-1, (±i)^3=〒i, (±i)^4=1 ……(注意:其中”〒”表示”減加”)
e^±ix=1±x/1!-x^2/2!+x^3/3!〒x^4/4!……
=(1-x^2/2!+……)±i(x-x^3/3!……)
所以e^±ix=cosx±isinx
將公式裏的x換成-x,得到:
e^-ix=cosx-isinx,然後採用兩式相加減的方法得到:sinx=(e^ix-e^-ix)/(2i),cosx=(e^ix+e^-ix)/2.這兩個也叫做歐拉公式。將e^ix=cosx+isinx中的x取作∏就得到:
e^iπ+1=0.
算法:歐拉路
歐拉回路 【定義】
圖G的一個迴路,若它恰通過G中每條邊一次,則稱該回路爲歐拉(Euler)迴路。
具有歐拉回路的圖稱爲歐拉圖(簡稱E圖)。
【相關結論】
定理:
一個無向圖是歐拉圖,當且僅當該圖所有頂點度數都是偶數。
一個有向圖是歐拉圖,當且僅當該圖所有頂點度數都是0。
歐拉回路的一種解法
下面是無向圖的歐拉回路輸出代碼:注意輸出的前提是已經判斷圖確實是歐拉回路。
int num = 0;//標記輸出隊列
int match[MAX];//標誌節點的度,無向圖,不區分入度和出度
void solve(int x)
l{
l if(match[x] == 0)
l
l Record[num++] = x;
l
l else
l {
l for(int k =0;kl {
l if(Array[x][k] !=0 )
l {
l Array[x][k]--;
l Array[k][x]--;
l match[x]--;
l match[k]--;
l solve(k);
l }
l
l }
l Record[num++] = x;
l }
l}
注意record中的點的排列是輸出的到序,因此,如果要輸出歐拉路徑,需要將record倒過來輸出。
歐拉回路的思路:
循環的找到出發點。從某個節點開始,然後查出一個從這個出發回到這個點的環路徑。這種方法保證每個邊都被遍歷。如果有某個點的邊沒有被遍歷就讓這個點爲起點,這條邊爲起始邊,把它和當前的環銜接上。這樣直至所有的邊都被遍歷。這樣,整個圖就被連接到一起了。
具體步驟:
1。如果此時與該點無相連的點,那麼就加入路徑中
2。如果該點有相連的點,那麼就列一張表,遍歷這些點,直到沒有相連的點。
3。處理當前的點,刪除走過的這條邊,並在其相鄰的點上進行同樣的操作,並把刪除的點加入到路徑中去。
4。這個其實是個遞歸過程。
--以上爲百科的內容
以上就是推導歐拉公式的過程的詳細內容,更多請關注本站其它相關文章!