程序员小灰

其他

IOS 大裁员,一半来自 BAT 大厂开发。

、安卓开发,确实工资比一般的后端还要高。13、14年那个时候,移动浪潮大爆发,几乎所有的互联网公司都在招聘移动开发工程师。而市场上的IOS、安卓开发根本不够用,于是工资水涨船高。2不只是
2022年10月11日
其他

20个开源的工业设计软件

库,内置专用于处理不确定性数据的模型和算法。该库的主要目标是提供处理工业应用研究中的不确定性所需的所有功能。官方表示,该软件的目标用户是所有希望在迄今为止的确定性研究中引入概率维度的工程师。
2022年8月18日
其他

Python已可在浏览器端运行,或将成为前后端通吃语言?

运行原理的更多信息查看:https://engineering.anaconda.com/2022/04/welcome-pyscript.html目前
2022年5月9日
其他

天天当键盘侠,你知道从按键到响应的底层原理吗?

投稿人:Rand公众号:Rand_csKEYBOARD键盘,咱们做计算机这一行的自然不必多说,天天与它打交道。但熟归熟,清楚键盘背后的原理吗?键盘上都标有各键的名称,表明了各键所代表的意义,但是计算机是如何知道的?组合键是怎样实现的?按下一个代表字符的键,怎么变成平常使用的ASCII码的?看完本文,相信你就能了解键盘的本质,知晓这些问题答案。01相关介绍键盘编码器键盘编码器(i8048),是键盘里的芯片,主要用来监控是否有键按下,弹起,然后向键盘控制器报告此键的相关信息。键盘编码器就像是键盘的嘴,让键盘能够说话,表达目前按键状态。Num
2021年4月19日
其他

漫画:什么是红黑树?

很简单,如果局面4中的父结点B是右孩子,则成为了局面5的镜像,原本的右旋操作改为左旋;如果局面5中的父结点B是右孩子,则成为了局面4的镜像,原本的左旋操作改为右旋。
2020年5月11日
其他

献给新一代的演讲:“后浪” 程序员

很多程序员,从小你们就在自由彰显自己的品味。
2020年5月10日
其他

漫画:什么是 “哈夫曼树” ?

在上图当中,右侧是叶子结点的森林,左侧是一个辅助队列,按照权值从小到大存储了所有叶子结点。至于辅助队列的作用,我们后续将会看到。
2020年4月8日
其他

漫画:三种 “奇葩” 的排序算法

我们可以用二维数组来模拟算盘,有珠子的位置设为1,没有珠子的位置设为0。那么,一个无序的整型数组就可以转化成下面的二维数组:
2019年12月2日
其他

“12306”的架构到底有多牛逼?

模块实现,其中加权轮询的配置是可以给相关的服务加上一个权重值,配置的时候可能根据服务器的性能、负载能力设置相应的负载。下面是一个加权轮询负载的配置,我将在本地的监听
2019年11月6日
其他

漫画:什么是基数排序?

比如在第一轮排序后,元素uue在元素yui之前。那么第二轮排序时,两者的第二位字符虽然同样是u,但先后顺序万万不能变,否则第一轮排序就白做了。
2019年11月4日
其他

代码写成这样,老夫无可奈何!

Date());看到这样的代码,我也是醉醉的了。我就见过同事写出这样的代码,是赶时间呢,还是真的不会设计模式,一个构造函数参数能写这么多,且不说魔法值,这么长,看一眼都觉得头大。9、消失的异常try
2019年10月20日
其他

漫画:用户的嘴,骗人的鬼!

