1

最近坐我隔壁的小王同志,心情真是糟透了。不但工作不顺心,被老板狠狠的批了一顿,连女朋友也跟别人跑了(Y 的让你天天在我面前秀)。

真是不可谓不惨,我都快要同情他了。

看着他萎靡又迷离的眼神,我实在不忍心,就劝他请假几天出去散散心。

临走前,我交代他,有什么紧急的事,就联系哥。

还有,不要忘了我们之间的暗号哦 ~

2

于是,小王就拖着疲惫的身躯,背着双肩背包和最新款mac,穿着他最心爱的格子衫出发了。

去哪呢,这是一个问题。平时宅在家里习惯了,想来一场说走就走的旅行还是真不容易呀。

就在小王犯难的时候。

耳机里应时地传来一句歌声:”坐上了火车去拉萨,去看那神奇的布达拉。“

额,那就去布达拉宫吧。参观一下号称世界上海拔最高的建筑,同时感受一下西藏妹子人民的热情。

3

带着对未来的憧憬,踏上旅途的小王,坐在高铁上,听着音乐,很快就进入了梦乡。

梦中他做了一个奇怪的梦,梦到自己不知怎地来到了陌生的世界。

而自己却不知身在何处,身边只有阵阵的风沙跟随。

心道,我这是到哪了,不是应该到布达拉宫了吗。

努力的向远处张望,却怎么也看不真切。

终于睁大眼睛看清了。

却发现,迎面走过来一位乘务员小姐姐,轻启红唇,对小王说,先生到站了,还请赶快准备行李下车了。

4

哦,原来是个梦啊。

心道,这该死的福报,给我搞的都快分不清自己是庄周还是蝴蝶了。

赶紧下了车,跟着大部队,走向布达拉宫的方向。

还没进到布达拉宫里边,小王就感受到了这伟大建筑的雄伟壮观。真是不虚此行啊。

不自觉的就加快了脚步,想一探究竟。

走着走着,小王却发现周围的人一个一个都不见了踪影,只留下自己形单影只。

忽然,眼前一白,再睁开眼,发现自己置身于一片山林之中。

就在小王心觉奇怪时,隐约听到远处传来一阵阵的嬉笑声和水流声。

好奇心驱使下,小王循着声音走去。隔着一片草丛,发现了让他血脉喷张的画面。

一群 x 身 x x 的仙女正在水中戏耍,一个个毫无顾忌的互相嬉闹。姣好的身材一览无余。

就在小王看的入神之际,突然听到一声大喊:谁?!

下一刻就发现他面前站着一个身穿广袖流仙裙的仙女。还未来得及反应,就感觉脑袋一沉,昏睡过去了。。。

5

也不知道过了多长时间,小王感觉好像一个世纪都过去了。睁开眼发现自己正躺在一个类似古代闺房的床上。却发现身体无论如何也是动不了一分。

透过屏风,像是听到有几个女孩子在谈话。

“怎么从来没有见过这样的人,他为什么和我们长的不太一样。“

“他到底是干什么的,为什么可以穿越结界,来到我们女儿国。一般人是做不到的。”

正在讨论间,却发现声音截然而止。然后听到整齐划一的声音,“恭迎女王陛下”。

然后,发现进来了一个仙女,拥有着绝世容颜,毫无瑕疵的脸蛋,美的不可方物。

原来这就是女儿国的国王。

女王毕竟是见过世面的人,知道小王就是传说中的男人。

然后把小王的禁锢给解除了。小王瞬间感觉身上沉重的力量消失了,浑身轻松。

6

(场景切换)

本来小王只请假了一周,但是眼看第二周就要过完了,也没再收到过小王的消息。

我也纳闷,这家伙怎么回事,旅游放松一下就好了,竟然把时间都忘了。

这还有一大堆工作,我帮他兜着呢,再不回来我就报警了啊(无奈)。

。。。

某天深夜,当我正在发奋写文章时,手机突然收到一条消息。

卧槽,这是小王给我发暗号了?

当时,我们约定只有紧急情况下才发暗号,莫非是小王遇到了什么麻烦?

于是,我赶紧对暗号,希望他不要出什么事才好。

随后,小王给我简单叙述了他这一周多的经历。如果不是星哥我经历丰富,差点都被他搞懵逼了。

下面是小王的自述:《《《

那天,我决定去布达拉宫看宫殿,不料,却走到了女儿国的宫殿。

这不要紧,关键是女儿国现在遭遇了一些事情,环境恶化,已经影响到她们的正常生活了。

为了她们的子孙后代,急需一位心地善良,心灵纯洁之人帮助她们化解危机。

其实要做的事情也很简单,就是让我和女儿国的仙女们一起双修就好了。

