辛几何&李代数

梅森素数的分布式网络计算

梅森素数的分布式网络计算

生成一个列表(Forming a list) 很容易证明,如果 2P-1 是素数,则 P 也一定是素数。因此,搜索梅森素数的第一步就是生成一个用于测试的素数指数列表。 试验分解因子(Trial Factoring)下一步是通过寻找小因子来排除一些指数。有一个非常高效的算法判断一个数是否能整除 2P-1。例如,让我们看一下 47 是否能够整除 22... 阅读全文

生成一个列表(Forming a list)

很容易证明,如果 2P-1 是素数,则 P 也一定是素数。因此,搜索梅森素数的第一步就是生成一个用于测试的素数指数列表。

 

试验分解因子(Trial Factoring)

下一步是通过寻找小因子来排除一些指数。有一个非常高效的算法判断一个数是否能整除 2P-1。例如,让我们看一下 47 是否能够整除 223-1。把指数 23 转换成二进制数,我们得到 10111。从 1 开始,重复以下步骤:平方,删除指数的最左边二进位,如果该位是 1,则将平方后得到的值乘以 2,然后计算其除以 47 后的余数。

平方删除最左边二进位如果需要就乘以 2除以47的余数
1*1 = 1101111*2 = 22
2*2 = 40111no4
4*4 = 1611116*2 = 3232
32*32 = 1024111024*2 = 204827
27*27 = 7291 729*2 = 14581

因此,223 = 1 mod 47。两边同时减 1,223-1 = 0 mod 47。因此我们知道 47 是一个因子,从而 223-1 不是素数。

可以证明梅森数有一个非常好的性质:2P-1 的任何因子 q 必定是 2kP+1 的形式,并且 q 除以 8 的余数一定是 1 或者 7。最后,一个高效的程序可以利用任何可能的因子 q 必须是素数这一事实。

GIMPS 程序的分解因子代码使用修正的厄拉托森斯(Eratosthenes)筛法,利用一个二进位表示一个可能的 2kP+1 形式的因子。这个筛排除能够被大约 40,000 以下的素数整除的任何可能的因子。同样,表示除以 8 的余数是 3 或者 5 的可能的因子的二进位被清除。这个过程排除大约百分之九十五的可能的因子。剩下的可能的因子使用上面描述的高效的算法进行测试。

现在唯一的问题是要试验分解多少因子?答案取决于三个因素:分解因子的代价、发现一个因子的概率和素性测试的代价。我们使用以下公式:

分解因子的代价 < 发现因子的概率 * 2 * 素性测试的代价

也就是说,分解因子所花费的时间必须小于期望被节省的时间。如果能够发现一个因子,我们就能够避免进行首次素性测试和复查。

根据以前分解因子的数据,我们知道发现一个 2X 到 2X+1 之间的因子的概率大约是 1/X。本程序进行素性测试和分解因子所需的时间已经被计算出来。目前,本程序试图分解因子到:

指数上限分解因子到
3,960,000260
5,160,000261
6,515,000262
8,250,000263
13,380,000264
17,850,000265
21,590,000266
28,130,000267
35,100,000268
44,150,000269
57,020,000270
71,000,000271
79,300,000272

 

用 P-1 方法分解因子(P-1 Factoring)

还有另外一个方法可被 GIMPS 程序用来搜索因子,因而避免进行素性测试的花费。这个方法叫做波拉德(Pollard)(P-1)方法。如果q 是某数的一个因子,并且 q-1 是高度复合的(也就是说 q-1 只有小因子),P-1 方法就可以找到因子 q

该方法用于梅森数时甚至更高效。回忆一下,因子 q 只能是 2kP+1 的形式。只要 k 是高度复合时,就很容易修改 P-1 方法去搜索因子 q

P-1 方法是十分简单的。在第一阶段我们挑选一个边界 B1。只要 k 的所有因子都小于 B1 (我们称 k 为 B1-平滑 (B1-smooth) ),P-1 方法就能找到因子 q。我们首先计算 E = (比 B1 小的所有素数的乘积)。然后计算 x = 3E*2*P。最后,检查 x-1 和 2P-1 的最大公约数,就可以知道是否找到一个因子。

使用第二个边界 B2,我们可以改进波拉德算法,达到第二阶段。如果 k 在 B1 到 B2 之间刚好有一个因子,而其它因子都小于 B1,我们就能够在第二阶段找到因子 q。这个阶段要使用大量的内存。

