当前位置:首页 » 操作系统 » 算法的发现

算法的发现

发布时间: 2022-06-22 02:37:12

① 你在编程时发现过哪些非常精妙的算法

用一个值记录出现的数,一个值记录出现次数,若下一个数等于记录的数,则出现次数+1,若不等,则-1,当出现次数被减到0时,替换记录的数,并把出现次数记为1,那么最后,因为不同的数出现次数一定抵不过相同数出现次数,所以最终遍历完数组,一定是存储着次数超过数组大小一半的ans,并且出现次数还大于等于1。

② 12.6÷6=的算法你发现了什么

12.6/6=126/60=2.1

③ RSA算法的基本含义

RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。
正是基于这种理论,1978年出现了着名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
SET(Secure Electronic Transaction)协议中要求CA采用2048bits长的密钥,其他实体使用1024比特的密钥。RSA密钥长度随着保密级别提高,增加很快。下表列出了对同一安全级别所对应的密钥长度。 保密级别 对称密钥长度(bit) RSA密钥长度(bit) ECC密钥长度(bit) 保密年限 80 80 1024 160 2010 112 112 2048 224 2030 128 128 3072 256 2040 192 192 7680 384 2080 256 256 15360 512 2120 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和 Leonard Adleman。早在1973年,英国国家通信总局的数学家Clifford Cocks就发现了类似的算法。但是他的发现被列为绝密,直到1998年才公诸于世。
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n,e1),(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e2 mod n;B=A^e1 mod n;(公钥加密体制中,一般用公钥加密,私钥解密)
e1和e2可以互换使用,即:
A=B^e1 mod n;B=A^e2 mod n;

④ “算法时代”到来,为何算法服务人类并未被实现

一开始算法只是服务于人类的,但随着网络的发达以及智能地推广,人们惊讶的发现自己正在慢慢依赖算法乃至无法失去它。

好像在上世纪90年代当计算机深蓝赢了大师之后,当时就有人提出智能电脑也许终究有一天将主导人类。而它的初衷只是发明出来,帮助人们生活在一个更加便利的环境下,人是主导它,或者说控制它的,它被发明出来也只是服务于人类的,但是随着时间的推移会逐渐发现当它被赋予了的各种算法以及不断更新之后,开始会学习了,它产生的某种意义上的主导性,而这一点可能会将人类摆在一个尴尬的位置,因为人类将无法完全操控它。

久而久之的这种算法让人们变得越来越懒惰了,人们不愿去自主思考,因为智能设备会推送给人类精准的信息,这些信息就是人类所需要的,它们已经自动排除了人类所不感兴趣的无用信息了。

⑤ 通过对简便算法的探究,你发现了什么

我发现了简便方法不仅很方便的算出答案更能帮助自己有快速解题技巧

⑥ 遗传算法研究进展

遗传算法[56,53]研究的兴起是在20世纪80年代末和90年代初期,但它的历史起源可追溯到20世纪60年代初期。早期的研究大多以对自然遗传系统的计算机模拟为主。早期遗传算法的研究特点是侧重于对一些复杂的操作的研究。虽然其中像自动博弈、生物系统模拟、模式识别和函数优化等给人以深刻的印象,但总的来说这是一个无明确目标的发展时期,缺乏带有指导性的理论和计算工具的开拓。这种现象直到20世纪70年代中期由于Holland和De Jong的创造性研究成果的发表才得到改观。当然,早期的研究成果对于遗传算法的发展仍然有一定的影响,尤其是其中一些有代表性的技术和方法已为当前的遗传算法所吸收和发展。

在遗传算法作为搜索方法用于人工智能系统中之前,已有不少生物学家用计算机来模拟自然遗传系统。尤其是Fraser的模拟研究,他于1962年提出了和现在的遗传算法十分相似的概念和思想。但是,Fraser和其他一些学者并未认识到自然遗传算法可以转化为人工遗传算法。Holland教授及其学生不久就认识到这一转化的重要性,Holland认为比起寻找这种或那种具体的求解问题的方法来说,开拓一种能模拟自然选择遗传机制的带有一般性的理论和方法更有意义。在这一时期,Holland不但发现了基于适应度的人工遗传选择的基本作用,而且还对群体操作等进行了认真的研究。1965年,他首次提出了人工遗传操作的重要性,并把这些应用于自然系统和人工系统中。

1967年,Bagley在他的论文中首次提出了遗传算法(genetic algorithm)这一术语,并讨论了遗传算法在自动博弈中的应用。他所提出的包括选择、交叉和变异的操作已与目前遗传算法中的相应操作十分接近。尤其是他对选择操作做了十分有意义的研究。他认识到,在遗传进化过程的前期和后期,选择概率应合适地变动。为此,他引入了适应度定标(scaling)概念,这是目前遗传算法中常用的技术。同时,他也首次提出了遗传算法自我调整概念,即把交叉和变异的概率融于染色体本身的编码中,从而可实现算法自我调整优化。尽管Bagley没有对此进行计算机模拟实验,但这些思想对于后来遗传算法的发展所起的作用是十分明显的。

在同一时期,Rosenberg也对遗传算法进行了研究,他的研究依然是以模拟生物进化为主,但他在遗传操作方面提出了不少独特的设想。1970年Cavicchio把遗传算法应用于模式识别中。实际上他并未直接涉及到模式识别,而仅用遗传算法设计一组用于识别的检测器。Cavicchio对于遗传操作以及遗传算法的自我调整也做了不少有特色的研究。

Weinberg于1971年发表了题为《活细胞的计算机模拟》的论文。由于他和Rosenberg一样注意于生物遗传的模拟,所以他对遗传算法的贡献有时被忽略。实际上,他提出的多层次或多级遗传算法至今仍给人以深刻的印象。

第一个把遗传算法用于函数优化的是Hollstien。1971年他在论文《计算机控制系统中的人工遗传自适应方法》中阐述了遗传算法用于数字反馈控制的方法。实际上,他主要是讨论了对于二变量函数的优化问题。其中,对于优势基因控制、交叉和变异以及各种编码技术进行了深入的研究。

1975年在遗传算法研究的历史上是十分重要的一年。这一年,Holland出版了他的着名专着《自然系统和人工系统的适配》。该书系统地阐述了遗传算法的基本理论和方法,并提出了对遗传算法的理论研究和发展极为重要的模式理论(schemata theory)。该理论首次确认了结构重组遗传操作对于获得隐并行性的重要性。直到这时才知道遗传操作到底在干什么,为什么又干得那么出色,这对于以后陆续开发出来的遗传操作具有不可估量的指导作用。

同年,De Jong完成了他的重要论文《遗传自适应系统的行为分析》。他在该论文中所做的研究工作可看作是遗传算法发展进程中的一个里程碑,这是因为他把Holland的模式理论与他的计算实验结合起来。尽管De Jong和Hollstien一样主要侧重于函数优化的应用研究,但他将选择、交叉和变异操作进一步完善和系统化,同时又提出了诸如代沟(generation gap)等新的遗传操作技术。可以认为,De Jong的研究工作为遗传算法及其应用打下了坚实的基础,他所得出的许多结论迄今仍具有普遍的指导意义。

进入20世纪80年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显着提高,同时产业应用方面的研究也在摸索之中。此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑均给遗传算法增添了新的活力。

随着应用领域的扩展,遗传算法的研究出现了几个引人注目的新动向:一是基于遗传算法的机器学习(Genetic Base Machine Learning),这一新的研究课题把遗传算法从历来离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能的崭新的机器学习算法。这一新的学习机制对于解决人工智能中知识获取和知识优化精炼的瓶颈难题带来了希望。二是遗传算法正日益和神经网络、模糊推理以及混沌理论等其他智能计算方法相互渗透和结合,这对开拓21世纪中新的智能计算技术将具有重要的意义。三是并行处理的遗传算法的研究十分活跃。这一研究不仅对遗传算法本身的发展,而且对于新一代智能计算机体系结构的研究都是十分重要的。四是遗传算法和另一个称为人工生命的崭新研究领域正不断渗透。所谓人工生命即是用计算机模拟自然界丰富多彩的生命现象,其中生物的自适应、进化和免疫等现象是人工生命的重要研究对象,而遗传算法在这方面将会发挥一定的作用。五是遗传算法和进化规划(Evolution Programming,EP)以及进化策略(Evolution Strategy,ES)等进化计算理论日益结合。EP和ES几乎是和遗传算法同时独立发展起来的,同遗传算法一样,它们也是模拟自然界生物进化机制的智能计算方法,既同遗传算法具有相同之处,也有各自的特点。

随着遗传算法研究和应用的不断深入和发展,一系列以遗传算法为主题的国际会议十分活跃。从1985年开始,国际遗传算法会议,即ICGA(International Conference on Genetic Algorithm)每两年举行一次。在欧洲,从1990年开始也每隔一年举办一次类似的会议,即 PPSN(Parallel Problem Solving from Nature)会议。除了遗传算法外,大部分有关ES和EP的学术论文也出现在PPSN中。另外,以遗传算法的理论基础为中心的学术会议有FOGA(Foundation of Genetic Algorithm)。它也是从1990年开始,隔年召开一次。这些国际学术会议论文集中反映了遗传算法近些年来的最新发展和动向。

⑦ 你觉得如何选择算法才能让连减计算变得简便说说你的发现

连减题要用简便法计算,有两个思路,一个思路是把减数加起来,可以凑成整十或者整百,或者整千 ,再用被减数去减。比如:136-53-47
=136-(53+47)
=136-100
=36
另一个思路是把减数的位置移动一下,先减好计算的减数,再减复杂的减数。比如:123-56-23
=123-23-56
=100-56
=44

⑧ 列举算法层次的几项重要工作。

1 引言
数据准备是KDD过程中一个很重要的过程,良好的数据准备过程能够为数据挖掘提供清洁、可靠、稳定的数据环境,以保证挖掘算法的有效实施。在线分类理想的数据环境应具备以下几个特点: (1)数据应包含丰富的属性信息,应具备可靠性和稳定性;
(2)数据的属性应具有对于分类任务的相关性。大多数的分类任务只与数据库中部分属性有关,多余的、无关的属性介入分类,常会减慢甚至错误引导分类过程,应此必须去掉无关属性。
(3)数据应具有高层数据信息,以发现清晰的、高层的、具有统计意义的分类规则。在本文的研究中,为了使数据环境达到上述要求,在数据准备阶段采用了数据泛化的策略,这个策略用概念层次作为背景,结合了OLAP技术与Jiawei Han等人的面向属性归纳的方法,明显提高了工作效率。
2 面向属性归纳中的基本泛化策略和算法
随着KDD研究的逐步深入, Jiawei Han等人提出了一种基于归纳的知识发现方法——面向属性的归纳方法[1][2][3],这方法的特点是能够根据概念层次将低概念层的数据泛化到相应的高层次的概念层,以发现多层的或高层的规则。面向属性归纳方法是一种有效的、完整的知识发现算法,该算法将机器学习中示例学习方法与数据库的操作技术相结合[1]。算法的一个关键就是攀升属性所对应的概念层次树以泛化原始数据集的数据到用户感兴趣的概念层上,减少数据集的大小,从而降低知识发现过程的计算复杂度。面向属性归纳方法的进行,必须有两个前提:

(1)必须由用户提出明确的知识发现任务。在Jiawei Han等人的研究中,采用了一种类似SQL语句的知识发现语句DMQL[4]用来让用户定义发现任务,下面便是一个分类任务的语句描述:

要说明的是在本文的研究中采用了一个可视化的向导来引导用户定义发现任务,但为了文章描述方便,在本文的描述中,借用了DMQL来描述发现任务
(2)与发现任务相关的属性应有概念层次,如上文所述,数值型的概念层次可以自动提取,给定的概念层次可以用户的兴趣和发现任务的不同而进行动态调整。
在具备以上两个前提时,面向属性归纳采用了以下一些泛化策略。

⑨ 算法有哪些特点它有哪些特征它和程序的主要区别是什么

算法是处理解决问题的思路及办法,程序语言是按照一定语法把算法表达来。
打个比方,你头脑里有了一套新思想,一个新发现,你可以用中文写出来,也可以用英文写出来,让大家明白。思想和发现可以比作是算法,用中文或英文可以比作是程序语言。
因此核心是算法,但程序语言是实现算法的载体。在计算机等系统中,算法是处理某一问题的思路方法,而程序语言能具体表达算法从而使之运行起来通过算法需要完成的任务。

热点内容
csqlserver 发布:2024-11-08 17:43:08 浏览:206
sql绿色 发布:2024-11-08 17:26:48 浏览:805
安卓手机如何更新红标 发布:2024-11-08 17:25:23 浏览:62
python正则空格 发布:2024-11-08 17:14:18 浏览:234
蟑螂数据库 发布:2024-11-08 17:13:07 浏览:780
洗车机的配置是什么意思 发布:2024-11-08 17:13:01 浏览:265
java开发文档编写 发布:2024-11-08 17:06:49 浏览:433
文件夹取消折叠组 发布:2024-11-08 17:05:41 浏览:569
微信第一次支付密码是什么 发布:2024-11-08 17:05:21 浏览:578
国内免费云服务器腾讯 发布:2024-11-08 17:03:53 浏览:664