摘要:相比二叉树的遍历,二叉树的迭代器实现不那么容易,我们不能直接将递归遍历转换为迭代器。究其原因,这是因为二叉树递归遍历过程是编译器在调用栈上自动进行的,程序员对这个过程缺乏足够的控制。既然如此,那么我们如果可以自己来控制整个调用栈的进栈和出栈不是就达到控制的目的了吗?
阅读全文
摘要:羊车问题是一道既有趣也充满争议的经典概率问题,许多人都认为正确答案不符合直觉而无法接受,本文介绍了一种基于概率树的直观分析方法,让答案显而易见。另外,概率树还可以用于贝叶斯推断的分析,对于记不住贝叶斯公式的人来说,用概率树分析贝叶斯推断问题非常直观和简洁。
阅读全文
摘要:TF-IDF模型是搜索引擎中广泛使用的信息检索模型,但对于TF-IDF模型一直存在各种疑问。本文为信息检索问题一种基于条件概率的盒子小球模型,其核心思想是把“查询串q和文档d的匹配度问题”转化为“查询串q来自于文档d的条件概率问题”。它从概率的视角为信息检索问题定义了比TF-IDF模型所表达的匹配度更为清晰的目标。从概率模型中,我们看到查询串q来自于文档d的条件概率主要包含以下几个因素:1) 文档的先验概率P(d[i]),这与PageRank对应;2) 词w被作为搜索关键词的先验概率P(w),这可以通过统计方法获得;3) 关键词w代表文档d主题,或以词w搜索文档d的概率,P(w | d),除了统计方法,这可以通过tf-idf来计算。
阅读全文
摘要:本文介绍了一种基于多版本并发控制(MVCC)思想的Conditional Update解决分布式系统并发控制问题的方法。和基于悲观锁的方法相比,该方法避免了大粒度和长时间的锁定,能更好地适应对读的响应速度和并发性要求高的场景。
阅读全文
摘要:问题:为2亿用户规模的网站设计一种算法,在每次用户登录时显示其当前积分排名。本文介绍了一种树形分区设计,它具有几种优点:1. 分区结构稳定,不受积分分布影响;2. 每次查询或更新的复杂度为积分最大值的log(n)级别,且与用户规模无关,可以应对海量规模;3. 不依赖于SQL,容易改造为NoSQL等其他存储方式。
阅读全文
摘要:今天在dudu的《博客园FAQ》上看到了博客积分算法规则。因为同样是搞互联网的,平时工作也涉及到用户积分算法的设计,所以特把此问题拿出来分析探讨。初衷只是纯学术的研究探讨,并不构成对博客园积分机制的意见建议。
阅读全文