Algorithms
文章平均质量分 76
Fioman
这个作者很懒,什么都没留下…
展开
-
达夫设备以及switch case
神奇的Duff Device,这就是艺术!以下是一个利用达夫设备拷贝字符串的代码: inline void duffdevice_strcpy(char* dest, const char* source){ size_t length = strlen(source); register size_t n = length/8; switch(++length%8) // 字符原创 2008-04-24 22:16:00 · 1483 阅读 · 0 评论 -
交换变量的值
交换整型变量的值有三种方法:void swap(int& x, int& y){ int temp = x; x = y; y = temp;}这种方法也适用于其它类型的变量。void swap(int& x, int& y){ x += y; y = x - y; x -= y;}这种方法不需要临时变量,但只适用于整型。浮点型在原创 2008-05-02 10:57:00 · 811 阅读 · 0 评论 -
扩展欧几里德算法解线性方程ax+by=c
问题:ax+by=c,已知a、b、c,求解使该等式成立的一组x,y。其中a、b、c、x、y均为整数a,b的最大公约数为gcd(a,b)。如果c不是gcd(a,b)的倍数,则该等式无解,因为等式左边除以gcd(a,b)是整数,而等式右边除以gcd(a,b)后为小数。因此,只有当c是gcd(a,b)的倍数的时候,该等式有解。这样,可以通过计算使ax1+by1=gcd(a,b)成立的x1、y1,原创 2008-05-18 11:31:00 · 9805 阅读 · 1 评论 -
德卡斯特里奥算法(De Casteljau’s Algorithm)绘制贝塞尔曲线
引用:http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/Bezier/de-casteljau.html 德卡斯特里奥算法可以计算贝塞尔曲线上的点C(u),u∈[0,1]。因此,通过给定一组u的值,便可以计算出贝塞尔曲线上的坐标序列,从而绘制出贝塞尔曲线。德卡斯特里奥算法的基础就是在向量AB上选择一个点C,使得C分向量AB原创 2008-06-23 15:14:00 · 19220 阅读 · 3 评论