数学算法
文章平均质量分 92
寻开心
不写代码10几年,重新学学Swift语言,活到老学到老!
展开
-
用数组实现大数的阶乘
用int来表示整数的阶乘到12!就是极限了,再大就要超出整数的范围了那么更大的数的阶乘怎么办, long long int是64位,但是也只能容纳20!的阶乘,更大的数必须另想办法直接上代码, 10000! 0.1s左右可得(i7的cpu哈)。这个时间也不包含输出部分, 具体的时间和硬件有关系基本原理就是用数组模拟寄存器乘法计算的原理#include <stdio.h...原创 2020-01-17 21:23:43 · 903 阅读 · 0 评论 -
反射向量的计算
在计算机图形学应用过程当中, 无论是二维环境还是三维环境, 经常涉及到碰撞反弹的问题这个问题对应之际的数学问题就是反射向量的计算问题一个向量V, 在法向量为N的平面上产生的反射向量V的计算的问题这个向量有个简单的计算技巧, 效率非常的高利用反射原理和向量知识, (v, 和 -v关于法向量对称 )我们知道有: v- v = alpha * N/|N| a原创 2007-03-29 15:41:00 · 6257 阅读 · 1 评论 -
颐家IDO-技术特点说明
颐家IDO 技术特点说明 1 三维虚拟展示, 虚拟现实技术, 以D3D为核心建立的显示平台 2 网络即时选材, 网络数据库管理装修产品, 在线选择,下载装修 3 即时通讯功能, 文字和文件的即时交互 4 互动设计功能, 三维场景的即时交互原创 2007-09-06 19:25:00 · 1226 阅读 · 0 评论 -
颐家IDO-在线互动设计软件推出啦!
经过多年的努力, 2007年9月5日, 颐家IDO-在线互动软件终于上线了IDO = Interactive Decoration Online 在线互动设计IDO = Instant Design Online 即时设计I do = 我做主颐家IDO = 美好家居,我做主!原创 2007-09-06 19:20:00 · 1612 阅读 · 1 评论 -
再谈空间向量之间的夹角问题
以前发表过一个关于计算向量之间夹角的文章 http://blog.csdn.net/happy__888/archive/2005/04/28/367008.aspx有个网友提出疑问, 当N和a以及b向量不垂直的情况下, 计算方法是错误的这个问题非常的好尽管问题本身,和描述的提供的方法的前提违背---方法首先在前提的时候已经说明了N是a和b的公共法向量,那么N必然是同时垂直原创 2008-03-05 19:47:00 · 6534 阅读 · 0 评论 -
如何判断两个矩形相交
很久以前的一个网友提问的问题和回答 http://topic.csdn.net/t/20050726/09/4167897.html 假定矩形是用一对点表达的(minx,miny)(maxx, maxy) 那么两个矩形rect1{(minx1,miny1)(maxx1, maxy1)}, rect2{(minx2,miny2)(m原创 2008-07-18 11:44:00 · 2573 阅读 · 2 评论 -
包围球与包围盒的碰撞检测
包围盒之间的碰撞,或者包围球之间已经有很多成熟的算法描述,这里介绍的是包围盒与包围球之间的碰撞原创 2011-02-18 16:53:00 · 2504 阅读 · 0 评论 -
折线平行线的计算方法
给定一个简单多边形,多边形按照顺时针或者逆时针的数许排列内部等距离缩小或者外部放大的多边形,实际上是由距离一系列平行已知多边形的边,并且距离为L的线段所构成的。外围的是原多边形,内侧是新的多边形算法构造多边形的相邻两条边,L1和L2,交于Pi点做平行于L1和L2,平行线间距是L的,并且位于多边形内部的两条边,交于Qi我们要计算出Qi的坐标原创 2005-03-09 14:32:00 · 19752 阅读 · 11 评论 -
NOIP2017普及组初赛问题求解第四题的解答方法
孩子要参加NOIP比赛了,在做真题测试,拿到2017的赛题,其中一道原题如下:根据代码根据输入填写输出的试题:#include using namespace std;int main() { int n, m; cin >> n >> m; int x = 1; int y = 1; int dx = 1; int dy = 1; int cnt ...原创 2018-10-13 00:23:06 · 1197 阅读 · 3 评论 -
非递归的全排列输出
对于任意给定的1~9, 给出所有的不出现重复数字的排列由于讨厌使用递归(代码好写,但是执行效率不高),也不想使用stl模板之类,于是用标准c++单独写了一个代码如下://// 本代码用于生成n的全排列,结果保存在permutation二维数组当中// 生成的原理:// 假定一个完成了n-1个数的不重复的排列,并放到permuatation数组当中的前(n-1)!行...原创 2019-01-03 12:33:16 · 682 阅读 · 1 评论 -
关于微软的摔XBOX的问题
原始问题如下: You have been given 2 special, extremely rugged Xboxes. You are in an office building that is 100 stories high. Using the fewest possible nu原创 2007-02-13 10:44:00 · 1595 阅读 · 0 评论 -
图像分区算法
在图像处理当中经常会遇到,把相近颜色的区域提取出来的问题如果是交互操作,指定图像上的一个点,找到该点对应的颜色区域的方法已经很成熟了——种子填充或者是扫描线填充等算法,这里就不赘述了。问题是,如何对于给定的一个图像,自动找到所有的独立的颜色区域呢,为了简化问题,可以假定这个图像是黑白二值的,如何找到这个图像上所有的黑色的连通区域,并且给每个区域一个独立的区号呢我们假定连通关系是8连通原创 2006-04-22 11:32:00 · 4385 阅读 · 0 评论 -
三维世界当中的变换矩阵
矩阵在三维世界当中是一个非常重要的元素所有的物体的移动,缩放和旋转,以及相机的控制都体现在变换矩阵之上。变换矩阵实质上是一个坐标系的转换关系我们除了要考虑如何生成变换矩阵之外,还更应当注重变换矩阵的物体意义两个坐标系A和B,从A到B的变换矩阵Mab的物理意义是什么呢。实际组成变换矩阵的各个向量就是B坐标系下的坐标轴以及原点在A坐标系下的向量和点。这点很好理解,用Ma原创 2005-01-31 14:53:00 · 3171 阅读 · 1 评论 -
浮点数的比较
在数学运算当中经常会涉及到判断两个数是否相等的情况对于整数很好处理 A==B这样的一个语句就可以解决全部的问题但是对于浮点数是不同的首先,浮点数在计算机当中的二进制表达方式就决定了大多数浮点数都是无法精确的表达的现在的计算机大部分都是数字计算机,不是模拟机,数字机的离散化的数据表示方法自然无法精确表达大部分的数据量的。其次计算机浮点数的精度在单精度float类型下,只有7位,在进行浮点运算的时候,原创 2005-02-04 14:56:00 · 6994 阅读 · 2 评论 -
浮点数的压缩算法
参考IEEE的浮点数格式说明对于0到1范围内的浮点数是可以压缩的显然在0到1的范围内,一个单精度的浮点数,指数和符号位占据9个bit而这9个bit是可以不用的,把它去除,只保留小数部分的23bit就可以达到压缩的目的可以把一个浮点数从32bit,4字节压缩到23bit,3字节的范围内这也是在3dmax等一些工具软件当中对浮点数进行压缩存储的方法。比如,在单位化的法向量当中,每个浮点数都是0,1范围原创 2005-02-02 11:47:00 · 9106 阅读 · 0 评论 -
浮点数的比较(二)
在写了上篇 浮点数的比较 以及 浮点数内存结构 两篇文章后对于浮点数的比较有新的想法我们先看正数的情况根据IEEE的内存结构, 指数在高位,尾数在低位浮点数大的对应的把其内存结构按照整数来理解进行比较的时候,情况也是成立的因此在这里如果把他们进行比较的话,作为整数运算效率会非常的高,比如float f1 = 1.23; float f2 = 1.24f1 > f2 成立(int&)f1 > (in原创 2005-02-16 12:11:00 · 5498 阅读 · 4 评论 -
如何计算平面n个圆相交的公共部分的面积
原题参考 mmmcd 超超 在这个帖子当中的讨论http://community.csdn.net/Expert/topic/4075/4075074.xml?temp=.4154627N个任意圆相交求公共面积的问题必须注意到如下一:凸体和凸体相交依然是凸体,多元相交后也是凸体二:多元相交结果,必然是由圆弧所组成,三:最终的相交面积为各个子圆弧的弓形面积 + 内部凸多边形的面积要解决这个问题,要解原创 2005-06-21 16:21:00 · 5890 阅读 · 1 评论 -
如何用查表替代运算
对于sin,cos,tan等三角函数来说,使用cpu/fpu计算所花费的时间比加减法员算要慢很多的时间这就使得在很多密集的三角运算花费了大量的时间,如何在保证一定精度的情况下,使用近似的方法来获取这些函数的数值呢常规的做法,就是牺牲空间换取时间的查表法需要注意的是,查表法不是万能的,必须针对特定的函数特殊处理,拿sin(x)作为例子来说把x从0到90度,每0.01一个单位,把每个点的sin数值计算原创 2005-08-30 18:35:00 · 4083 阅读 · 0 评论 -
如何计算两个空间向量之间的转角
在三维空间当中,经常涉及到计算两个向量之间的角度问题,而且这个角度是特定的方向角度也就是说,围绕他们的公共法向量旋转的角度假定这两个向量是a和b我们知道 c=a×b是一个向量,方向是按照右手坐标系生成的,垂直于ab所在平面的向量,c向量的模是|c|=|a|*|b|*sinCita同时,我们知道,向量a*b是一个数,它的大小是是 |a|*|b|*cosCita根据这两个表达式,我们似乎可以用 ta原创 2005-04-28 18:16:00 · 20743 阅读 · 13 评论 -
如何计算点到线段的最近距离
在二维/三维图形学系统当中,线段的拾取是一个经常使用的功能如何根据鼠标点来判断线段是否被选择了,最主要的方法之一是通过点到线段的最小距离来判定的无论二维还是三维情况下,使用点到直线的距离公式似乎是最直接的选择但是不要忘记点到直线公式计算的是点和直线之间的关系,而不是点和线段之间的关系需要额外的判断,点在线段上的投影点是否位于线段内部,是才可以采用点到直线的公式,否则就不能算法如下class Poi原创 2005-11-09 15:55:00 · 11141 阅读 · 7 评论 -
单向链表当中的环路判别问题
有一个单向链表,如何判定这个链表当中是否包含有环路,以及如何定位环路在链表当中的开始点呢?关于第一个问题,网络上可以搜索到,用两个指针来遍历这个单向链表,第一个指针p1,每次走一步;第二个指针p2,每次走两步; 当p2 指针追上 p1的时候,就表明链表当中有环路了。关于这个解法最形象的比喻就是在操场当中跑步,速度快的会把速度慢的扣圈可以证明,p2追赶上p1的时候,p1一定还没有走完一遍环路,p2原创 2005-12-21 16:49:00 · 5106 阅读 · 7 评论 -
平面图像的快速旋转
原问题:http://community.csdn.net/Expert/topic/3757/3757859.xml?temp=5.727786E-02对于一个点旋转一个角度alpha的话,乘以一个矩阵就可以了,但是对于一整幅图片来说,如果每个点都乘以矩阵,速度太慢了,有没有快一点的算法,来旋转整个图片?基本知识旋转一个图像,如果是从原图上象素点到目标图像的象素点进行计算的话不好,会导致目标图片原创 2005-01-27 15:24:00 · 1838 阅读 · 1 评论