
数学
文章平均质量分 67
linolzhang
资深产品经理,系统架构师,PMP,PMI-ACP敏捷开发专家,个人主要研究领域为 AI、AR、3D Visualization。
展开
-
数学回味系列之8 - 绳子计时问题
问题提出: 烧一根不均匀的绳,从头烧到尾总共需要 1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时四十五分钟 呢?解题思路: 这里的关键点在于:绳子可以两头同时点燃。 推断:第一根绳子两端点燃,第二根绳子点燃一端。 第一根烧完时,第二根还可以烧30分钟; 给出解题步骤:1)用4根绳子,根据上面的推断方法原创 2017-02-21 23:17:18 · 1201 阅读 · 0 评论 -
导数与微分
导数的定义: 当函数 y=f(x) 的自变量 x 在一点 x0 上产生一个增量 Δx 时,函数输出值的增量 Δy 与自变量增量 Δx 的比值在 Δx 趋于0时的极限 如果存在,即为在 x0 处的导数: 导数公式定义为:导数的意义: 物理意义: 表示运动物体瞬时速度 即增量 Δy 除以自变量 Δx :原创 2017-02-21 22:36:13 · 2162 阅读 · 0 评论 -
四元数定义三维旋转
四元数(Quaternion)是由爱尔兰数学家 哈密顿(Hamilton)在1843年发明的概念。四元数的乘法不符合交换律(commutative law)。 四元数 可以描述为 (x * i, y * j, z * k, w) ,其中(x,y,z)表示虚部,w表示实部。 四元数 最大的价值在于 描述旋转,解决三维中的 万向节锁 的问题。万向节锁原创 2017-02-17 23:26:01 · 2566 阅读 · 0 评论 -
向量运算
提到 向量运算,首先就是 点乘 和 叉乘。点乘(Dot Product): 也叫向量的内积、数量积,公式描述为: 向量a·向量b = |a||b| cosθ = a1·b1 + a2·b2 点乘 的几何意义是一个向量在另外一个向量上的投影。叉乘(Cross Produ原创 2017-02-17 23:19:10 · 4360 阅读 · 0 评论 -
半平面求交
• Step 1: Separate the h-planes into two sets. One has polar angles of (-½π, ½π], the other has those of (-π, -½π]∪(½π, π].• 将半平面分成两部分,一部分极角范围(-½π, ½π],另一部分范围(-π, -½π]∪(½π, π] 。Step 2: Conside原创 2017-02-17 23:11:23 · 790 阅读 · 0 评论 -
射线与三角形求交
射线与三角形求交 在几何选取、碰撞检测上 经常会用到,在计算机图形学上是最初级的应用。 问题的由来 来自三维场景的鼠标点选,即通过鼠标点击 二维屏幕,对应于三维虚拟相机位置发出的一条射线,与场景中的几何进行求交。 射线与三角形求交可以分为两步:1. 射线与平面求交2. 计算交点在对应三角形内的位置 射线 可以描述原创 2017-02-17 23:09:00 · 7292 阅读 · 3 评论 -
数学回味系列之1 - 与计算机相关的32个重要算法
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出原创 2017-02-21 23:06:45 · 734 阅读 · 0 评论 -
Delaunay三角化
点集的三角剖分(Triangulation),对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技术。尤其是Delaunay三角剖分,由于其独特性,关于点集的很多种几何图都和Delaunay三角剖分相关,如Voronoi图,EMST树,Gabriel图等。Delaunay剖分所具备的优异特性:1.最接近:以最近的三点形成三角形,且各线段(三角形的边)皆不相交。转载 2017-02-17 23:13:23 · 3766 阅读 · 0 评论 -
矩阵运算概要
提到矩阵,相信大家都不陌生,作为最基本的数学概念之一,我们 知道常用的矩阵运算包括:矩阵加减乘、行列式、转置矩阵、逆矩阵、特征向量(特征值)。具体概念不做过多讲讲,直接上代码(相信代码是最好的讲述方式)。/* 矩阵定义 - 4*4齐次矩阵 用于openGL linolzhang, 2010.2.10*/#ifndef MATRIX4_H#define MATRIX4_H原创 2017-02-17 23:20:51 · 741 阅读 · 0 评论 -
通量与散度
一. 通量 通量(flux),从物理上理解,表示物质分子移动量的大小,指某种物质在每秒内通过每平方厘米的假想平面的摩尔或毫尔数。 假设有向量场 A: 沿场中某一有向曲面 ∑ 的第二类曲面积分为: 成为向量场 A向指定侧穿过曲面 ∑ 的通量。二. 散度 散度(divergence)可原创 2017-02-21 22:39:54 · 15402 阅读 · 0 评论 -
最短路径算法
最短路径 是数学中的一类问题,常常在 奥数比赛、计算机竞赛等场合出没,对应现实生活的问题就是 找一个从A点到B点的最短路,其价值和意义很明显。 常用的路径算法有:Dijkstra算法、A*算法、SPFA算法、动态规划法、Bellman-Ford算法和Floyd-Warshall算法 等等,这里我们只讲 最常用的Dijkstra算法。Dijkstra算法:原创 2017-02-21 22:43:18 · 814 阅读 · 0 评论 -
牛顿法与Hessian矩阵
牛顿法 主要有两方面的应用:1. 求方程的根;2. 求解最优化方法;一. 为什么要用牛顿法求方程的根? 问题很多,牛顿法 是什么?目前还没有讲清楚,没关系,先直观理解为 牛顿法是一种迭代求解方法(Newton童鞋定义的方法)。 假设 f(x) = 0 为待求解方程,利用传统方法求解,牛顿法求解方程的公式:f(x0+Δx) = f(x0原创 2017-03-03 22:13:30 · 38219 阅读 · 13 评论 -
数学回味系列之20 - 常胜将军
问题提出: 规则:A B 两人玩取火柴的游戏,共有 21 根火柴。 每人每次最多取 4 根,最少取 1 根。取到最后一根火柴的玩家算输。 如何保证某一玩家每次都赢?解题思路: 常胜将军 是 取火柴游戏 的一个特例。 如果每次都想让其中一个玩家赢(假设为B),那么B原创 2017-02-25 23:12:39 · 653 阅读 · 0 评论 -
数学回味系列之14 - 汉诺塔
问题提出: 古代有一个梵塔,塔内有3个座 A、B、C。 A座上有64个圆盘,盘子大小不等,大的在下,小的在上。 有一个和尚想把这64个盘子从A座移动到C座,每次只能移动一个圆盘,并在移动过程中始终保持大盘在下,小盘在上。在移动过程中只能利用B座中转。 请给出移动步骤。解题思路: 这是 著名的汉诺塔问题。原创 2017-02-25 23:09:06 · 942 阅读 · 0 评论 -
数学回味系列之9 - 绳子逃生问题
问题提出: 你被困在一幢200米高的大楼楼顶。楼顶有一个铁钩(可以挂住绳子),大楼正中间,也就是100米高的位置上,有一个可以落脚的金属支架。 你手里有一根150米长的绳子和一把刀(可切开绳子)。 你怎样才能利用这些东西安全到达地面?解题思路: 很明显,你需要两次到达地面,因此,中间的落脚点非常重要。 问题原创 2017-02-21 23:17:55 · 1147 阅读 · 0 评论 -
数学回味系列之7 - 鸡兔同笼问题
问题提出: 鸡兔同笼,共有30个头,88只脚。求笼中鸡兔各有多少只? 来个简单的题目,陪小朋友游戏一下:)解题思路: 从成人的角度理解,这是一个二元方程组,假设 鸡x只,兔y只,那么: x + y = 30 2*x + 4*y = 88 解方程,得到 x=16, y=14原创 2017-02-21 23:16:50 · 1457 阅读 · 1 评论 -
数学回味系列之5 - 三人分蛋糕问题
问题提出: 三个人分一块蛋糕,如何让每个人都觉得公平?解题思路:● 最公平的方案 - 先分后选 由 A 将蛋糕分成3块,BC选择其中两块; B重新对 选择的两块二次分割,C先选,剩下的一块给B;● 不吃亏方案 如果每个人都想占便宜呢?上面的方案是有问题的,A 和 B 可能都会觉得自己的一块少了,后悔没原创 2017-02-21 23:08:56 · 8294 阅读 · 0 评论 -
排序算法
排序算法 就不多说了,通常我们是从最容易理解的冒泡排序入门,常用的排序算法 包括:• 插入排序(1) 插入排序 基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全原创 2017-02-21 22:53:14 · 470 阅读 · 0 评论 -
范数与距离
本节从范数入手,探讨 范数 与 距离 之间的关系。何谓范数? 向量的范数 可以简单形象的理解为向量的长度,或者两个点之间的距离。 向量的 p范数 定义为: 汉明距离: 汉明距离 是指各个位之间的差异,来源于二进制码。 比如 1101 与0110 之间的汉明距离是 3(红色标记位不同)。原创 2017-02-21 22:47:32 · 3396 阅读 · 0 评论 -
数学回味系列之2 - 八皇后问题
Write an algorithm to print all ways of arranging eight queens on a chess board so that none of them share the same row, column or diagonal. 经典的八皇后问题: 在一个8*8的棋盘上放8个皇后,使得这8个皇后无法互相攻击( 任原创 2017-02-21 23:07:32 · 776 阅读 · 0 评论 -
数学回味系列之3 - 赛马问题
问题提出: 共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛。假设每匹马都跑的很稳定(可多次比赛),只通过马与马之间的比赛,没有计时器,试问,最少需要多少场比赛才能知道跑得最快的3匹马?解题思路: 根据题目,我们首先想到的就是:1)随机分成5组,各5匹马,5场比赛得到 各组第1名; => 5场2)选每组第1名,比赛一次,可以原创 2017-02-21 23:08:04 · 1642 阅读 · 0 评论 -
数学回味系列之17 - 三色球问题
问题提出: 口袋里有12个球,其中有3个红的,3个白的 和 6个黒的,问从中任取8个共有多少种不同的颜色搭配?解题思路: 设任取的红球个数为 i,白球个数为 j,则黒球个数为 8-i-j,根据题意红球和白球个数的取值范围是0~3, 在红球和白球个数确定的条件下,黒球个数取值应为 8-i-j 代码参考:#includ原创 2017-02-25 23:10:35 · 1960 阅读 · 0 评论 -
数学回味系列之18 - 哥德巴赫猜想
问题提出: 哥德巴赫猜想是世界近代三大数学难题之一。 哥德巴赫是德国一位中学教师,也是一位著名的数学家,生于1690年,1725年当选为俄国彼得堡科学院院士。 1742年,哥德巴赫在教学中发现,任意一个大于6的偶数都可以分解成两个素数(只能被1和它本身整除的数)之和。解题思路: 这个问题证明起来非常难,作者也不懂,这里我们原创 2017-02-25 23:11:14 · 1029 阅读 · 0 评论 -
数学回味系列之19 - 有趣的数字
发现一些比较有意思的数,大家一起来认识一下: 分别是 阿姆斯特朗数、完全数、自守数、回文数 。阿姆斯特朗数: 如果一个正整数等于其各个数字的立方和,则称为 阿姆斯特朗数 (也称自恋性数)。 比如 153 = 1^3 + 5^3 + 3^3 (1+125+27) 就是一个阿姆斯特朗数。 参考代码:#include原创 2017-02-25 23:12:05 · 1062 阅读 · 0 评论 -
数学回味系列之21 - 角谷猜想
问题提出: 角谷猜想 又称 冰雹猜想。 对于 一个正整数n: 1)如果 n 为偶数,就将它变为 n/2; 2)如为奇数,则将它 乘3加1(3n+1); 不断重复这样的运算,经过有限步后,一定可以得到1吗?解题思路: 和 哥德巴赫猜想一样,作者也不会去证明它,还是写个程序来进行验证。原创 2017-02-25 23:13:06 · 1667 阅读 · 0 评论 -
数学回味系列之22 - 四方定理
问题提出: “四方定理” 是数论中著名的一个定理,指 所有自然数至多只要用四个数的平方和就可以表示。解题思路: 比较简单,直接给出代码:#include#include#includeint main(){ int N,i,j,k,l; printf("请输入一个整数:"); scanf("%d",&N); // 输入整数 f原创 2017-02-25 23:13:28 · 1520 阅读 · 0 评论 -
哈希应用
Hash,通常翻译成哈希算法,中文也称为散列,即通过一种变换,将非规则的原始数据映射到固定尺度上,从而便于筛选和对比。 很像一个字典,每一个字的读音、笔画 比较复杂,但是都能够通过页码索引到,这个页码就是我们针对原始数据的映射结果,或者说散列值。 举个例子,给定一段文字,让你统计出里面里面出现频率最高的10个字。一. 哈希函数选择 选择映射方原创 2017-02-21 22:58:18 · 880 阅读 · 0 评论 -
二叉树
一、什么是树? 在前几篇的博文中主要讲述的是链式存储这种数据结构,它们的用途非常广泛,但是在实际的应用中,还存在着另一种非常重要的数据结构,它就是树。树的结构示意图如下所示: 上图就是一种数据结构----树,之所以在每个框中都留出空白,主要原因是这种结构如果根据上下文是能够传达一些重要的结构信息,比如我们可以作如下思考:转载 2017-02-21 23:01:47 · 597 阅读 · 0 评论 -
多边形Polygon
多边形 大家都很熟悉,我们把他定义为 多条边首尾连接的封闭图形,关于多边形的算法有很多,比如 是否为凸多边形、直线与多边形求交、填充算法、三角化等,具体的算法原理作者就不再细讲,直接给出作者以前写的具体代码,大家作为参考: 封装的Math工具类(MathTool.h),这里也用到了之前文章里的(Tuple2.h和Tuple3.h)/* Math工具类 - 包含基本数学算法原创 2017-02-21 22:34:59 · 3578 阅读 · 0 评论 -
数学回味系列之16 - 爱因斯坦台阶问题
问题提出: 爱因斯坦曾经提出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩下1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩下4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。解题思路: 最简单的办法,穷举遍历法。给出代码:#include int main(int argc, cha原创 2017-02-25 23:09:48 · 2647 阅读 · 0 评论 -
数学回味系列之15 - 兔子繁殖问题
问题提出: 著名意大利数学家Fibonacci曾提出一个问题: 有一对小兔子,从出生两个月后(第3个月起)开始每个月都生一对兔子。 小兔子两个月后(第3个月起)开始每个月又生一对兔子。按此规律, 假设没有兔子死亡,第一个月有一对刚出生的小兔子, 问第n个月有多少对...解题思路: 定义第n个月后,兔子数量为 rabbit(n)。 rabb原创 2017-02-25 23:09:29 · 1885 阅读 · 0 评论 -
数学回味系列之4 - 开灯关灯问题
问题提出: 有编号1~100个灯泡,起初所有的灯都是灭的。有100个同学来按灯泡开关,如果灯是亮的,那么按过开关之后,灯会灭掉。如果灯是灭的,按过开关之后灯会亮。现在开始按开关。 第 1 个同学,把所有的灯泡开关都按一次(按开关灯的编号:1,2,3,......100)。 第 2 个同学,隔一个灯按一次(按开关灯的编号:2,4,6,......,原创 2017-02-21 23:08:32 · 7719 阅读 · 0 评论 -
数学回味系列之6 - 有趣的24点
问题提出: 从一副扑克牌里 任意取 4张牌,如何通过 加减乘除,使结果等于24? 任给4个数字 [1,13],通过 + - * / 运算,使得结果 = 24。解题思路: 把多元运算转化为两元运算,先从四个数中取出两个数进行运算,然后把运算结果和第三个数进行运算,再把结果与第四个数进行运算。 在求表达式的过程中,最难处理的就是对原创 2017-02-21 23:09:38 · 1464 阅读 · 0 评论 -
数学回味系列之10 - 高楼扔鸡蛋
问题提出: 有座100层的建筑,鸡蛋从某一层扔下来有可能摔碎(可能是1楼,也可能是100楼)。 你手上有两个软硬程度一样的鸡蛋,要判断出来哪一层是鸡蛋可以安全落下的最高位置。 最少需要扔多少次?解题思路: 》 最笨的方法,从1层开始,每层都扔1次,直到摔碎 为止,得到当前当前层数 n。 最差需要100次原创 2017-02-21 23:18:18 · 772 阅读 · 0 评论 -
数学回味系列之11 - 农夫过河问题
问题提出: 对象:农夫、狼、羊、白菜 目标:农夫想划船 把狼、羊、菜和自己运到河对岸,船比较小,农夫每次只能运一种东西过河 约束条件:如果没有农夫看着,羊会偷吃菜,狼会吃羊 考虑一种方法,让农夫能够安全地安排过河。解题思路: 实际上这是一个状态转换问题,也许做过这个题的童鞋都能给出一个正确答案,比如:1)带原创 2017-02-25 23:07:43 · 4309 阅读 · 0 评论 -
数学回味系列之12 - 龟兔赛跑问题
问题提出: 乌龟与兔子进行赛跑,乌龟每分钟可以前进3米,兔子每分钟前进9米; 兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟: a)若发现自己超过乌龟,就在路边休息,每次休息30分钟; b)若发现被乌龟超过,继续跑10分钟; 乌龟不休息,一直跑。 请问原创 2017-02-25 23:08:11 · 2694 阅读 · 0 评论 -
数学回味系列之13 - 杀猪问题
问题提出: 有 N 头猪 和 一个变态的屠夫; 屠夫就喜欢杀单数位置上的猪,一次杀完之后,将剩下的猪按照原来的相对位置,重新排列; 按照约定,最后一头猪(取名Lucky)将会被送到教堂,这是神的旨意。 请问,最聪明的猪应该站在哪个位置,才能成为这个幸运儿?解题思路: 分析这个问题,我们发现,奇数位是危险的,原创 2017-02-25 23:08:39 · 1612 阅读 · 0 评论 -
数学回味系列之24 - 黑白子交换
问题提出: 有三个白子和三个黑子如下图布置: ○ ○ ○ . ● ● ● 用最少的步数将上图中白子和黑子的位置进行交换: ● ● ● . ○ ○ ○ 游戏规则: (1) 一次只能移动一个棋子; (2) 棋子可以向空格中移动,也可以跳过一个对方的棋子进入空格,但不能向后跳,也不能跳过两个子。原创 2017-02-25 23:14:23 · 1273 阅读 · 0 评论 -
数学回味系列之23 - 小明买书
问题提出: 小明假期同爸爸一起去书店,他选中了六本书,每本书的单价分别为:3.1,1.7,2,5.3,0.9和7.2。不巧的是,小明的爸爸只带了十几块钱,为了让小明过一个愉快的假期,爸爸扔然同意买书,但提邮购一个要求,要小明从六本书中选出若干本,使得单价相加所得的和同10最接近。解题思路: 可以将题目简化为:从6个数中选取若干个求和,使得和与10的差值最原创 2017-02-25 23:13:56 · 1600 阅读 · 0 评论 -
奇异值分解SVD
奇异值分解(Singular Value Decomposition)是线性代数中一种重要的矩阵分解,和 特征值分解 有一定的关联,作用都在于将矩阵分解成 多个矩阵的乘积,从而方便进行数据的拆分,实现数据的投影或者降维。 从数学的角度来看,特征值分解 和 奇异值分解 都是给一个矩阵(线性变换)找一组特殊的基。 我们 先从特征值分解层面来引入问题:●原创 2017-03-03 22:18:19 · 2094 阅读 · 0 评论