<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[网站架构札记]]></title><description><![CDATA[原博客地址 allenlsy.com]]></description><link>https://blog.youkuaiyun.com/AllenLSY</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AllenLSY]]></copyright><item><title><![CDATA[Instagram 的平台架构和扩展]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/82525935</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/82525935</guid><author>AllenLSY</author><pubDate>Sat, 08 Sep 2018 07:39:02 +0800</pubDate><description><![CDATA[博客原文：http://allenlsy.com/scaling-instagram

Instagram 截止2018年6月的规模


10亿月活跃用户，80%以上用户不在美国。女性用户大约是男性的1.5倍
每天100亿次以上的点赞
每天10亿次以上的上传图片或视频
最大账号，1.1亿以上的粉丝数量。比如下面两位：






可以看出，Instagram 是一个极其庞大的网站

下图是Inst...]]></description><category></category></item><item><title><![CDATA[特殊计数序列]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5425820</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5425820</guid><author>AllenLSY</author><pubDate>Sun, 28 Mar 2010 22:35:00 +0800</pubDate><description><![CDATA[ 1.       Catalan数：Cn = 1/(n+1) * C(2n, n)，Cn = (4n-2)/(n+1) *Cn-1a.       内部插入不相交对角线，将n+1条边的凸多边形分割为三角形的计数b.      n个+1和n个-1构成的序列a，对于所有k = 1, 2, 3, .. ,2n ，满足∑ak>=0的序列个数c.       拟Catalan数Cn*=n!]]></description><category></category></item><item><title><![CDATA[二项式系数 & 递推关系初步]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5422596</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5422596</guid><author>AllenLSY</author><pubDate>Sat, 27 Mar 2010 14:51:00 +0800</pubDate><description><![CDATA[二项式系数1.      Pascal公式：C( n, k ) = C( n-1, k ) + C( n-1,k-1)2.      一些恒等式a.      k*C( n, k ) = n*C(n-1. k-1 )b.     C(n, 0) – C(n, 1) + C(n, 2) - … + (-1)nC(n,n) = 0  (n>=1)c.  ]]></description><category></category></item><item><title><![CDATA[第一范式，第二范式，第三范式，BCNF]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5356899</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5356899</guid><author>AllenLSY</author><pubDate>Mon, 08 Mar 2010 16:36:00 +0800</pubDate><description><![CDATA[ 第一范式 1NF属性不可再分割，符合原子性。没什么好解释的，地球人都明白  第二范式 2NF在1NF的基础上：不允许出现有field部分依赖于主键（或者说依赖于主键的一部分）官方说法：数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖（部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况），也即所有非关键字段都完全依赖于整组候选关键字。 All]]></description><category></category></item><item><title><![CDATA[《对弈程序基本技术》专题：Alpha-Beta搜索]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5324453</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5324453</guid><author>AllenLSY</author><pubDate>Thu, 25 Feb 2010 09:26:00 +0800</pubDate><description><![CDATA[《对弈程序基本技术》专题：Alpha-Beta搜索2009-11-22 23:50Bruce Moreland (brucemo@seanet.com) / 文 　 最小-最大的问题 　 　　Alpha-Beta 同“最小-最大”非常相似，事实上只多了一条额外的语句。最小最大运行时要检查整个博弈树，然后尽可能选择最好的线路。这是非常好理解的，但效率非常低。每次搜索更深一层时]]></description><category></category></item><item><title><![CDATA[Alpha_Beta 剪枝]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5324441</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5324441</guid><author>AllenLSY</author><pubDate>Thu, 25 Feb 2010 09:23:00 +0800</pubDate><description><![CDATA[Tic-Tac-Toe算法笔记 这几天在用Python写Tic-Tac-Toe小游戏，顺便接触了一些简单的人机博弈算法，其实在算法方面我完全算是个新手，所以这也算是一个反复折腾学习的过程。而Tic-Tac-Toe应该算是人机博弈里最简单的应用了，最经典的算法是miniMax算法，也叫极大极小值算法，主要方法就是通过考虑双方博弈N步后，从所有可能的走法中选一步最佳的走法来走。先简单说说算]]></description><category></category></item><item><title><![CDATA[Hash表实现时的注意事项]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5323663</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5323663</guid><author>AllenLSY</author><pubDate>Wed, 24 Feb 2010 19:19:00 +0800</pubDate><description><![CDATA[后面要忙一段时间的Project，今天又练了一些基础的模板。Hash这个东西，一般的实现方法是，建立Node类，其中next是Node*。然后，在程序中，如果要向表中添加元素，用局部变量的话，必须生成一个新的Node*，而不能是Node，否则会找不到的（因为是局部变量）。Hash表头一般没有元素。判断当前slot是否查找完，用的是条件p->next!=NULL。 样例程序：将n个数]]></description><category></category></item><item><title><![CDATA[生成排列组合（Brualdi第4章）笔记]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5310784</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5310784</guid><author>AllenLSY</author><pubDate>Thu, 18 Feb 2010 12:26:00 +0800</pubDate><description><![CDATA[生成排列Stirling公式：n! ~ sqrt(2*π*n)(n/e)n生成算法1：Johnson，Trotter要生成全排列n，则在全排列n-1上，每个排列用插空法插入nn=2:   1 22 1n=3:   1    2 3   1 3 2  3 1    23 2    1   2 3 1   2    1 3生成算法2：S.Even]]></description><category></category></item><item><title><![CDATA[alpc需要清醒]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5292289</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5292289</guid><author>AllenLSY</author><pubDate>Fri, 05 Feb 2010 18:48:00 +0800</pubDate><description><![CDATA[首先对zoe在哈尔滨取得的好成绩表示祝贺,对三名队员这一年来付出的努力换来的学校历史上最好成绩表示祝贺! 这一年来我们冲破封网络,封校这一系列其他学校同学所无法感受的困难之后,在学校搞得非常非常的不爽之后,我们确实需要这样一场振奋人心的胜利来鼓舞士气,来忽悠学校吸引一下他们的注意力,来抓住将来我们要忽悠进集训队的后生们. 有个成语叫着乐极生悲,所以我需要提醒你们保持清醒,你们应该知道这是一个怎样的]]></description><category></category></item><item><title><![CDATA[华东理工某ACMer总结]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5292283</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5292283</guid><author>AllenLSY</author><pubDate>Fri, 05 Feb 2010 18:44:00 +0800</pubDate><description><![CDATA[做算法和作技术哪个难? 都很难, 没有可比性. 但是算法做得好的可以转行做技术, 技术做得好的想转行做算法却很困难.我是08年下半年将近期末的时候加入华理ACM队的. 我高中的时候没有编程经验, 数学也不好, 高考数学刚及格. 因为第二工业大学的网络工程专业的分数是最低的, 所以就比较巧合地步入了计算机行业. 大一有一门C++课程, 当时我在第一次上机的时候就深深的被C++迷住了. C++是一门极]]></description><category></category></item><item><title><![CDATA[我是怎样把儿子王颖培养成为斯坦福博士的]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5287905</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5287905</guid><author>AllenLSY</author><pubDate>Thu, 04 Feb 2010 12:48:00 +0800</pubDate><description><![CDATA[2005年9月19日，中山大学本科毕业生、20岁的王颖赴斯坦福大学攻读计算机博士，并得到 了一年不少于4.14万美金的全额奖学金，世界排名前列的大学愿意“倒贴钱”让他读书，作 为孩子的母亲，我深知其中的奥妙。 从两岁开始，我们几乎每天晚上都放故事磁带给王颖听，那些大象、老虎、布谷鸟在故事里 面变得的活灵活现，他听得津津有味，这一方面提高了他的听力、理解力，另一方面还让他 学会了倾听，大人也可以腾出]]></description><category></category></item><item><title><![CDATA[各位acmer 学累的时候不妨来看看]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5286466</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5286466</guid><author>AllenLSY</author><pubDate>Wed, 03 Feb 2010 21:19:00 +0800</pubDate><description><![CDATA[2 学习资料说明      入门其实有两种方法：1 自己看竞赛书，看别人的程序等等。2 上题库（如：pku和zju）做题。第一种可以较为系统的学到东西，但是时间久了就会无聊，而且长久实践不足，编程能力永远得不到真正的提高。第二种虽然看着自己AC很兴奋，看着自己的帐号排名提高很开心，但是学习不系统，对较深的知识学习不足，总停留在做简单题的份上。      最好的方法就是两种方法相结合。作为入门者还是]]></description><category></category></item><item><title><![CDATA[排列组合 母函数 笔记]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5164382</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5164382</guid><author>AllenLSY</author><pubDate>Sat, 09 Jan 2010 13:46:00 +0800</pubDate><description><![CDATA[1．          圆排列圆排列个数 =P(n, r)/r= n!/( r*(n-r)! )例：8人围着餐桌吃饭，多少种就座方式？Ans: P(8, 8)/8=7!2．          重排列a.       无限重排列：n个不同元素中取r个按次序排列，每个元素可取无限次，总数为nr。b.      有限重排列：r个不同色彩球放入n个标号的盒子，第i种彩球有ri个，总]]></description><category></category></item><item><title><![CDATA[置换群 Polya定理 基础 笔记]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5141947</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5141947</guid><author>AllenLSY</author><pubDate>Wed, 06 Jan 2010 12:59:00 +0800</pubDate><description><![CDATA[1.     等价关系表示二元集合的方法：1．(a,b)CR：a, b 之间有R关系2．关系矩阵：用矩阵Z，Zi,j表示Xi和Yj是否有关系，有则为1，无则为0等价关系：满足以下三个性质自反性：(a,a)CR对称性：(a,b)CR => (b,a)CR传递性：(a,b)CR，(b,c)CR =>(a,c)CR                等价类：将等价的元素归入一]]></description><category></category></item><item><title><![CDATA[C++/CLI复习总结(1)：语言]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5112666</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5112666</guid><author>AllenLSY</author><pubDate>Thu, 31 Dec 2009 14:19:00 +0800</pubDate><description><![CDATA[只说重点难点，以及在ISO-C++上的变化 1. 运算符重载：要加static了 2. 构造函数间的调用：调用同class中的其他构造函数，用代码gcnew (this) C()的形式调用父类的构造函数，如C2(): C1(1)调用了C1(int a)这个构造函数 3. %取代&作为取引用，当然还有^取句柄 4. 覆写virtual void S]]></description><category></category></item><item><title><![CDATA[[ 二分图匹配 ] 匈牙利算法 和 KM算法 总结]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/5004360</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/5004360</guid><author>AllenLSY</author><pubDate>Mon, 14 Dec 2009 15:04:00 +0800</pubDate><description><![CDATA[前言：高中时候老师讲这个就听得迷迷糊糊，有一晚花了通宵看KM的Pascal代码，大概知道过程了，后来老师说不是重点，所以忘的差不多了。都知道二分图匹配是个难点，我这周花了些时间研究了一下这两个算法，总结一下1. 基本概念 M代表匹配集合 未盖点：不与任何一条属于M的边相连的点交错轨：属于M的边与不属于M的边交替出现的轨（链）可增广轨：两端点是未盖点的交错轨 ]]></description><category></category></item><item><title><![CDATA[LCS O(n logn)解法]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/4954742</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/4954742</guid><author>AllenLSY</author><pubDate>Mon, 07 Dec 2009 10:05:00 +0800</pubDate><description><![CDATA[http://blog.163.com/jiang_xinan/blog/static/1192952120089261717156/ LCS(Longest Common Subsequences)最长公共子序列用一般的动态规划时间复杂度O(N^2), 但经过优化可以达到O(NlogN),下面是转载集训队某人的最长递增子序列解题报告。 　　先回顾经典的O(n^2)的动态规划算法，]]></description><category></category></item><item><title><![CDATA[Dijkstra 二分堆+邻接链表]]></title><link>https://blog.youkuaiyun.com/AllenLSY/article/details/4873760</link><guid>https://blog.youkuaiyun.com/AllenLSY/article/details/4873760</guid><author>AllenLSY</author><pubDate>Wed, 25 Nov 2009 21:09:00 +0800</pubDate><description><![CDATA[注：此文属于个人笔记，转载请注明出处。欢迎给各位提出意见。 注意的地方：priority_queue的用法，使用greater /* Dijkstra: BHeap + Linked List */#include #include #include #define PB push_back#define F(i,a,b) for (int i=a;i<=b]]></description><category></category></item></channel></rss>