在女王陛下的一再恳求下,本着助人为乐的精神,我只能留下来帮她们了。

为了更快更效率的完成任务,我记录了这段时间和哪些仙女进行过双修,并把她们进行了编号。

这个好说,因为数据量目前也不大,我决定用 Redis 的 Set 集合来装填数据就可以。

set = {id1,id2,id3}

随着需要我帮助的人越来越多,我发现仙女们各自的体质也稍有不同。因此,每个人和我双修的次数也不固定。

于是,我只能修改记录方式。

用 zset 来分别记录每个人和我双修的次数,

zset = {id1: count1, id2: count2, id3: count3}

后来,仙女数量实在是太多了,以上记录方式已经行不通了,内存会爆掉的。索性我就不算了,何必给自己添麻烦呢。

但是,突然,有天我正在和一个仙女双修呢。女王陛下来到我旁边,看着我辛苦的样子(也或许是我帅气的侧颜)。发现我满脸汗水,于是用那还残留着女王香气的手帕温柔地帮我擦汗。

我能清晰的感觉到女王在我耳边吐气如兰,一双美眸扑闪扑闪地看着我。那细腻光滑、吹弹可破的脸蛋儿,就像刚剥壳的鸡蛋一样。

就在我内心波澜起伏时,女王问我,哥哥,你能估算一下现在大概有多少个仙女双修过了吗。

这下我慌了,这可怎么办呢,我可没有计算这个东东啊。

星哥,江湖救急啊。

》》》

看到这里,我真是气不打一处来,这特么合着我给你顶包,你在外边逍遥快活呢。这真不是人干的事儿啊。

我:你 Y 的,瘦弱的小身板,能经得起折腾吗?

小王: 哎呀,星哥你就不用担心我这个了。我在这天天吃好喝好的,女王还每天给我喝大补汤,我很 OK 的。你赶紧给我解决方案吧。

听到这,我气的打字的双手都在颤抖。单身狗没有人权啊,真是人比人气死人,和小王比,生活真是一个天上一个地下。

生气归生气,但谁让我是好人呢(滴,好人卡),就好事做到底吧。

7

:那个,你可以用 HyperLogLog 啊,它的键只需要花费 12K 的内存,就可以计算 2^64 个不同元素的基数。这样就大大节省你的内存了。

小王:HyperLogLog 是什么鬼,没听说过啊?还有,你说的基数是什么意思呢?

: HyperLogLog 是用来做基数统计的一种算法。当输入元素的数量越来越大时,它所占用的空间却是固定的。这是和集合的不同点,集合是元素越多,占用空间越大。

基数很好理解,就比如说有一个数据集存储了每个仙女每次双修的编号 {1, 3, 5, 8, 3, 5, 9},那么去除重复元素后的基数集就是 {1, 3, 5, 8, 9},基数就是它的个数,这里就是 5 ,代表有 5 个仙女和你一起双修过了。

因为你关心的是有多少个仙女和你双修过,不关心具体都是谁。

小王:这个听起来好像很牛批的样子,那我怎么使用呢?

:你可以使用 pfadd 命令添加元素,命令格式:pfadd key element [element ...],例如,我添加三个仙女,pfadd fairy_practice id1 id2 id3

当计算基数时,就可以用 pfcount 命令,格式:pfcount key [key ...]。如果 key 为一个,计算的是这个 HyperLogLog 的近似基数。如果 key 为多个,就可以计算它们的近似基数和。

注意,这里的基数计算是一个估算值,并不是一个准确的值。

HyperLogLog 只会根据输入的元素计算基数,而不会存储元素本身。这是和集合的另外一个不同点,集合会存储每个输入的元素。

所以,你用 pfcount fairy_practice 就满足要求了。因为女王不就让你计算一个大概值吗,而且也没有让你说出仙女的具体名字啊。

小王:卧槽,这个真是太神奇了。星哥你可是帮了我大忙了。等我忙完这阵子,回去就给你带女儿国的特产哈。

:我去你大 x 的。女儿国能有什么特产,不都是仙女么,你能给我带来几个仙女吗?

小王:。。。(好像不能)

听到这,我真是要被气死了,真是岂有此理,太敷衍我了。

气的我一下子就把电脑给合上了。

天马行空无厘头,vx搜「星哥聊编程」