在互联网时代,用户是一切的中心,真正能够迎合用户需求、解决用户问题的产品,想不成功都难。那么,如何能够了解用户的需求呢?小灰先给大家讲一个故事:从前,王大爷在一所大学旁边开了一家小旅馆。小旅馆运营了几个月,生意特别火爆,而且大部分顾客都是那所大学里的男生和女生。王大爷感到很好奇,有一次就询问两个顾客:王大爷一听,恍然大悟:于是王大爷把旅馆房间的床都撤掉了,换上高档的书桌和书柜,还为学生准备了许多好书:结果,两个月以后,王大爷的旅馆关门了......王大爷听到了用户亲口所说的需求,也积极地去满足用户需求,可为什么会有失败的结果呢?因为王大爷的思维模式还是传统的商业模式,试图通过市场调研来获得用户需求,但这样得到的信息,往往并不是用户的“真需求”。如果换成一个具有互联网思维的人会怎么做呢?他会去分析用户的行为,而不是听用户怎么说。至于如何分析用户行为,方法简直不要太多,看看旅馆房间里的垃圾桶就足够了......
2019年10月19日
自由知乎 自由微博
其他

漫画:什么是归并排序?

因此,当每个小组内部比较出先后顺序以后,小组之间会展开进一步的比较和排序,合并成一个大组;大组之间继续比较和排序,再合并成更大的组......最终,所有元素合并成了一个有序的集合。
2019年10月8日
其他

漫画:什么是中台?

首先,这里所说的“前台”和“前端”并不是一回事。所谓前台即包括各种和用户直接交互的界面,比如web页面,手机app;也包括服务端各种实时响应用户请求的业务逻辑,比如商品查询、订单系统等等。
2019年9月17日
其他

漫画:什么是希尔排序?

看看上面这个数组,如果我们照搬之前的分组思路,无论是以4为增量,还是以2为增量,每组内部的元素都没有任何交换。一直到我们把增量缩减为1,数组才会按照直接插入排序的方式进行调整。
2019年9月9日
其他

漫画:什么是囚徒困境?

故事发生在小灰小时候......囚徒困境讲的是一件怎样的事情呢?话说某一天,警察抓到了嫌疑犯小A和小B,虽然明知道他们肯定是罪犯,却没有决定性的证据。于是警察想出了一个馊主意,把小A和小B分别关在两个审讯室单独审讯,并告诉他们审讯的规则:1.如果两个人都抵赖,两人各判1年:2.如果一个人抵赖一个人招供,抵赖的人判10年,招供的人直接释放:3.如果两个人都招供,两人各判5年。综合起来,两名囚徒决策和结果之间的关系如图所示:从嫌疑犯小A的视角,我们来具体分析一下:面对审讯,小A都有什么样的决策选择呢?显然只有两种选择,一种是招供,一种是抵赖。无论小A作何选择,小B也同样面临招供和抵赖的选择,这样排列组合下来,总共有四种不同的局面:仅仅从小A的角度来看,这四种局面各自会使小A坐牢多少年呢?答案很明显,分别是5年、0年、10年、1年,如下图所示:如果你是小A,当你无法和小B沟通的情况下,会选择坐牢5年或0年(对应着小A招供),还是会选择坐牢10年或1年(对应着小A抵赖)呢?显然坐牢5年或0年,也就是招供的决策,具有压倒性优势!反观小B,也一定会做出同样的选择,也就是招供。换句话说,只要两名囚徒都是自私且理性的,那么双方都会同时选择招供,结果就是双方各判5年。上面所描述的场景就是博弈论当中的经典案例:囚徒困境。在这个场景中,双方都无法单方面改变自己的博弈策略(单方面改变只会让自己蒙受损失),使得局面进入了一个微妙而又稳定的平衡,这个平衡被称为纳什均衡。—————END—————喜欢本文的朋友,欢迎关注公众号
2019年8月19日
其他

漫画:什么是插入排序?

恐怕正常人打牌的时候都不会那么做。最自然也最简单的方式,是在已经有序的四张牌中找到红桃8应该插入的位置,也就是7和9之间,把红桃8插入进去:
2019年8月12日
其他

字节跳动,正在动摇互联网的根基!

社交推荐,更多权限在于普通的用户,作为内容生产者,你要是能抓住普通用户,他们会帮你传播你的信息,你就可以获得更多的流量。
2019年7月27日
其他

漫画:什么是选择排序?

