算法
链巨人
这个作者很懒,什么都没留下…
展开
-
零知识证明实践教程,第一部分
本教程从零开始讲解零知识证明,总共分为三个部分,这里是第一部分。本教程结合具体的例子和python代码实现,让大家更加具体理解它。这部分教程不会涉及很“高深”的计算机技术。1 从一个故事开始A向B证明一个命题,比如A有两个不同颜色的足球,经过他们俩之间的一系列信息交流之后,B能够肯定A的命题正确的概率是99.9999999%。B无法在这一系列交流中得到任何新的信息。上面的故事便是一...原创 2020-04-09 23:27:38 · 1931 阅读 · 0 评论 -
什么是P问题、NP问题和NPC问题
这或许是众多OIer最大的误区之一。你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是N...转载 2020-04-09 20:13:28 · 339 阅读 · 0 评论 -
Fiat–Shamir heuristic 启发式的应用 理解 代码实现
先讲问题,再引入Fiat–Shamir heuristic。问题平时我们使用密码注册和登录一个网站的过程可能是这样的。我们使用用户名和密码注册一个网站,网站后台收到用户名和密码之后,使用一个hash算法计算密码的哈希值,然后将用户名和哈希值存入数据库。下次用户登录的时候,后台以同样的方式计算出哈希值,对比数据库中的是否一样,如果两者的用户名和哈希值都一样,登录成功。好一点的后台可能在计算哈希值...原创 2019-12-07 20:55:57 · 1249 阅读 · 0 评论 -
Stream Processing:滑动窗口的聚集(aggregation)操作的优化算法讲解
在实时计算的流处理中,因为数据是以流的形式不断流入实时处理,把流数据保留到内存中以待以后再处理不是一个明智的选择,一般情况下是采用窗口window来缓存最近的一部分流数据,针对这部分数据处理得到结果。有多中window,包括tumble window,session window,sliding window。而sliding window算是最常用的,它的属性有window length和sli...原创 2019-01-18 22:54:05 · 2680 阅读 · 0 评论 -
实现一个队列,使得push_rear(), pop_front() 和get_min()的时间复杂度为O(1)
待续。。。。。。https://stackoverflow.com/questions/4802038/implement-a-queue-in-which-push-rear-pop-front-and-get-min-are-all-consta原创 2018-07-23 22:34:23 · 3188 阅读 · 1 评论 -
排列和组合简单的递归思路以及C++实现
本文将讲解如何通过递归的方法实现全排列和组合,会详细讲解递归的思路,最后还会给出c++实现的源码。先前学习数据结构和算法的时候一直没有弄明白它们的递归思路,今日遇到,细一思考,发现并没有之前那么难,于是把码下来,同时记下思路。排列先讲排列:比如A B C D 四个字母的全排列就是下面24种ABCD, ABDC, ACDB, ACBD, ADBC, ADCB, BCDA, BCAD, BDAC, BD原创 2017-08-21 23:38:10 · 1214 阅读 · 0 评论 -
关于consistent hash的思考及改进方案
这里默认读者已经知道了一致性hash算法的原理。1、 为什么在某台机器宕机之后consistent hash算法能够避免所有或者大部分key重新hash?首先需要弄清的是,如果某一台机器宕机之后,在没有冗余备份的情况下,必定有一部分数据会丢失的。所丢失的这部分数据正是缓存在这台机器上面的。其他数据不会受到影响。其他的数据只需要按照原来的方式hash,顺势正便可寻找到对应的机器。如果使用的是普通的ha原创 2017-03-04 00:17:11 · 657 阅读 · 0 评论 -
GeoHash核心原理解析
http://www.cnblogs.com/LBSer/p/3310455.html引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。 饭饱之后机机开始反思了,地图后台如何根据自己所在位置查询来查询附近餐馆的呢?苦思冥想了半天,机机想出了个方法:计算所在位置转载 2017-02-16 23:06:46 · 413 阅读 · 0 评论 -
图解GeoHash算法--MongoDB 地理位置索引的实现原理
转载自:http://blog.nosqlfan.com/html/1811.html地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一。我们知道,通常的数据库索引结构是B+ Tree,如何将地理位置转化为可建立B+Tree的形式,下文将为你描述。首先假设我们将需要索引的整个地图分成16×16的方格,如下图(左下角为坐标0,0转载 2017-02-16 22:32:54 · 4080 阅读 · 0 评论