摘要: 调频96.8有一种游戏:游戏中,出题者写下一件东西,其他人需要猜出这件东西是什么。当然,如果游戏规则仅此而已的话,几乎是无法猜出来的,因为问题的规模太大了。为了降低游戏的难度,答题者可以向出题者问问题,而出题者必须准确回答是或者否,答题者依据回答提出下一个问题,如果能够在指定次数内确定谜底,即为胜出 阅读全文
posted @ 2017-10-23 20:13 wade&luffy 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 位图算法,内存中连续的二进制位bit,用于对大量整型数据做去重和查询。 举个例子,给定一块长度是10bit的内存空间,依次插入4,3,2,1,怎么存储? 1. 给定长度是10的bitmap,每一个bit位分别对应着从0到9的10个整型数。此时bitmap的所有位都是0。 2. 把整型数4存入bitm 阅读全文
posted @ 2017-10-23 19:41 wade&luffy 阅读(1720) 评论(0) 推荐(1) 编辑
摘要: 一种用于寻找有效路径的算法。 一个7×5大小的迷宫,绿色的格子是起点,红色格子是终点,中间三个蓝色格子是墙。这里对于A*寻路的描述做了很大的简化。实际场景中可能会遇到斜向移动、特殊地形等等因素,有些时候需要对OpenList中的方格进行重新标记。 游戏的规则是从起点开始,每一步只能上下左右移动一格, 阅读全文
posted @ 2017-10-23 18:58 wade&luffy 阅读(481) 评论(0) 推荐(0) 编辑
摘要: Base64是一种编码算法,因为这种算法只支持64个[可打印字符],所以叫做Base64。 为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。 为什么只支持64个字符?ASCII码的范围是0-127,其中0-31 阅读全文
posted @ 2017-10-23 18:29 wade&luffy 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 信息摘要技术把明文内容按某种规则生成一段哈西值,即使明文消息只改动了一点点,生成的结果也会完全不同。 MD5(Message-digest algorithm 5)就是信息摘要的一种实现,它可以从任意长度的明文字符串生成128位的哈希值。 摘要哈希生成的正确姿势是什么样呢?分三步: 1.收集相关业务 阅读全文
posted @ 2017-10-23 18:14 wade&luffy 阅读(2908) 评论(0) 推荐(0) 编辑
摘要: 一种生成信息摘要的算法。主要用于数据一致性和完整性的校验 SHA算法分很多版本,最大的分类是SHA-1和SHA-2。SHA-2包括很多子版本,SHA-224,SHA-256,SHA-384,SHA-512。 SHA-1(可破解 http://www.cnbeta.com/articles/tech/ 阅读全文
posted @ 2017-10-23 17:42 wade&luffy 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 假设有一个发送方在向接收方发送消息。如果没有任何加密算法,接收方发送的是一个明文消息:“我是小灰”。 如果消息被中间人截获到,即使中间人无法篡改消息,也可以窥探到消息的内容,从而暴露了通信双方的私密。 具体工作的步骤如下: 1.发送方利用密钥123456,加密明文“我是小灰”,加密结果为TNYRvx 阅读全文
posted @ 2017-10-23 17:30 wade&luffy 阅读(961) 评论(0) 推荐(0) 编辑
摘要: ACID 理论 关系型数据库具有解决复杂事务场景的能力,关系型数据库的事务满足 ACID 的特性。 Atomicity:原子性(要么都做,要么都不做) Consistency:一致性(数据库只有一个状态,不存在未确定状态) Isolation:隔离性(事务之间互不干扰) Durability: 永久 阅读全文
posted @ 2017-10-23 15:31 wade&luffy 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名 阅读全文
posted @ 2017-10-23 13:39 wade&luffy 阅读(1179) 评论(0) 推荐(0) 编辑
摘要: 连通性问题 比如随意给你两个点,让你判断它们是否连通?或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。 以下面这组数据输入数据来说明 4 2 1 3 4 3 第一行告诉你,一共有4个点,2条路。下面两行告诉你,1、3之间有条路,4、3之间有条路。那么整幅图就被分成了1-3-4和2两 阅读全文
posted @ 2017-10-23 13:23 wade&luffy 阅读(627) 评论(0) 推荐(1) 编辑
摘要: HyperLogLog HyperLogLog 可以接受多个元素作为输入,并给出输入元素的基数估算值: • 基数:集合中不同元素的数量。比如 {'apple', 'banana', 'cherry', 'banana', 'apple'} 的基数就是 3 。 • 估算值:算法给出的基数并不是精确的, 阅读全文
posted @ 2017-10-23 13:13 wade&luffy 阅读(597) 评论(0) 推荐(0) 编辑