如此一来,同学们一共交换了4次,还只是完成了冒泡排序的第一轮操作。如果继续下去,同学们心里恐怕会想:“这体育老师是不是有毛病啊?”
2019年7月15日
其他

著名的三门问题,是在 “胡扯” 吗?

举个例子,假如游戏的参与者本来是小灰,当小灰选择一扇门,而主持人打开一扇空门之后,不明真相的小红从外面跑了进来。小红并不知道当初小灰选择的是哪一扇门,只知道剩下两扇关闭的门中,有一扇门藏有奖励。
2019年6月24日
其他

漫画:反直觉的 “三门问题”

"//res.wx.qq.com/mmbizwap/en_US/htmledition/style/page/appmsg_new/winwx46b604.css";
2019年6月19日
其他

“我是技术总监,你干嘛总问我技术细节?”

他支支吾吾了很久,基本只能说出个大概,尤其对热迁移、一致性哈希原理之类的问题,完全不懂。随后我又问他,“能详细谈谈你们是如何做限流的吗?”
2019年5月3日
其他

漫画:Dijkstra 算法的优化

//创建前置定点表,存储从起点到每一个顶点的已知最短路径的前置节点
2019年4月23日
其他

漫画:图的 “最短路径” 问题

//初始化最短路径表,到达每个顶点的路径代价默认为无穷大
2019年4月8日
其他

漫画:什么是 “图”?(修订版)

