<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[huangwei.pro]]></title><description><![CDATA[『我失去了一只臂膀』「就睁开了一只眼睛」]]></description><link>https://blog.youkuaiyun.com/huangwei1024</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; huangwei1024]]></copyright><item><title><![CDATA[现代OpenGL教程 04 - 相机，向量，输入]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/48161453</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/48161453</guid><author>huangwei1024</author><pubDate>Tue, 01 Sep 2015 18:15:18 +0800</pubDate><description><![CDATA[http://huangwei.pro/2015-09/modern-opengl4/本篇教程中，我们会巩固上一篇所提到的矩阵和相机知识，并使用tdogl::Camera类来实现第一人称射击类型的相机。然后，我们会将相机与键盘和鼠标挂钩，使得我们可以移动和浏览3D场景。这里会学一些向量数学，还有上一篇没提到的逆矩阵。获取代码所有例子代码的zip打包可以从这里获取：https://github.com]]></description><category></category></item><item><title><![CDATA[现代OpenGL教程 03 - 矩阵，深度缓冲，动画]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/47664523</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/47664523</guid><author>huangwei1024</author><pubDate>Fri, 14 Aug 2015 16:59:35 +0800</pubDate><description><![CDATA[http://huangwei.pro/2015-08/modern-opengl3/本文中，我会将不会动的2D三角形替换为旋转的3D立方体。你会看到这样的效果：现在我们终于能在屏幕上搞点有趣的东西了，我放了更多的动图在这里：http://imgur.com/a/x8q7R为了生成旋转立方体，我们需要学些关于矩阵的数学，用于创建透视投影，旋转，平移和“相机”概念。我们还有必要学习些深度缓冲，和典型的]]></description><category></category></item><item><title><![CDATA[游戏中的随机概率]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/47399129</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/47399129</guid><author>huangwei1024</author><pubDate>Mon, 10 Aug 2015 15:20:22 +0800</pubDate><description><![CDATA[http://huangwei.pro/2015-07/game-random/这段时间公司开发的游戏上线测试，许多玩家在抽卡时抱怨脸黑，很难抽到所需要的卡牌，而又有一部分玩家反应运气好能连着抽到紫卡，检查了下随机相关逻辑代码，并没有找出问题所在，玩家运气好与坏只是觉得真有可能是概率原因。测试开服了几天之后，需要开放某个限时抽卡活动，在内部测试时，我们发现玩家反应的问题在限时抽卡中格外明显，尤其是其]]></description><category></category></item><item><title><![CDATA[现代OpenGL教程 02 - 贴图]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/47399081</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/47399081</guid><author>huangwei1024</author><pubDate>Mon, 10 Aug 2015 15:18:17 +0800</pubDate><description><![CDATA[http://huangwei.pro/2015-08/modern-opengl2/在本文中，我们将给三角形加一个贴图，这需要在顶点和片段着色器中加入一些新变量，创建和使用贴图对象，并且学习一点贴图单元和贴图坐标的知识。本文会使用两个新的类到tdogl命名空间中：tdogl:Bitmap和tdogl:Texture。这些类允许我们将jpg，png或bmp图片上传到显存并用于着色器。tdogl:Pr]]></description><category></category></item><item><title><![CDATA[现代OpenGL教程 01 - 入门指南]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/47399055</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/47399055</guid><author>huangwei1024</author><pubDate>Mon, 10 Aug 2015 15:16:55 +0800</pubDate><description><![CDATA[http://huangwei.pro/2015-05/modern-opengl1/
    
