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。这个其实是个递归过程。
--以上为百科的内容
以上是推导欧拉公式的过程的详细内容。更多信息请关注PHP中文网其他相关文章!