前几天发布的关于“图”的漫画中,十字链表的部分有一些小错误,在此做一下更正。图的概念究竟什么是图呢?大家先来想一想咱们常用的互联网产品。举个栗子,大家一定都用过微信,假设你的微信朋友圈中有若干好友:张三、李四、王五、赵六、七大姑、八大姨。而你七大姑的微信号里,又有若干好友:你、八大姨、Jack、Rose。微信中,许许多多的用户组成了一个多对多的朋友关系网,这个关系网就是数据结构当中的图(Graph)。再举一个栗子,咱们在用百度地图的时候,常常会使用导航功能。比如你在地铁站A附近,你想去的地点在地铁站F附近,那么导航会告诉你一个最佳的地铁线路换乘方案。这许许多多地铁站所组成的交通网络,也可以认为是数据结构当中的图。图,是一种比树更为复杂的数据结构。树的节点之间是一对多的关系,并且存在父与子的层级划分;而图的顶点(注意,这里不叫节点)之间是多对多的关系,并且所有顶点都是平等的,无所谓谁是父谁是子。图的术语下面我们来介绍一下图的基本术语:在图中,最基本的单元是顶点(vertex),相当于树中的节点。顶点之间的关联关系,被称为边(edge)。在有些图中,每一条边并不是完全等同的。比如刚才地铁线路的例子,从A站到B站的距离是3公里,从B站到C站的距离是5公里......这样就引入一个新概念:边的权重(Weight)。涉及到权重的图,被称为带权图(Weighted
2019年3月25日
其他

漫画:深度优先遍历 和 广度优先遍历

Search),广度优先遍历简称BFS(Breadth
2019年3月25日
其他

漫画:什么是加密算法?

加密算法的历史加密算法最早诞生在什么时候?是在计算机出现之后吗?不不不,早在古罗马时期,加密算法就被应用于战争当中。在大规模的战争中,部队之间常常需要信使往来,传递重要的军事情报。可是,一旦信使被敌军抓获,重要的军事情报就完全暴露给了敌方。甚至,狡猾的敌人有可能篡改军事情报,并收买信使把假情报传递给我方部队。这样一来,我方部队就完全落入到了敌方的陷阱之中。这种拦截并篡改信息的手法,在网络安全领域被称为中间人攻击。怎样防止这种情况的发生呢?不让信使被敌人抓获?这个肯定是无法绝对避免的。那么我们不妨换个角度,让敌人即使截获了军事情报,也看不懂里面的内容,这就是对信息的加密。如何进行加密呢?古人想出了一种非常朴素的加密方法,被称为凯撒密码。加密的原理就像下图这样:如图所示,图中第一行的字母代表信息的“明文”,第二行字母代表信息的密文。这个加密算法十分简单,就是选择一个偏移量(这里的偏移量是2),把明文当中的所有字母按照字母表的顺序向后偏移两位,从而生成密文。比如:原文的字母A,对应的密文是字母C。原文的字母D,对应的密文是字母F。原文的单词Java,对应的密文是Lcxc。这样一来,敌方看到信使的情报内容,就彻底蒙逼了。相应的,我军事先约定好了密文通信的偏移量,当友军收到情报以后,把密文的所有字母向前偏移两位,就还原成了明文,这个过程叫做解密。但是,这种加密方法真的百分百保险吗?并不是。在英语的26个字母中,出现频率最高的字母是e。如果敌人截获了情报,发现这段看不懂的密文当中出现频率最高的字母是g,由于e和g相差两个字母,就可以猜测出我军的密文通信很可能选择2作为偏移量。这样一来,我军的密码就被破解了。最不济,敌人可以把每一种偏移量都尝试一遍(26个字母,最多25种偏移),终究可以试出符合正常语法的偏移量。这种方式被称为暴力破解。加密算法的种类在如今的信息安全领域,有各种各样的加密算法凝聚了计算机科学家门的智慧。从宏观上来看,这些加密算法可以归结为三大类:哈希算法、对称加密算法、非对称加密算法。1.哈希算法从严格意义上来说,哈希算法并不属于加密算法,但它在信息安全领域起到了很重要的作用。哈希算法能做什么用呢?其中一个重要的作用就是生成信息摘要,用以验证原信息的完整性和来源的可靠性。让我们来举个栗子:在某个互联网应用上,有用户下单买了东西,于是应用需要通知支付宝,并告诉支付宝商户ID、支付金额等等信息。支付宝怎么知道这个请求是真的来自该应用,并且没有被篡改呢?请求的发送方把所有参数,外加双方约定的Key(例子中Key=abc)拼接起来,并利用哈希算法生成了一段信息摘要:Hash(1234_100_abc)
2019年1月21日
其他

漫画:如何实现大整数相乘?(整合版)

前一段时间,小灰发布了一篇有关大整数相加的漫画,没看过的小伙伴可以先看一看:漫画:如何实现大整数相加?(修订版)那么,大整数相乘又是如何实现的呢?起初,小灰认为只要按照大整数相加的思路稍微做一下变形,就可以轻松实现大整数相乘。但是随着深入的学习,小灰才发现事情并没有那么简单......—————
2018年12月29日
其他

漫画:如何实现大整数相乘?(上) 修订版

起初,小灰认为只要按照大整数相加的思路稍微做一下变形,就可以轻松实现大整数相乘。但是随着深入的学习,小灰才发现事情并没有那么简单......
2018年12月22日
被用户删除
其他

提升程序员技术的10大神器

机器学习算法工程师,算法才是王道、干货、线上讨论群组,及行业资讯!致力于为机器学习、深度学习、数据挖掘等AI技术的“初学者”或者“爱好者”,进行基础理论与实战技能的介绍和学习。
2018年12月16日
被用户删除
其他

与其抖音,不如学习

一个百度人的技术提升之路,为您提供一系列系统架构、数据结构、网络、C++、计算机底层等高质量技术文章,让您的碎片化时间最大价值化。同时会不定期分享精品免费视频和资源,让您的技术之路不再单调枯燥。
2018年11月30日
其他

漫画:如何实现大整数相加?(修订版)

例子中,最先相加的是数组A的第1个元素8和数组B的第1个元素9,结果是7,进位1。把7填充到Result数组的对应下标,进位的1填充到下一个位置:
2018年11月21日
被用户删除
其他

互联网寒冬已来!

随着业务越来越复杂,数据量越来越大,并发量越来越大,单体的架构模式显然再也无法对应,作为Java后端架构师,高并发+高可用+海量数据的分布式架构体系,是必不可少的:
2018年11月2日
被用户删除
其他

谁是 左耳朵耗子?

左耳朵耗子,本名陈皓,一位资深技术专家,拥有20年技术管理与实战经验,曾在阿里巴巴、亚马逊、汤森路透等公司任职,职业背景是金融和电子商务行业,精通架构和各种大规模的系统开发。
2018年10月31日
其他

漫画:什么是桶排序?

具体建立多少个桶,如何确定桶的区间范围,有很多不同的方式。我们这里创建的桶数量等于原始数列的元素数量,除了最后一个桶只包含数列最大值,前面各个桶的区间按照比例确定。
2018年10月15日
其他

漫画:什么是计数排序?

非常简单,让我们遍历这个无序的随机数列,每一个整数按照其值对号入座,对应数组下标的元素进行加1操作。
2018年10月8日
被用户删除
其他

为什么说程序员不能光懂技术,要有点商业头脑?

正好赶上国庆课程优惠,极客时间运营小姐姐说这是本年度最大优惠折扣了,课程原价199,只有今天一天优惠到79,你邀请一个人还可以返现36,邀请2个人相当于免费学习该专栏。
2018年10月2日
其他

漫画:什么是堆排序?

由于二叉堆的这个特性,我们每一次删除旧堆顶,调整后的新堆顶都是大小仅次于旧堆顶的节点。那么我们只要反复删除堆顶,反复调节二叉堆,所得到的集合就成为了一个有序集合,过程如下:
2018年9月10日
其他

漫画:什么是二叉堆?(修正版)

代码中有一个优化的点,就是父节点和孩子节点做连续交换时,并不一定要真的交换,只需要先把交换一方的值存入temp变量,做单向覆盖,循环结束后,再把temp的值存入交换后的最终位置。
2018年9月9日
被用户删除
其他

工作繁忙的程序员,应该如何购物?

这部被热议的纪录片中显示,市场上售价近10000元的化妆品,成本只有一两百块钱,售价超过千元的某国际知名运动鞋成本也不过在34.94美元——这些成本,原来是行业内部不能说的秘密。
2018年9月9日
其他

漫画:什么是快速排序?(完整版)

不同的是,冒泡排序在每一轮只把一个元素冒泡到数列的一端,而快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成了两个部分。
2018年8月13日
其他

漫画:什么是鸡尾酒排序?(修订版)

这段代码是鸡尾酒排序的原始实现。代码外层的大循环控制着所有排序回合,大循环内包含两个小循环,第一个循环从左向右比较并交换元素,第二个循环从右向左比较并交换元素。
2018年7月31日
被用户删除
其他

这个男人敲了五年代码,赚了老爸一生的积蓄……

目前,长投14天小白理财训练营已经开到50期,许多学员从零开始,到获得更多理财收益;几年之后,有人转行为职业投资人,有人赚钱后带着相机环游世界,也有人在被动收入终于高过工资后,放心地去做全职妈妈。
2018年7月24日
被用户删除
其他

我不是书神!

今天,小灰也要学习一下主角的精神。不过小灰没有药可卖,只好向大家推荐当当网的打折图书。有了便宜书,程序员小伙伴们可以节省腰包,更愉快地提升自己了。
2018年7月20日
其他

漫画:什么是冒泡排序?

这一版代码做了小小的改动,利用布尔变量isSorted作为标记。如果在本轮排序中,元素有交换,则说明数列无序;如果没有元素交换,说明数列已然有序,直接跳出大循环。
2018年7月16日
其他

漫画:什么是拜占庭将军问题?

算法:区块链技术所使用的共识算法之一,适用于私有链的共识。—————END—————喜欢本文的朋友们,欢迎长按下图关注订阅号程序员小灰,收看更多精彩内容
2018年5月7日
其他

漫画:如何实现抢红包算法?

这个公式,保证了每次随机金额的平均值是相等的,不会因为抢红包的先后顺序而造成不公平。
2018年4月23日
其他

那些提升开发人员工作效率的在线工具

Grepcode是一个面向于Java开发人员的网站,在这里你可以通过Java的projects、classes等各种关键字在线查看它对应的源码,知道对应的project、classes等信息。
2018年4月18日