GIMPS 程序使用该方法去寻找一些给人印象深刻的因子。例如:

22,944,999-1 能够被 314,584,703,073,057,080,643,101,377 整除。
314,584,703,073,057,080,643,101,377 等于 2 * 53,409,984,701,702,289,312 * 2,944,999+1。
值 k,53,409,984,701,702,289,312,是非常平滑的:
53,409,984,701,702,289,312 = 25 * 3 * 19 * 947 * 7,187 * 62,297 * 69,061

GIMPS 如何智能地选择 B1 和 B2 呢?我们使用试验分解因子方法中的公式的变种。我们必须使下式取得最大值:

发现因子的概率 * 2 * 素性测试的代价 - 分解因子的代价

发现因子的概率和分解因子的代价都依赖于 B1 和 B2 的取值。当 k 是 B1-平滑 或者 k 是 B1-平滑 并且在 B1 到 B2 之间刚好有一个因子时,迪克曼(Dickman)函数(参见高德纳(Knuth)《计算机程序设计艺术》第二卷(译注:中文版第347页))用来确定发现因子的概率。本程序尝试许多 B1 的值,如果有足够的可用内存的话也尝试一些 B2 的值,用以确定使以上公式取得最大值的 B1 和 B2 的值。

 

卢卡斯-莱默测试(Lucas-Lehmer testing)

卢卡斯-莱默素性测试是非常简单的:如果 P > 2, 2P-1 是素数当且仅当 SP-2 = 0,其中,S0 = 4,SN = (SN-12 - 2) mod (2P-1)。例如,证明 27 - 1 是素数的过程如下:

S0 = 4
S1 = (4 * 4 - 2) mod 127 = 14
S2 = (14 * 14 - 2) mod 127 = 67
S3 = (67 * 67 - 2) mod 127 = 42
S4 = (42 * 42 - 2) mod 127 = 111
S5 = (111 * 111 - 2) mod 127 = 0

为了高效地实现卢卡斯-莱默测试,我们必须寻找对巨大的数进行平方及对 2P-1 取余的快速方法。自二十世纪六十年代后期以来,对巨大的数进行平方的最快速的算法是:把巨大的数分裂成小片形成一个大数组,然后执行快速傅里叶变换(FFT),逐项平方,然后再进行快速傅里叶逆变换(IFFT)。参见克努特的《计算机程序设计艺术》第二卷“乘法能有多快?”一节(译注:中文版第267页)。1994年1月,由Crandall)和巴里·费金(Barry Fagin) 合著的题为“离散加权变换和大整数算术”的计算数学文章,引入了无理底数 FFT 的概念。这个改进使得计算平方的速度提高两倍以上,允许使用较小的 FFT,并且这一过程中自动执行了对 2P-1 取余步骤。虽然由于英特尔公司的奔腾处理器体系结构的原因,GIMPS 程序使用浮点 FFT,但彼得·蒙哥马利(Peter Montgomery)给出的一个纯整数加权变换的方法也能够被使用。

正如上一段所提到的,GIMPS 使用汇编语言编写的浮点 FFT 算法,充分利用流水线和高速缓存。因为浮点运算是不精确的,在每次迭代后浮点值舍入到整数。本来该有的整数结果和程序计算出来的浮点结果之间的差异叫做“卷折误差”。如果卷折误差超过 0.5 则舍入将产生不正确的结果 - 这意味着必须使用更大的 FFT。GIMPS 程序的错误检查确保最大卷折误差不超过 0.4。不幸地,这种错误检查的代价相当高,以致于不能在每次平方后都进行检查。存在另外一种代价很低的错误检查。FFT 平方的一个性质是:

(输入 FFT 值的和)2 = (输出 IFFT 值的和)

由于我们使用浮点数,我们必须将上式中的“等于”改为“约等于”。如果上式中两个值实质上不等,将给出一个在 readme.txt 文件中描述过的 SUMINP != SUMOUT 错误。如果输入 FFT 值的和是一个非法的浮点数(例如无穷大),将给出一个 ILLEGAL SUMOUT 错误。不幸地,这种错误检查无法发现我们将在下一节中描述的所有错误。

