获取生日、性别、年龄和身份证算法

//根据身份证取省份,生日,性别functiongetInfo(){//获取输入身份证号码varic=$("#txtCardID").val();ic=checkId(ic);if(isNaN(ic))return;varic=String(ic);//获取出生日期varbirth=ic.substring(6,10)+"-"+ic.substring(10,12)+"-"+ic.substring(12,14);//获取性别vargender=ic.slice(14,17)%2?"1":"2";//1代表男性,2代表女性varsexOption=document.getElementsByName("rabSex");for(vari=0;i<sexOption.length;i++){if(sexOption[i].value==gender){sexOption[i].checked=true;break;}}//获取年龄varmyDate=newDate();varmonth=myDate.getMonth()+1;varday=myDate.getDate();vara...

数组中涉及的常见算法

数组中涉及的常见算法:数组元素的赋值求数值型数组中元素的最大值,最小值,平均数,总和等数组的复制,反转,查找(线性查找,二分法查找)数组的排序练习题总结:第一类问题:创建一个长度为6的int型数组,要求取值1-30,随机赋值,同时要求元素的值各不相同1publicclassArrayExer{2publicstaticvoidmain(String[]args){3int[]array=newint[6];4for(inti=0;i<array.length;i++){5array[i]=(int)(Math.random()*30)+1;//因为random是左闭右开式,所以得加一6for(intj=0;j<i;j++){7if(array[i]==array[j]){8i--;9break;10}11}12}13for(inti=0;i<array.length;i++){14System.out.println(array[i]);15}16}1718}理解:array[j]代表的是已生成的array[i];一旦有相等的值,就i--重新生成新的值;第二类问题:创...
代码星球 代码星球·2020-04-01

哈希算法MD5和SHA1的C#实现

/* * 哈希算法MD5和SHA1的C#实现 *  *  * 夏春涛 Email:xChuntao@163.com  * Blog:http://bluesky521.cnblogs.com * 运行环境:.net2.0 framework *//* * 关于哈希函数: *     哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。 * 加密哈希函数有这样一个属性:在计算上不大可能找到散列为相同的值的两个 * 不同的输入;也就是说,两组数据的哈希值仅在对应的数据也匹配时才会匹配。 * 数据的少量更改会在哈希值中产生不可预知的大量更改。 *  * MD5 算法的哈希值大小为 128 位。 *&nbs...

常用消息摘要算法介绍

介绍:数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法或散列算法。 消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。(摘要可以比方为指纹,消息摘要算法就是要得到文件的唯一职位)特点:无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。只能进行正向的信息摘要,而无法从摘要中恢复出任何的消息,甚至根本就找不到任何与原信息相关的信息(不可逆性)。好的摘要算法,没有人能从中找到“碰撞”或者说极度难找到,虽然“碰撞”是肯定存在的(碰撞即不同的内容产生相同的摘要)。应用:一般地,把对一个信息的摘要称为该消息的指纹或数字签名。数字签名是保证信息的完整性和不可否认性的方法。数据的完整性是指信宿接收到的消...

Linux 内核里的数据结构:位图(bitmap)

 注:本文由LCTT原创翻译,Linux中国荣誉推出    除了不同的基于链式和树的数据结构以外,Linux内核也为位数组(或称为位图(bitmap))提供了API。位数组在Linux内核里被广泛使用,并且在以下的源代码文件中包含了与这样的结构搭配使用的通用API: lib/bitmap.cinclude/linux/bitmap.h 除了这两个文件之外,还有体系结构特定的头文件,它们为特定的体系结构提供优化的位操作。我们将探讨x86_64体系结构,因此在我们的例子里,它会是 arch/x86/include/asm/bitops.h 头文件。正如我上面所写的,位图在Linux内核中被广泛地使用。例如,位数组常常用于保存一组在线/离线处理器,以便系统支持热插拔的CPU(你可以在cpumasks部分阅读更多相关知识),一个位数组(bitarray)可以在Linux内核初始化等期间保存一组已分配的中断处理。 因此,本部分的主要目的是了解位数组(bitarray)是如何在Linux内核中实现的...

Linux 内核中的数据结构:基数树(radix tree)

转自:https://www.cnblogs.com/wuchanming/p/3824990.html  基数(radix)树Linux基数树(radixtree)是将指针与long整数键值相关联的机制,它存储有效率,并且可快速查询,用于指针与整数值的映射(如:IDR机制)、内存管理等。IDR(IDRadix)机制是将对象的身份鉴别号整数值ID与对象指针建立关联表,完成从ID与指针之间的相互转换。IDR机制使用radix树状结构作为由id进行索引获取指针的稀疏数组,通过使用位图可以快速分配新的ID,IDR机制避免了使用固定尺寸的数组存放指针。IDR机制的API函数在lib/idr.c中实现,这里不加分析。Linuxradix树最广泛的用途是用于内存管理,结构address_space通过radix树跟踪绑定到地址映射上的核心页,该radix树允许内存管理代码快速查找标识为dirty或writeback的页。Linuxradix树的API函数在lib/radix-tree.c中实现。 (1)radix树概述 radix树是通用的字典类型数据结构,...

Linux 内核里的数据结构:双向链表

原文:https://blog.csdn.net/qq_33487044/article/details/78827260 双向链表Linux内核自己实现了双向链表,可以在include/linux/list.h找到定义。我们将会从双向链表数据结构开始内核数据结构。为什么?因为它在内核里使用的很广泛,你只需要在free-electrons.com检索一下就知道了。首先让我们看一下在include/linux/types.h里的主结构体:structlist_head{   structlist_head*next,*prev;};你可能注意到这和你以前见过的双向链表的实现方法是不同的。举个例子来说,在glib库里是这样实现的:structGList{ gpointerdata; GList*next; GList*prev;};通常来说一个链表会包含一个指向某个项目的指针。但是内核的实现并没有这样做。所以问题来了:链表在哪里保存数据呢?。实际上内核里实现的链表实际上是侵入式链表。侵入式链表并不在节点内保存数据-节点...

信息摘要算法之一:MD5算法解析及实现

MD5即Message-DigestAlgorithm5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。1、MD5算法简介MD5在90年代初由MIT的计算机科学实验室和RSADataSecurityInc发明,经MD2、MD3和MD4发展而来。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个。MD5的典型应用是对一段信息串(Message)产生所谓的指纹(fingerprint),以防止被“篡改”。比方说,你将一段话写在一个文本文件中,并对这个文本文件产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所...

用ES6巧妙的解决传统面试中的算法小问题!

最近自己也在准备面试,在复习算法的时候,机智的用了一波ES6.一起来瞧瞧吧!1.数组的去重vararr=str.split('');for(vari=0;i<arr.length-1;i++){for(varj=i+1;j<arr.length;j++){if(arr[i]==arr[j]){arr.splice(j,1);//arr.length-=1;删完长度自动减1j--;console.log(arr)}}}用两层循环来做的话,好像麻烦了点哦。好像ES6中的Set可以用。试试看?vararr=[1,3,55,12,32,3,66,12,358,66,73,32];vara=newSet(arr);//SET是类数组的集合console.log(a,a.size);//arr=Array.from(a);将类数组转换为数组arr=[...a];//扩展运算符what?soeasy,没有那么多逻辑,代码量也很少。简直太酷炫了!!!2.如何拼接两个数组?传统的for循环就不多说了,当然concat也是可以的,还是直接上ES6吧!vararr1=[1,2,3];vararr...

深入浅出的排序算法-冒泡排序

关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己。 ...

【数据结构】Java版

有趣有内涵的文章第一时间送达! 喝酒I创作I分享生活中总有些东西值得分享@醉翁猫咪 想你吴亦凡;赵丽颖 - 想你   你是程序猿对吗?会写代码的那种?      我是打字猿?会打代码的那种?现在告诉大家一个很好的学习方法,那就是看PPT学习法,那么为什么这种方法好呢?因为PPT是总结课本的整体,大部分总结了重要的内容,很容易看,又方便。如果有个老师在身旁看着,并同时教你,那你一定很容易上手,这种方法,是我体验过的才知道,相对于课本或书籍内容大量,不容易上手。那么现在讲讲数据结构?那么首先什么是数据结构,相关概念你是必须要记住的,需要掌握数据类型与抽象数据类型,算法及其它相关性能分析的知识。数据结构需要了解线性结构,层次结构和网状结构,除此之外,还要了解数据的逻辑结构,存储结构和运算,及上方说的算法。NewYear'sDay新年新气象数据结构是计算机用来存储、组织数据的方式指相互之间存在一种或多种特定关系的数据元素的集合通常情况下数据结构可以带来更高的运行时光...
代码星球 代码星球·2020-04-01

Java代码题目:计算奖金和完全平方数

1.计算奖金题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。packagejiajia;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclasszuoye1{/***@paramargs*企业发放的奖金根据利润提成。*利润(I)低于或等于10万元时,奖金可提10%;*利润高于10万元,低于20万元时,*低于10万元的部分按10%提成,高于10万元的部分,*可提成7.5%;20万到40万之间时,高于2...

c# base64算法解密

///<summary>///将字符串使用base64算法加密///</summary>///<paramname="code_type">编码类型(编码名称)///*代码页名称///*1200"UTF-16LE"、"utf-16"、"ucs-2"、"unicode"或"ISO-10646-UCS-2"///*1201///<summary>///将字符串使用base64算法加密///</summary>///<paramname="code_type">编码类型(编码名称)///*代码页名称///*1200"UTF-16LE"、"utf-16"、"ucs-2"、"unicode"或"ISO-10646-UCS-2"///*1201"UTF-16BE"或"unicodeFFFE"///*1252"windows-1252"///*65000"utf-7"、"csUnicode11UTF7"、"unicode-1-1-utf-7"、"unicode-2-0-utf-7"、"x-unicode-1-1-utf-7"或"...
代码星球 代码星球·2020-03-31

四轴自适应控制算法的一些尝试开源我的山猫飞控和梯度在线辨识自适应等算法—(转)

本文的最主要目的在于抛砖引玉,阿莫论坛真的是非常好的一个论坛,没有这个论坛,没有那么多这个论坛上的前人无私的奉献和热烈的讨论,我想我是怎么也无法入门四轴的控制的。只是论坛上已经很多年都没有看到过新东西了,大家都把自己的成果悄悄藏了起来,于是这么多年了,在商业四轴已经泛滥的今天,论坛上依然还停留在给PID调参数这种初级阶段,甚至就是这么简单的东西人们尽然会把它抱得那么紧,生怕别人学会了,只是你没有往出走一步真正的看下别人都做到哪一步了而已,我们不要做井底之蛙,大家团结起来共同进步才能带动中国四轴飞控算法的进步,所以我决定把我的代码以及相关的资料全都贡献出来,源于奉献,敢于奉献,乐于奉献。希望我这块砖头能真的为我们的四轴DIY事业添砖加瓦。       首先,我们要声明,我这文章不是成功以后的炫耀,而是失败之后的总结,为以后将要顺着这条道路走下去的“战士”们清理荆棘。我要扼杀掉那些认为自适应控制是“完全万能”的人的美梦,我们这里已经实现了自适应的极点配置控制器,在线的辨识系统参数(从控制输入到得出欧拉角)和控制器参数(使...

【转】十大经典排序算法

转自十大经典排序算法:https://www.cnblogs.com/onepixel/articles/7674659.html 0、算法概述0.1算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 0.2算法复杂度0.3相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面。时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。 1、冒泡排序(BubbleSort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列...
代码星球 代码星球·2020-03-29
首页上一页...129130131132133...下一页尾页