故事:坐在我隔壁的小王问我什么是HyperLogLog相关推荐

  1. 被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL

    上次帮小王入了 Spring Boot 的门后,他觉得我这个人和蔼可亲.平易近人,于是隔天小王又微信我说:"二哥,快教教我,怎么在 Spring Boot 项目中使用 JDBC 连接 MyS ...

  2. 【科研故事】小王的故事(二)

    小王没消停两天,又主动来找我吃饭. 我打趣道:"怎么了?又和你导闹矛盾了?"小王笑笑没说话,叫我去了食堂. 我们一边吃,一边东拉西扯地聊了聊工作中的见闻.快吃完的时候,说起交叉学科 ...

  3. OSChina 初九乱弹 ——我住隔壁我姓王,你有困难我帮忙。

    2019独角兽企业重金招聘Python工程师标准>>> [今日歌曲] @挖红薯  : 分享莫文蔚的单曲<We Don't Talk Anymore (原唱:Charlie Pu ...

  4. 魏文王问扁鹊的注释_魏文王问扁鹊的典故故事

    魏文王问扁鹊的典故故事 扁鹊是中国战国时期著名的医学家,是被公认的古时五大医学家之首.扁鹊在年轻的时候做一户贵族家客店的管事,所以接触到了很多人,其中有个叫长桑君的人与之投缘,并传授给扁鹊一门医学技艺 ...

  5. 高中时候的basis 小王

    因为待遇还有离家的距离,我选择留在了母校,新世纪中学.每个月有奖学金那种.羡慕吧.而且学费和杂费,住宿费全免了,只剩下生活费了,老爹, no thanks. 作为班里的外地人,毫无疑问,我还是要住宿的 ...

  6. 初中的basis 小王

    小学考了第六名,进入初中,才开始进入紧张的学习生活,那个时候要学习语文,数学,英语,历史,物理,化学,地理,生物,政治 9门课程,你看难不难,主要是初中不分科,你要一次性学9门,你知道吧,考高中,需要 ...

  7. 小王梦游记五---最美丽的湖

    小王梦游记五-最美丽的湖 序章 入选 王爷是一个富可敌国的大老板,那天在街上偶遇,他心情好,让我坐上他的船玩玩,然后我就上去,这条船很奇怪,明明看上去只是一叶扁舟,但是试图划船时却感觉使不上力,只能让 ...

  8. 【管理心得之八】通过现象看本质,小王和小张谁更胜任?

    一.场景再现 ====================== 会议主持者  :接下来,我们讨论一下产品经理一职人选问题.               现有两个候选人(小王.小张),简历.工作表现在你们手 ...

  9. 魏文王问扁鹊的注释_扁鹊见魏文王是怎么回事 魏文王问扁鹊的典故故事

    扁鹊被后人尊称为古代五大名医之首,是春秋战国时期家喻户晓的神医.扁鹊在机缘巧合之下,碰到了当时的名医长桑君,并拜其为师,尽得长桑君的真传.现在还流传着许多关于扁鹊的小故事,其中较为有名的便是关于扁鹊医 ...

最新文章

  1. tableexport 文件格式和扩展名不匹配_好多公司都要用的一些知识点Office办公软件、文件加密、文件扩展名!...
  2. 共享经济时代,中小企业该如何逆风翻盘?
  3. Swift - 程序进入后台,以及应用终止时调用的方法
  4. openlayers5之完整文档v5.1.3.zip下载
  5. 【知识必备】浅淡MVP在Android项目中的实战演习,让代码结构更简单~
  6. “error LNK1169: 找到一个或多个多重定义的符号”的解决方法
  7. NYOJ 267 郁闷的C小加(二)
  8. mysql中in的用法
  9. expect返回值给shell_使用expect实现shell自动交互
  10. 如何卸载linux中的docker,linux centos7 安装、卸载docker
  11. 解决Springboot get请求是参数过长的情况
  12. u8转完看不到菜单_填制凭证界面上的菜单看不见
  13. kmeans算法中的sse_k-means聚类算法原理与参数调优详解
  14. 哲理故事300篇(中)
  15. 基于javaweb的宠物管理系统
  16. iozone使用简介
  17. 扣费克星-您的话费守护神 v1.42 新增联网程序管理扩展插件发布
  18. 爬虫千万条,守法第一条,爬虫不规范,亲人两行泪
  19. 快速学习一门技术的逻辑
  20. Java求100000以内素数_100000以内的质数表

热门文章

  1. MySQL期末试题的答案
  2. 【问卷调查发布系统的设计与实现】
  3. Kyligence 春季论坛成功举办,助力企业构建数字化管理新体系
  4. VC学习资料收集(12):VC小知识总结
  5. Spring Boot 起步依赖
  6. 关于《职场路上》专栏介绍
  7. 为什么苹果蓝牙耳机连上还是公放_高版本AirPods无线蓝牙耳机二代、三代开团啦!...
  8. 数据结构—1.时间复杂度
  9. git revert 之后 找回原来的代码
  10. 数字图像处理Python语言实现-灰度图像阈值化-OSTU方法