标签 "算法" 相关文章

总计 2 页,当前第 1 页
神秘的程序猿

用算法撩妹都不会,别跟我说你是程序员

程序员浪漫的表白方式可以说是花样百出,为什么用在自己身上就没效果呢?作为一个程序员“身边的女生”,猿妹觉得,大部分程序员没有女朋友,很可能是恋爱技能bug太多,当你还不确定那个女生对你的喜欢程度,就贸然出手表白,那么结局可能就是......所以表白前先要做功课,下面一位歪国小哥就教给我们一种方法:利用算法,确定一个姑娘对你是否有兴趣,看准了再出手,才不至于惨败公式和步骤:贝叶斯似然率理论公式:P(h|d) / P(-h|d) = P(d...
3年前 (2018-01-27) 阅读(919) 赞一个 (0) 评论(0) 链接直达
程序开发

漫画:什么是SHA系列算法?

SHA-1SHA-1算法可以从明文生成160bit的信息摘要,示例如下:给定明文:abcdSHA-1摘要:81FE8BFE87576C3ECB22426F8E57847382917ACFSHA-1 与 MD5的主要区别是什么呢?1、摘要长度不同。MD5的摘要的长度尽128bit,SHA-1摘要长度160bit。多出32bit意味着什么呢?不同明文的碰撞几率降低了2^32 = 324294967296倍。2、性能略有差别SHA-1生成摘要...
3年前 (2017-10-29) 阅读(921) 赞一个 (1) 评论(0) 链接直达
程序开发

漫画:AES算法的底层原理

上一次为大家介绍了AES算法的基本概念,没看过的小伙伴可以点击下面的链接:漫画:什么是AES算法?我们是有追求的程序员,不能知其然不知其所以然。这一次,我来给大家讲一讲AES算法的底层原理。上一期我们已经对AES的总体加密流程进行了介绍,在这里我们重新梳理一下:1、把明文按照128bit拆分成若干个明文块。2、按照选择的填充方式来填充最后一个明文块。3、每一个明文块利用AES加密器和密钥,加密成密文块。4、拼接所有的密文块,成为最终的密...
3年前 (2017-10-29) 阅读(927) 赞一个 (0) 评论(0) 链接直达
程序开发

漫画:什么是AES算法?

假设有一个发送方在向接收方发送消息。如果没有任何加密算法,接收方发送的是一个明文消息:“我是小灰”如果消息被中间人截获到,即使中间人无法篡改消息,也可以窥探到消息的内容,从而暴露了通信双方的私密。因此我们不再直接传送明文,而改用对称加密的方式传输密文,画风就变成了下面这样:具体工作的步骤如下:1、发送方利用密钥123456,加密明文“我是小灰”,加密结果为TNYRvx+SNjZwEK+ZXFEcDw==。2、发送方把加密后的内容TNYR...
3年前 (2017-10-29) 阅读(973) 赞一个 (1) 评论(0) 链接直达
程序开发

漫画:什么是Base64算法?

漫画:什么是Base64算法?ValueCharValueCharValueCharValueChar0A16Q32g48w1B17R33h49x2C18S34i50y3D19T35j51z4E20U36k5205F21V37l5316G22W38m5427H23X39n5538I24Y40o5649J25Z41p57510K26a42q58611L27b43r59712M28c44s60813N29d45t61914O30e46u62...
3年前 (2017-10-04) 阅读(932) 赞一个 (0) 评论(0) 链接直达
程序开发

漫画:什么是MD5算法?

漫画:什么是MD5算法?摘要哈希生成的正确姿势是什么样呢?分三步:1、收集相关业务参数,在这里是金额和目标账户。当然,实际应用中的参数肯定比这多得多,这里只是做了简化。2、按照规则,把参数名和参数值拼接成一个字符串,同时把给定的密钥也拼接起来。之所以需要密钥,是因为攻击者也可能获知拼接规则。3、利用MD5算法,从原文生成哈希值。MD5生成的哈希值是128位的二进制数,也就是32位的十六进制数。第三方支付平台如何验证请求的签名?同样分三步...
3年前 (2017-10-04) 阅读(975) 赞一个 (0) 评论(0) 链接直达
程序开发

漫画:什么是Bitmap算法?

两个月之前——为满足用户标签的统计需求,小灰利用Mysql设计了如下的表结构,每一个维度的标签都对应着Mysql表的一列:要想统计所有90后的程序员该怎么做呢?用一条求交集的SQL语句即可:Select count(distinct Name) as 用户数 from table whare age = '90后' and Occupation = '程序员' ;要想统计所有使用苹果手机或者00后的用户总...
3年前 (2017-09-21) 阅读(944) 赞一个 (1) 评论(0) 链接直达
Java开发

八大排序算法实战:思想与实现

摘要:所谓排序,就是根据排序码的递增或者递减顺序把数据元素依次排列起来,使一组任意排列的元素变为一组按其排序码线性有序的元素。本文将介绍八种最为经典常用的内部排序算法的基本思想与实现,包括插入排序(直接插入排序,希尔排序)、选择排序(直接选择排序,堆排序)、交换排序(冒泡排序,快速排序)、归并排序、分配排序(基数排序),并给出各种算法的时间复杂度、空间复杂度和稳定性。  友情提示:若读者需要本博文相关完整代码,请移步我的Git...
3年前 (2017-06-09) 阅读(1085) 赞一个 (2) 评论(0) 链接直达
神秘的程序猿

厉害了word程序猿:追MM的各种算法

1、动态规划基本上就是说:你追一个MM的时候,需要对该MM身边的各闺中密友都好,这样你追MM这个问题就分解为对其MM朋友的问题,只有把这些问题都解决了,最终你才能追到MM。因此,该问题适用于聪明的MM,懂得“看一个人,不是看他如何对你,而是看他如何对他人。”的道理,并且对付这样的MM总能得到最优解。但确定是开销较大,因为每个子问题都要好好对待……2、贪心算法基本上就是:你追一个MM的时候,从相识到相知,每次都采用最aggressive的...
4年前 (2017-04-01) 阅读(1129) 赞一个 (0) 评论(0) 链接直达
程序开发

每个程序员都应该收藏的算法复杂度速查表

算法复杂度这件事这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 OBig-O 复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住。最近这几年,我面试了几家硅谷的初创企业和一些更大一些的公司,如 Yahoo、eBay、LinkedIn 和 Google,每次我都需要准备这个,我就在问自己,“为什么没有人创建一个漂亮的大 O 速查表呢?”所以,为了节省大家的时间,...
4年前 (2017-02-05) 阅读(967) 赞一个 (0) 评论(0) 链接直达
Java开发

从数组到HashMap之算法解释

一、数组是什么?忘了在哪本书里曾看到过类似这样的一句话“所有的数据结构都是数组的演化”,想想其实是有道理的,因为计算机的内存其实就是线性的存储空间。Java示例代码:int[] array = new int[5]忽略对象头信息和数组长度信息,JVM执行时会在堆中分配20个字节的内存空间,看起来就是这样的:这样的数据结构可以很方便地通过数组下标存取数据,但在查找时需要遍历数组,平均时间复杂度为O(n/2)。当数据量很大或者查找操作频繁的...
4年前 (2017-01-07) 阅读(1150) 赞一个 (0) 评论(0) 链接直达
Java开发

列出JDK加密服务提供者、系统支持的消息摘要算法

一个简单的小程序可以列出JDK加密服务提供者、系统支持的消息摘要算法。可以看到列出系统已经安装的所有的JCE提供者,并且著名的一些的消息摘要算法:MD5,生成公钥和私钥对的算法RSA等都在其中:import java.security.Provider; import java.security.Security; public class Check { public&nb...
4年前 (2016-11-12) 阅读(1240) 赞一个 (0) 评论(0) 链接直达

程序喵 www.ibloger.net

关于本站 站内留言 给我写信 文章订阅