卢卡斯-莱默测试发现一个新的梅森素数的概率有多大?一个简单的估计是再次利用发现一个 2X 到 2X+1 之间的因子的概率大约是 1/X 的事实。例如,你已经使用试验分解因子证明 210,000,139-1 没有比 264 小的因子,那么它是素数的概率是:没有 65 二进位因子的概率 * 没有 66 二进位因子的概率 * ... * 没有 5,000,070 二进位因子的概率,即:

梅森素数的分布式网络计算

化简后得到:64 / 5,000,070,或者1 / 78,126。这个简单的估计不是很准确,它给出的公式是:(试验分解因子到多大的指数) / (指数/2)。进一步的工作表明更精确公式是:(试验分解因子到多大的指数-1) / (指数 * 欧拉常数(0.577...))。在上例中,是1 / 91,623。这个更精确的公式是未经证明的。

 

复查(Double-checking)

为了核实首次的卢卡斯-莱默素性测试没有出错,GIMPS 程序运行第二次素性测试。在每次测试期间,最终的 SP-2 的最低 64 二进位,叫做余数,被打印出来。如果它们相同,GIMPS 宣称该指数已经被复查。如果它们不相同,素性测试被再次运行直到最后出现匹配。和首次测试相匹配的复查,通常是在首次测试之后大约两年进行。GIMPS 分配复查给较慢的计算机,因为该指数比正在进行的首次测试的指数小,以便较慢的计算机能够在合理的时间内完成其工作任务。

GIMPS 复查采取进一步的防护措施以避免程序设计错误。在开始卢卡斯-莱默测试之前,S0 的值被左移随机的二进位。每次平方刚好加倍我们左移的 S 值。注意对 2P-1 取余的步骤仅是简单地将第 P 位以上的位移到最低有效位,因此没有信息丢失。为什么我们要自找麻烦呢?因为如果计算 FFT 的程序代码有错误,对 S 值的随机的移位确保第二次素性测试中的 FFT 算法处理一个和首次素性测试完全不同的值。一个程序设计错误几乎不可能产生同样的最终 64 二进位余数。

历史上,卢卡斯-莱默测试运行期间没有报告严重错误时,结果的错误率大致是 1.5%。卢卡斯-莱默测试产生的错误被报告的比率大约是 50%。作为记录,我没有把“ILLEGAL SUMOUT”作为严重错误统计。

收起全文

辛几何&李代数

点是否在 三角形,凸多边形, 凹多边形,四面体高维单形内的判断

点是否在 三角形,凸多边形, 凹多边形,四面体高维单形内的判断

