几何学中的欧拉公式:V-E+F = 2
几何学中的欧拉公式:V-E+F = 2,V、E、F表示简单几何体的顶点数、边数、面数。
证明:
它的证明有多种,这里呈现一种递归证法。
对于任意简单几何体(几何体的边界不是曲线),我们考察这个几何体的每个面,设这个边成一个n边形,我们从某个固定顶点开始连接其其他各个顶点,即将这个n边形从某个顶点进行了三角剖分,我们假想每个三角形是一个面(因为实际上多个三角形共面),那么能够看到,这个过程中E和F的增量是相同的,因此如果原来的几何体满足V-E+F = 2,则现在这个几何体(视每个三角形为一个面)仍然满足欧拉公式。
我们随机去掉一个面,则剖分后的几何体应满足V-E+F = 1.
现在我们考察这个去掉一个面之后被三角形剖分的几何体,对于某个三角形,考察它的三个边(每条边都是被两个三角形共享),会有如下的三种情况:
(1)一个边所在的另一个三角形的那个面是空的。
(2)两个边所在的另一个三角形的那个面是空的。
(3)三个边所在的另一个三角形的那个面是空的。
那么下面我们开始一个“掏空过程”,为了分析的方便,我们不在一片没有被“掏空”的区域的内部去“掏空”某个三角形,直到最终剩余一个三角形,即我们避免了第三种情况。
面临情况(1),我们掏空这个三角形,发现边数、面数各减1,V-E+F的值将不发生变化。
面临情况(2),我们掏空这个三角形,我们发现会出现两种情况,分为顶点数减1和不变的情况(想象一下),我们非常喜欢前面这种情况,因为这使得边数减2、顶点减1、面数减1,这会使得V-E+F不变,这十分有利于我们继续进行递归的等价转化。
那么如何应对这种情况呢?还记得我们一开始随机掏空的那个三角形么,容易看到它必然由三个三角形围起来,即分享这个被掏空的三角形的三个边的三角形,我们标号为1、2、3,而这三个三角形中间势必会夹着三个三角形,我们记为4、5、6,我们采取的策略是先掏空1、2、3,然后掏空4、5、6,这样将会保证V-E+F不变,同时我们将1、2、3、4、5、6视为第一层“堡垒”,对于第二层,想一想,是否也是相同的状况(掏空4、5、6又会得到三个情况(1)中的三角形)?这就保证了我们递归的正确性。(这里不需要考虑三角形个数余6的结果,因为这种自上而下的“掏空过程”将会杜绝情况(2)的第二种情况)
那么让我们来看看递归的最终状态,对于一个三角形,V = 3 、 F =1 、 E = 3 ,显然有V-E+F = 1,然后回溯到先前的所有状态,可知对于任意的简单几何体,有欧拉公式成立:
V-E+F = 2.
证毕。
补充:笔者今天复习离散刚好看到了该欧拉公式在平面图中的推广形式,在这里做出补充。
通常有资料认为将几何体直接映射到平面上即可完成等价转化,但个人认为这并不严谨,主要针对弧线。
定理:设G为任意的连通的平面图,则v-e+f=2,v是G的顶点数,e是G的边数,f是G的面数。
证明:其实有点类似几何学中的欧拉公式的证明方法,这里采用归纳证明的方法。
对m进行归纳,当m = 0,显然成立。
假设边数e' = e-1时成立,即有v'-e'+f'=2.考察参数为v、e、f的G图,如果存在悬挂点v1,去掉v1,则有e' = e - 1,f=f',v' = v - 1,带入之前的假设,整理得:
v-e+f=2.
而如果G中没有悬挂点,我们去掉回路中的某个边,采取类似的思路,同样可以整理出欧拉公式。
证毕。
几何学中的欧拉公式:V-E+F = 2的更多相关文章
- [编程语言][java][java se]java泛型中? T K V E含义(学习)
? 表示不确定的java类型,类型是未知的. T 表示java类型. K V 分别代表java键值中的Key Value. E 代表Element,特性是枚举. 1.意思 jdk中的K,V, ...
- 统计字符串中每种字符出现的评率(HashMap中getOrDefault(K, V)方法的使用)
为了统计字符串中每种字符出现的频率,使用HashMap这种数据结构.其中,字符作为Key,出现的频率作为Value. 基本算法为: 1. 将字符串分成字符数组 2. (1)如果HashMap中的Key ...
- 操作系统中的P,V操作(转)
无论是计算机考研.计算机软件水平考试.计算机操作系统期末考试还是其他计算机岗位考试,P.V原语操作都是一个常考点.下面笔者总结了关于P.V操作的一些知识. 信号量是最早出现的用来解决进程同步与互斥问题 ...
- grep -v|grep -F
cat a cat b #取b中不含1的行 b #b先和a比较,两者交集与b再取交集 b: b: b: b: b: b:22 $ grep -F a -f a b#a先和a比较,两者交集与b再取交集 ...
- ORACLE中dba,user,v$等开头的常用表和视图
一.Oracle表明细及说明1.dba_开头表 dba_users 数据库用户信息 dba_segments 表段信息 dba_extents ...
- django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066
1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate(*args,**kwargs) : 通过对QuerySet进行计算 ,返回一个聚合值的字典. ...
- Linux中的System V信号量
在进程同步,并发运行时,保证按序地访问共享资源是十分重要的.因此引入了临界区的概念,一次只能有一个线程进入临界区完成他的指令.而信号量(semaphore)的作用,类似于一个交通信号灯,它负责进程协作 ...
- Spring MVC中的M V C
M→Model 模型 V→View 视图 C→Controller 控制器 也就是说一次交互由生到死(请求到相应) 需要经过 这三个层级 来完成 那么为什么这么设计 这么设计又有什么好处 我是这么认为 ...
- 用c#中的WebBrowser抢小米F码,抢小米手机以及自动测试实现原理
首先是用c#中的WebBrowser控件打开登录网页,很简单,拖拽WebBrowser到Form上,然后给它的Url属性赋值.WebBrowser就会自动navigate to 这个网页. WebBr ...
随机推荐
- POJ 3449 Geometric Shapes (求正方形的另外两点)
Geometric Shapes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 1470 Accepted: 622 D ...
- .net邮件发送实例 邮件内容为网页模板
.net邮件发送实例 邮件内容为网页模板 2009-07-03 09:31:01| 分类: .NET|字号 订阅 Encoding encoding = Encoding.GetEncod ...
- css居中技巧
1 text-align: center; 只能对图片,按钮,文字等行内元素(display为inline或inline-block等)进行水平居中.在IE6.7中能对任何元素进行水平居中.另外 ...
- java学习第一阶段——面向对象
你聪明有人会说你心机重, 你靠的是努力有人会说你运气好, 你说自己天生乐观有人会说你虚假, 有时候, 你明明就是一杯白水, 却被人硬生生逼成了满肚子憋屈的碳酸饮料. 人一生要遇见太多人, 即使有些话字 ...
- 【转】 自定义iOS7导航栏背景,标题和返回按钮文字颜色
原文:http://blog.csdn.net/mad1989/article/details/41516743 UIBarButtonItem,navigationItem,backBarButto ...
- 认识CSS样式
CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小.颜色.字体加粗等. 如下列代码: p{ font-size: ...
- 想加入一行代码吗?使用<code>标签
在介绍语言技术的网站中,避免不了在网页中显示一些计算机专业的编程代码,当代码为一行代码时,你就可以使用<code>标签了,如下面例子: <code>var i=i+300;&l ...
- java事件监听机制(自定义事件)
java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中作为参数,一般存在与listerner的方法之中 2.event source ...
- maven在mac上的入门使用
首先博主也是在入门学习,在学习maven时遇到了不少问题.查资料时发现网上maven的使用大多是win的,所以我打算写点maven在mac入门使用的笔记,希望可以帮助到跟我一样有困难的你们. 1.ht ...
- 【NOIP2014】赛后总结
noip考完了,心中所牵挂的一下子就消散了,感觉浑身很轻松. 说实话,我参加noip有好几次了,这应该会是我的最后一次,尽管如此,无论是在考试的前几天还是在考试的时候,心中都没有太多的紧张. 我在no ...