译序早前学OpenGL的时候还是1.x版本，用的都是glVertex，glNormal等固定管线API。后来工作需要接触DirectX9，shader也只是可选项而已，跟固定管线一起混用着。现在工作内容是手机游戏，又转到OpenGL ES，发现OpenGL的世界已经完全不同了，OpenGL ES 2.0]]></description><category></category></item><item><title><![CDATA[代码阅读辅助工具]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/6366990</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/6366990</guid><author>huangwei1024</author><pubDate>Wed, 27 Apr 2011 15:25:00 +0800</pubDate><description><![CDATA[<br /><br />http://blog.huang-wei.com/2011/04/27/read-source-tool/<br /><br /> <br />做程序员的，每天要对着显示器上的行行代码<br />尤其是一份你从未写过、未读过的代码放在你的面前时，尼会感到似那样滴心力憔悴<br />这些还都算了，尼玛连个注释都没！！！文档呢！有木有啊！！<br />哥幼小的心灵在一大堆代码中接受着无数次的摧残~<br />其实大家在阅读代码时，尤其是C/C++代码<br />类结构、继承、函数调用等]]></description><category></category></item><item><title><![CDATA[Windows Socket IO 模型]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/6024756</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/6024756</guid><author>huangwei1024</author><pubDate>Sun, 21 Nov 2010 12:07:00 +0800</pubDate><description><![CDATA[应用程序使用Winsock与传输协议驱动沟通时AFD.SYS负责缓冲区的管理。这就意味着当一个程序调用send或者WSASend发送数据时，数据将被复制到AFD.SYS它自己的内部缓冲区中（依赖SO_SNDBUF的设置）WSASend调用立即返回。然后AFD.SYS在程序后台将数据发送出去。当然，如果程序想要处理一个比SO_SNDBUF设置的缓冲区需求更大的发送请求，WSASend的调用就会阻塞直到所有的数据都被发送出去。]]></description><category></category></item><item><title><![CDATA[Bloom Filter 原理与应用]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/6014272</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/6014272</guid><author>huangwei1024</author><pubDate>Wed, 17 Nov 2010 11:13:00 +0800</pubDate><description><![CDATA[<br />http://blog.huang-wei.com/2010/11/02/bloom-filter/<br /> Bloom Filter 原理与应用介绍<br />Bloom Filter是一种简单的节省空间的随机化的数据结构，支持用户查询的集合。一般我们使用STL的std::set, stdext::hash_set，std::set是用红黑树实现的，stdext::hash_set是用桶式哈希表。上述两种数据结构，都会需要保存原始数据信息，当数据量较大时，内存就会是个问题。如果应用场景中允]]></description><category></category></item><item><title><![CDATA[C++中实现委托（Delegate）]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/6014265</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/6014265</guid><author>huangwei1024</author><pubDate>Wed, 17 Nov 2010 11:10:00 +0800</pubDate><description><![CDATA[<br />http://blog.huang-wei.com/2010/08/09/c%E4%B8%AD%E5%AE%9E%E7%8E%B0%E5%A7%94%E6%89%98%EF%BC%88delegate%EF%BC%89/<br /> C++中实现委托（Delegate）<br />公司的项目里有用到Don Clugston的FastDelegate，当时只知道是类似boost::function的东西，UI上当watcher用的比较多，所以也没去关注。今天想写个事件触发器时，突然想起这茬子，看来]]></description><category></category></item><item><title><![CDATA[重载全局new/delete实现内存计数]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/5756605</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/5756605</guid><author>huangwei1024</author><pubDate>Thu, 22 Jul 2010 23:04:00 +0800</pubDate><description><![CDATA[http://www.huang-wei.com/blog/?p=419有时为了统计内存使用，或检测内存泄漏，重载全局的 new/delete 是一种比较简易的实现方法。让我们先来回顾下 new/delete 重载的相关内容吧。技术篇[::] new [placement] new-type-name [new-initializer][::] new [placement] ( type-name ) [new-initializer][::] delete cast-expression[::] del]]></description><category></category></item><item><title><![CDATA[双数组字典树的内存占用测试]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/5756599</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/5756599</guid><author>huangwei1024</author><pubDate>Thu, 22 Jul 2010 23:01:00 +0800</pubDate><description><![CDATA[http://www.huang-wei.com/blog/?p=437上一篇文章介绍了双数组字典树 DATrie，现在让我们来简单的测试下内存占用情况。测试用例，我选了The Holy Bible，数据文件大小为4.2MB。只记录英文单词，全部转为小写。words : 822,529u-words : 12,591nodes : 34,266trie-mem : 1,247,308datrie-mem : 483,376Trie的实现我已经做了一些优化，初始每个节点的指针数组 size 为0，当有节点插入]]></description><category></category></item><item><title><![CDATA[Double-Array Trie（双数组字典树）]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/5756572</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/5756572</guid><author>huangwei1024</author><pubDate>Thu, 22 Jul 2010 22:45:00 +0800</pubDate><description><![CDATA[http://www.huang-wei.com/blog/?p=386Trie在ACM中已经十分普及，也是一种非常有效的索引结构，好处就不多说了。它的本质就是一个确定的有限状态自动机（DFA），关于它的实现也是有好几种，ACM中用的最多也是最容易实现的就是多路查找树。但是Trie最大的缺点就是占用空间过大，很容易爆内存，当然在ACM里对Trie树也有相应的优化，如限定高度，对分支较少的节点使用非随机访问的结构（减少宽度），但这些都是牺牲部分查找效率换取的。这里介绍一种实现，Double-Array Tri]]></description><category></category></item><item><title><![CDATA[FZU 1538 神奇的数列]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/1896440</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/1896440</guid><author>huangwei1024</author><pubDate>Wed, 21 Nov 2007 14:41:00 +0800</pubDate><description><![CDATA[Problem 1538 神奇的数列                                    Time Limit:3sMemory limit:32M             Accepted Submit:6Total Submit:19                         光棍节那天，上帝可怜你依旧个光棍,决定赐予你爱情~~当然，天下]]></description><category></category></item><item><title><![CDATA[最小树形图]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/1786608</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/1786608</guid><author>huangwei1024</author><pubDate>Sat, 15 Sep 2007 19:43:00 +0800</pubDate><description><![CDATA[ 吴文虎的图论算法上写的比较清楚还有wywcqs博客上也有很详细的解说了http://hi.baidu.com/wywcgs/blog/item/a1ce10f4a8fa366fdcc47462.html写了下O（VE）版本的，uva 11183                        Ranking            Submission  ]]></description><category></category></item><item><title><![CDATA[Farey序列构造和查找]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/1778592</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/1778592</guid><author>huangwei1024</author><pubDate>Mon, 10 Sep 2007 03:38:00 +0800</pubDate><description><![CDATA[ 今天的Farey竟然挂掉了，实在咽不下这口气，晚上又整理了一下资料。以供大家一起学习。 Farey序列       Fn = {a/b | gcd(a,b)=1 && 0       即由小于或等于n的整数所组成的不可再约分数的递增序列，并满足分子分母互质。       如：       F1 = {0/1, 1/1}       F2 = {0/1, 1/2]]></description><category></category></item><item><title><![CDATA[关于中国邮递员问题和欧拉图应用]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/1776866</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/1776866</guid><author>huangwei1024</author><pubDate>Sat, 08 Sep 2007 00:28:00 +0800</pubDate><description><![CDATA[关于中国邮递员问题和欧拉图应用 中国邮递员问题： 1962年有管梅谷先生提出中国邮递员问题（简称CPP）。一个邮递员从邮局出发，要走完他所管辖的每一条街道，可重复走一条街道，然后返回邮局。任何选择一条尽可能短的路线。这个问题可以转化为：给定一个具有非负权的赋权图G，（1）用添加重复边的方法求G的一个Euler赋权母图G*，使得尽可能小。（2）求G*的Euler 环游。人]]></description><category></category></item><item><title><![CDATA[很好的RMQ，LCA文章]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/1773784</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/1773784</guid><author>huangwei1024</author><pubDate>Wed, 05 Sep 2007 20:46:00 +0800</pubDate><description><![CDATA[Range Minimum Query and Lowest Common Ancestor By danielp Introduction Notations Range Minimum Query (RMQ)     Trivial algorithms for RMQ     A  solution     Sparse Table (ST) algorithm     Segment Tr]]></description><category></category></item><item><title><![CDATA[关于数论中的互质数的最大不能组合数]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/1765874</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/1765874</guid><author>huangwei1024</author><pubDate>Thu, 30 Aug 2007 19:59:00 +0800</pubDate><description><![CDATA[最近看数论，转头重新思考了这题，参考了下论文和lrj的黑书，重新证明一遍，做个笔记。例题：HDOJ 1792 A New Change Problem题意：给定A和B，A和B互质，求最大不能组合数，和不能组合数的个数。基础知识：Gcd(A, B) = 1 → Lcm(A, B) = AB剩余类，把所有整数划分成m个等价类，每个等价类由相互同余的整数组成任何数分成m个剩余类，分别为 mk，mk+1，]]></description><category></category></item><item><title><![CDATA[Number Theory 4.5 Relative Primality]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/1753487</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/1753487</guid><author>huangwei1024</author><pubDate>Tue, 21 Aug 2007 22:23:00 +0800</pubDate><description><![CDATA[当 gcd(m, n) = 1时，我们称 m和n互素。约定用 m⊥n来表示两者互素。m / gcd(m, n)  ⊥ n / gcd(m, n)由 gcd和素数序列的关系我们可以得出k ⊥ m and k ⊥ n ←→ k ⊥ mn书上看到一种很好玩的一种构造算法。用来构造所有具有 m⊥n的非负分数 m/n集合，称为Stem-Brocot tree。建树思想是：从两个分]]></description><category></category></item><item><title><![CDATA[Number Theory 4.4 Factorial Factors]]></title><link>https://blog.youkuaiyun.com/huangwei1024/article/details/1753450</link><guid>https://blog.youkuaiyun.com/huangwei1024/article/details/1753450</guid><author>huangwei1024</author><pubDate>Tue, 21 Aug 2007 21:40:00 +0800</pubDate><description><![CDATA[这个公式说明阶乘是以指数律增长。对于大的n，我们能用Stirling公式来精确近似n!。 误差是 1/(12*n)。从该表中，我们能得出对 n!求m的幂的迭代算法。特殊的，对于2的幂次来说，n!的2幂次等于n减去它本身二进制中1的个数。]]></description><category></category></item></channel></rss>