对于三角形的情况, 我们使用有向面积来判断,假设三角形三个点为(x1,y1),(x2,y2), (x3,y3), 需要判断的点为(x,y). 根据向量代数的公式, 已知3点坐标, 判断三角形有向面积为 有向面积的正负与行列式的排列顺序有关(交换行列式的任意两行, 行列式的正负发生变化)简单的可以展开为 A0 = (x1y2 & x1y3 & x2y1 ... 阅读全文

对于三角形的情况, 我们使用有向面积来判断,假设三角形三个点为(x1,y1),(x2,y2), (x3,y3), 需要判断的点为(x,y). 根据向量代数的公式, 已知3点坐标, 判断三角形有向面积为

点是否在 三角形,凸多边形, 凹多边形,四面体高维单形内的判断

有向面积的正负与行列式的排列顺序有关(交换行列式的任意两行, 行列式的正负发生变化)

简单的可以展开为 A0 = (x1y2 – x1y3 – x2y1 + x3y1 + x2y3 - x3y2)/2. 这个判断式子与 叉乘的判断的公式是一模一样的. 可以看出通过有向面积可以统一 <编程之美>中的两种方法, 面积与叉乘的方法在数学本质上是一致的.

 

如何判断一个点在四面体的内部呢? 使用有向体积的概念. 假设四面体的四个顶点的坐标为 (x1,y1,z1), (x2,y2,z2), (x3,y3,z3), (x4,y4,z4).  需要判断的点为(x,y,z). 那么原来四面体的有向体积 为

 

点是否在 三角形,凸多边形, 凹多边形,四面体高维单形内的判断

 

同理剩下的4个有向体积分别为

点是否在 三角形,凸多边形, 凹多边形,四面体高维单形内的判断

点是否在 三角形,凸多边形, 凹多边形,四面体高维单形内的判断

 

判断准则很简单, V0与V1V2V3V4都同向的时候, 则点位于四面体内, 否则位于四面体外.  当Vi = 0 的时候, 则此四面体退化了.

收起全文

辛几何&李代数

数学家破解百年高维“球体填充问题”

数学家破解百年高维“球体填充问题”

有些人的工作是在噪声图像中分离信号,以寻找来自数十亿公里外的外星文明;有些人在研究弦理论,以探索宇宙中基本要素的内在联系;有些人则在食品店堆放水果,以求最节省空间的方法从而码得最多。奇妙的是,这些看似无关的事情都因为数学纽带而联系到一起&&它们都涉及到球体填充问题。只不过有些球体存在于其他维度。让我们看看数学家有什么最新发现。 早在1611年,... 阅读全文

有些人的工作是在噪声图像中分离信号,以寻找来自数十亿公里外的外星文明;有些人在研究弦理论,以探索宇宙中基本要素的内在联系;有些人则在食品店堆放水果,以求最节省空间的方法从而码得最多。奇妙的是,这些看似无关的事情都因为数学纽带而联系到一起——它们都涉及到球体填充问题。只不过有些球体存在于其他维度。让我们看看数学家有什么最新发现。

 

数学家破解百年高维“球体填充问题”

 

早在1611年,开普勒就已经推测出如何码放相同大小的球体能够达到最密集效果。他认为,形如金字塔那样的堆积方式乃是正解,就像在水果店里见到的桔子那样。球与球之间总会存在空隙,通过进一步研究,数学家们发现在满满一袋子网球里面,大约36%的空间都是空气。假如你能够精心排布这些网球,那么这个比例可以降低到26% (亦称26%法),但是人们在一百年前就已经认识到,26%乃是其极限。而对于开普勒的猜想,直到1998年,才被现在匹兹堡大学的Thomas Hales教授所证明。据说当时数学论证文档长达250页,还动用了猛犸象计算机。

 

其实,玩数学的人还会在高维度下鼓弄球体填充游戏——球的定义依然不变,但“距离”这一概念则在我们熟知的三维系统 (比如x,y,z轴) 之外获得了更多属性。其实,高维球体的定义并不复杂:在高维空间下到给定球心距离相等的一组点所构成的即为高维球体。重要的是,在多维环境下将具有更多的码放方法。所以寻找能够空间利用率最高的球体排布可能性一直是主要挑战。

 

不过,我们很难对高维度下的球体填充进行视觉呈现,但它们却是非常实际的存在:高密度的球体填充与我们常见的纠错代码有着密切关系。早在上世纪60年代,John Leech试图纠正信号在传播过程中所积累的错误或噪声。他发现在24维度下处理数据会非常实用,尤其对于从5亿英里以外传送回木星图像这种工作来说。

 

数学家破解百年高维“球体填充问题”
旅行者1号

 

十年后,旅行者1号和2号确实采用了这一方法。1977年,NASA在发射木星和土星探测器前曾面临着重要难题:在极低的电力供应下,如何将旅行者号拍摄的彩色图片传送回地球?当时所采取的方式是将图像转换为一组24位的二进制序列,成为“代码字”。代码字以无线电波的形式发射进宇宙,波峰和波谷分别代表1和0。但数据传输总会伴随着噪声,有时1会失真为0,有时0又会变成1。所以要还原旅行者号的图像,就需要纠错。

 

一方面,代码字需要足够清晰显著以便识别;另一方面,在24位的限制下,相对含混模糊的代码字才能提供更多的可能性,以及更快的数据传输速度。这样的矛盾与需求也随之转化为几何问题,比特位对应在了空间坐标上,每段代码字都成为一个24维空间下球体的球心。如果球体发生重叠,那么相关的代码字也将无法被识别。为了最大化地传输数据并且进行纠错,问题最终演变为:如何在24维空间下最密集地填充球体?

 

数学家破解百年高维“球体填充问题”
E8 lattice points

 

长久以来,数学家们已经积累了大量证据,几乎要默认E8和Leech晶格 (两者分别为8维度和24维度下极为美妙且对称的球体填充模型) 就是两种维度下的最佳填充方法。但他们一直缺少一项关键证据,即一个能够计算可容许球体最大密度的函数。

 

如今,乌克兰数学家Maryna Viazovska似乎已经找到了答案。今年3月,她先后在论文预印网站上贴出了两个重要的成果。她首先从8维空间球体排布开始说起,证明了E8晶格 (E8 lattice) 在8维空间中具有最大密度。E8很像是高维版本的“26%法”问题,只不过在8维空间下,球体之间拥有更多空隙,可以多塞进去一些。

 

数学家破解百年高维“球体填充问题”

Maryna Viazovska

 

当然,弦理论家并不会摆弄球体,他们只是将E8结构当作不同维度下的弦理论彼此关联方式中的重要组成部分。弦理论从26个维度开始,并需要折叠简化至我们所熟知的3维。E8则包含了折叠所需要的所有必要属性。

 

数学家和物理学家认为这绝不是一个巧合。他们觉得这样一个维度是最为简单有效的,因为再添加任何一维空间都会使其更难以解释。可能他们还真说对了,Viazovska已经可以证明E8结构不会留下任何额外空间,对于8维球体填充来说这是最高效的方法。

 

数学家破解百年高维“球体填充问题”

 

不过她并没有止步于此。在发布了8维研究后,一些希望解决24维问题的数学家找到她,于是他们开始研究 “Leech晶格”。Leech晶格对信息的处理方式就好比在24维度下排布球体,数学家们也一直认为这是最有效的解决方法。仅仅在E8文章公布一周之后,Viazovska和同事们又搞定了24维的问题

 

尽管两篇文章尚未接受同行评议,在数学圈内似乎并没有什么质疑。由于E8和Leech晶格与数学和物理的诸多领域关系密切, Viazovska等人的发现对未来的研究有着重要意义。

收起全文

辛几何&李代数

折纸几何公理

折纸几何公理

1991 年,日裔意大利数学家藤田文章(Humiaki Huzita) 指出了折纸过程中的 6 种基本操作,也叫做折纸几何公理。假定所有折纸操作均在理想的平面上进行,并且所有折痕都是直线,那么这些公理描述了通过折纸可能达成的所有数学操作: 1. 已知 A 、 B 两点,可以折出一条经过 A 、 B 的折痕 2. 已知 A 、 B 两点,可以把点 ... 阅读全文

 

1991 年,日裔意大利数学家藤田文章(Humiaki Huzita) 指出了折纸过程中的 6 种基本操作,也叫做折纸几何公理。假定所有折纸操作均在理想的平面上进行,并且所有折痕都是直线,那么这些公理描述了通过折纸可能达成的所有数学操作:

1. 已知 A 、 B 两点,可以折出一条经过 A 、 B 的折痕
折纸几何公理
2. 已知 A 、 B 两点,可以把点 A 折到点 B 上去
折纸几何公理
3. 已知 a 、 b 两条直线,可以把直线 a 折到直线 b 上去
折纸几何公理
4. 已知点 A 和直线 a ,可以沿着一条过 A 点的折痕,把 a 折到自身上
折纸几何公理
5. 已知 A 、 B 两点和直线 a ,可以沿着一条过 B 点的折痕,把 A 折到 a 上
折纸几何公理
6. 已知 A 、 B 两点和 a 、 b 两直线,可以把 A 、 B 分别折到 a 、 b 上
折纸几何公理

容易看出,它们实际上对应着不同的几何作图操作。例如,操作 1 实际上相当于连接已知两点,操作 2 实际上相当于作出已知两点的连线的垂直平分线,操作 3 则相当于作出已知线段的夹角的角平分线,操作 4 则相当于过已知点作已知线的垂线。真正强大的则是后面两项操作,它们确定出来的折痕要满足一系列复杂的特征,不是尺规作图一两下能作出来的(有时甚至是作不出来的)。正是这两个操作,让折纸几何有别于尺规作图,折纸这门学问从此处开始变得有趣起来。

更有趣的是,操作 5 的解很可能不止一个。在大多数情况下,过一个点有两条能把点 A 折到直线 a 上的折痕。

折纸几何公理

操作 6 则更猛:把已知两点分别折到对应的已知两线上,最多可以有三个解!

折纸几何公理

一组限定条件能同时产生三个解,这让操作 6 变得无比灵活,无比强大。利用一些并不太复杂的解析几何分析,我们能得出操作 6 有三种解的根本原因:满足要求的折痕是一个三次方程的解。也就是说,给出两个已知点和两条对应的已知线后,寻找符合要求的折痕的过程,本质上是在解一个三次方程!

尺规作图到底局限在哪里

相比于折纸的几何操作,尺规作图就显得有些不够“强大”了。不妨让我们先来回顾一下尺规作图里的五个基本操作:

过已知两点作直线给定圆心和圆周上一点作圆寻找直线与直线的交点寻找圆与直线的交点寻找圆与圆的交点

这5项操作看上去变化多端,但前3项操作都是唯一解,后两项操作最多也只能产生两个解。从这个角度来看,尺规作图最多只能解决二次问题,加减乘除和不断开方就已经是尺规作图的极限了。能解决三次问题的折纸规则,势必比尺规作图更加强大。

正因为如此,一些尺规作图无法完成的任务,在折纸几何中却能办到。比如折纸法可以实现作正七边形,而这是无法用尺规作图办到的。

我们有更简单的例子来说明,用折纸法能完成尺规作图办不到的事情。“倍立方体”问题是古希腊三大尺规作图难题之一,它要求把立方体的体积扩大到原来的两倍,本质上是求作 2 的立方根。由于尺规作图最多只能开平方,因而它无法完成“倍立方体”的任务。但是,折纸公理 6 相当于解三次方程,解决“倍立方体”难题似乎是游刃有余。

有意思的是,用纸片折出 2 的立方根比想象中的更加简单。取一张正方形纸片,将它横着划分成三等份(方法有很多,大家不妨自己想想)。然后,将右边界中下面那个三等分点折到正方形内上面那条三等分线上,同时将纸片的右下角顶点折到正方形的左边界。那么,纸片的左边界就被分成了 3√2 : 1 两段。

折纸几何公理

利用勾股定理和相似三角形建立各线段长度的关系,我们不难证明它的正确性。强烈建议大家自己动笔算一算,来看看三次方程是如何产生的。

第7个折纸公理

本文写到这里,大家或许以为故事就结束了吧。 10 年以后也就是 2001 年,事情又有了转折: 数学家羽鳥公士郎(Koshiro Hatori)发现,上述的 6 个折纸公理并不是完整的。 他给出了折纸的第 7 个定理。从形式上看,第 7 公理与已有的公理如出一辙,并不出人意料,很难想象这个公理整整十年里竟然一直没被发现。继续阅读之前,大家不妨先自己想想,这个缺失的操作是什么。这段历史背景无疑让它成为了一个非常有趣的思考题。

补充的公理是:

7. 已知点 A 和 a 、 b 两直线,可以沿着一条垂直于 b 的折痕,把 A 折到 a 上。
折纸几何公理

后来,这 7 条公理就合称为了藤田-羽鳥公理(Huzita–Hatori 公理),你可以在维基百科 上读到这个条目。在 2003 年的一篇文章中,世界顶级折纸 艺术家 罗伯特•朗 (Robert J. Lang )对这些公理进行了一番整理和分析,证明了这 7 条公理已经包含折纸几何中的全部操作了。

看,艺术家都是先搞数学的!

罗伯特•朗注意到,上述 7 项基本操作其实是由一些更基本的操作要素组合而成的,例如“把已知点折到已知线上”、“折痕经过已知点”等等。说得更贴切一些,这些更加基本的操作要素其实是对折痕的“限制条件”。在平面直角坐标系中,折痕完全由斜率和截距确定,它等价于一个包含两个变量的方程。不同的折叠要素对折痕的限制力是不同的,例如“把已知点折到已知点上”就同时要求 x1' = x2 并且 y1' = y2 ,可以建立出两个等量关系,一下子就把折痕的两个变量都限制住了。而“折痕经过已知点”则只能列出一个方程,只能确定一个变量(形式上通常表示为与另一个变量的关系),把折痕的活动范围限制在一个维度里。

不难总结出,基本的折叠限制要素共有 5 个:

(1) 把已知点折到已知点上,确定 2 个变量(2) 把已知点折到已知线上,确定 1 个变量(3) 把已知线折到已知线上,确定 2 个变量(4) 把已知线折到自身上,确定 1 个变量(5) 折痕经过已知点,确定 1 个变量

而折痕本身有 2 个待确定的变量,因此符合要求的折纸操作只有这么几种: (1) , (2) + (2) , (3) , (4) + (4) , (5) + (5) , (2)+(4) , (2) + (5) , (4) + (5) 。但是,这里面有一种组合需要排除掉: (4) + (4) 。在绝大多数情况下, (4) + (4) 实际上都是不可能实现的。如果给出的两条直线不平行,我们无法折叠纸张使得它们都与自身重合,因为没有同时垂直于它们的直线。

另外 7 种则正好对应了前面 7 个公理,既无重合,又无遗漏。折纸几何至此便有了一套完整的公理。

不过,折纸的学问远远没有到此结束。如果允许单次操作同时包含多处折叠,折纸公理将会更复杂,更强大。折纸的极限究竟在哪里,这无疑是一个非常激动人心的话题。

在这里,简单展示几个折纸几何学的例子,分别是三等分角、黄金比例和正六边形。图片由果壳美术设计师 V晶V 制作

折纸几何公理

 

折纸几何公理

 

折纸几何公理

收起全文

★·°遇見、堇色年華 ﹏

【十里桃花】等那个对的人

【十里桃花】等那个对的人

周围的人,都结婚了,只剩下自己单身。 你是不是着急了? 我不知道,你有没有去过那种很火的餐厅,需要排队的那种,你领了一个号码牌,坐在门口等着叫号,因为你爱极了他们家的一款招牌卤肉饭,你透过窗户看见里面的人吃的很开心,此时,你的肚子饿的咕噜噜的叫... 阅读全文

【十里桃花】等那个对的人

周围的人,都结婚了,只剩下自己单身。


你是不是着急了?


我不知道,你有没有去过那种很火的餐厅,需要排队的那种,你领了一个号码牌,坐在门口等着叫号,因为你爱极了他们家的一款招牌卤肉饭,你透过窗户看见里面的人吃的很开心,此时,你的肚子饿的咕噜噜的叫。


也许,你懒得继续等了,你在路边摊叫了一份黄焖鸡,匆忙的吃完了,但是心里,还是惦记那碗卤肉饭。


也许,你继续等待,直到你吃了那碗饭,然后,一整天,都很开心。


第二天,也许你忘记了那碗饭,但是,偶尔想起来,你仍然很开心,因为你得到了你想要的,那是你用等待换来的,因为你知道等待什么,你才等的理直气壮。


有时候,你觉得迷茫,觉得着急,是因为你不知道在等待什么。你说,等一个适合结婚的人。


适合的人,什么样子? 


也许你会说,人品好,三观一致,疼你宠爱你。


这三个点抛到茫茫的人海里,你依然找不到你要的那个人,不是这样的人不存在,而是,这三个点体现在每一个人身上都是不一样的,可是,如果你对一个人有好感,你愿意慢慢接触他,了解他,你才有机会碰到那个对的人。


这世上,爱情不像现成的卤肉饭让你去等,你必须知道你在等待什么,你才等的心安理得,因为你知道,那种等待是有结果的。


等待是一段很好的增值期。


你不必慌张,才有时间让自己变的更好。有的人35岁碰到爱情,那是正当好年纪,有的人70岁碰到爱情,那也是正当好年纪,你活过一次,理直气壮,心怦怦跳,热血澎湃,那才有意思。


没意思的是,你25岁匆匆忙忙结婚,受了一肚子的委屈,回头怨自己傻,以为婚姻不过如此。


希望你结婚是因为碰到对的人。


收起全文

辛几何&李代数

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

在学习系统动力学的时候,尤其遇到类似于物理学的分子热运动体系或者生化反应体系时,不可避免地就会遇到标题所指的&四大方程&:切普曼-科尔莫格洛夫方程(Chapman-Kolmogorov equation, C-K equation),主方程(Master equation),福克-普朗克方程(Fokker-Planck equation, F-P equat... 阅读全文

在学习系统动力学的时候,尤其遇到类似于物理学的分子热运动体系或者生化反应体系时,不可避免地就会遇到标题所指的“四大方程”:切普曼-科尔莫格洛夫方程(Chapman-Kolmogorov equation, C-K equation),主方程(Master equation),福克-普朗克方程(Fokker-Planck equation, F-P equation),朗之万方程(Langevin equation)。今天花了点时间,把这四个方程之间的相互关系推导了一遍;主要参考资料为:N.G. van Kampen, Stochastic Processes in Physics and Chemistry. 3rd edition, 2007. Elsevier Publisher. 由于科学网博客数学公式编辑功能有限,所以我在iWork上编写好后贴图到这里。

分子动力学“四大方程”之间的详细推导过程

 

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

分子动力学“四大方程”之间的详细推导过程

收起全文
人人小站
更多热门小站
X