算法
㈠ 数据结构 - 演算法水与量杯问题
算是比较经典的算法题了
将装满水的5ml量杯倒满3ml的量杯。
倒掉3ml量杯里的水,将5ml量杯里剩下2ml水倒进3ml量杯里。
又将装满水5ml的量杯往已经装有2ml水的3ml量杯里倒水,倒满3ml量杯。
此时5ml量杯里的水刚好4ml。
㈡ 马其赛旋转算法是怎么算的
Mersenne Twister(马特赛特旋转算法) 根据书上说的是: 马特赛特旋转算法: 产生随机数的函数是:mt_rand() 使用方法是: $num_rand=mt_rand($num_min,$num_max) //其中的两个参数是用来指定随机数产生的范围,如果没有指定,系统将自动指定随机函数的最大值为rand_max,最小值为0 注意书上开是说为了使随机函数的随机程度加大,最好每次在获取随机数之前使用mt_srand()设定新的随机数种子 mt_rands()用法: mt_srand($num_seed); //设定随机数种子 mt_getrandmax()用法; $num_randmax=mt_getrandmax(); 如果在此使用microtime()*1000000函数应该更不错,使用时间戳随机当随机变化的种子 以下内容为程序代码: <? //for sentence creates 10 random number for ($i=0;$i<10;$i++) { mt_srand(100*($i+10)); $randval=mt_rand(2,100); echo $randval." "; } //show the maximum random number that can bu got echo "<br>The maximum random number is:".mt_getrandmax(); ?> 49 21 46 73 53 80 25 80 96 26 The maximum random number is:2147483647 有人熟悉这种算法,或者对这个算法感兴趣吗? 我在想的是能不能对这种算发应用到实际?:em02:
记得采纳啊
㈢ 算法是什么主要的数学意义是什么
东风数学主要特征:1具有实用性,有较强的社会性;2算法程序化模型化;3寓理与算并且是开放的归纳系统
西方数学主要特征:1封闭的逻辑演绎体系季节化的算法;2古希腊的数字与神秘性结合;3将数学抽象化;4希腊数学重视数学在美学上的意义
希腊人在数学上的贡献主要是创立了平面几何,立体几何,平面与球面三角,数论。推广了算数与代数。
东方数学注重实用性社会性,使数学与我们的生活密切联系,二者都推动了现代数学的发展,都开创了数学的先河。
㈣ 离散数学 等值算法
设p:派赵出国,q:派钱出国,r:派孙出国,s:派李出国,t:派周出国。则各条件分别符号化为:
(1)p→q,(2)(sVt),(3)(qA7r)V(-q^r),(4)(rAs)V(→rA-s),(5)1-+(p^q) 要求满足各条件,
因而要求(1)~(5)的合取式为真.设:A≈(p→q)A(sV1)八((q八→r)V(→qλr))A((rAs)V(r八-s))∩(t→(p^q))
为了求出各派遣方案,应求出A的析取范式,最好是主析取范式,主析取范式中含的极小项个数为派遣方案数,由各极小项的成真赋值给出如何派法.所以要求出A的主析取范式。
下面给出求A的主析取范式的主要步骤:
易知,成真赋值为00110与11001。
方案1:孙、李出国,而赵.钱、周不去。
方案2:赵、钱、周出国,而孙、李不去。
(4)算法扩展阅读
随着信息时代的到来,工业革命时代以微积分为代表的连续数学占主流的地位已经发生了变化,离散数学的重要性逐渐被人们认识。离散数学课程所传授的思想和方法,广泛地体现在计算机科学技术及相关专业的诸领域,从科学计算到信息处理,从理论计算机科学到计算机应用技术,从计算机软件到计算机硬件,从人工智能到认知系统,无不与离散数学密切相关。
由于数字电子计算机是一个离散结构,它只能处理离散的或离散化了的数量关系, 因此,无论计算机科学本身,还是与计算机科学及其应用密切相关的现代科学研究领域,都面临着如何对离散结构建立相应的数学模型;又如何将已用连续数量关系建立起来的数学模型离散化,从而可由计算机加以处理。
离散数学是传统的逻辑学,集合论(包括函数),数论基础,算法设计,组合分析,离散概率,关系理论,图论与树,抽象代数(包括代数系统,群、环、域等),布尔代数,计算模型(语言与自动机)等汇集起来的一门综合学科。离散数学的应用遍及现代科学技术的诸多领域。
离散数学也可以说是计算机科学的基础核心学科,在离散数学中的有一个着名的典型例子-四色定理又称四色猜想,这是世界近代三大数学难题之一,它是在1852年,由英国的一名绘图员弗南西斯·格思里提出的,他在进行地图着色时,发现了一个现象,“每幅地图都可以仅用四种颜色着色,并且共同边界的国家都可以被着上不同的颜色”。
那么这能否从数学上进行证明呢?100多年后的1976年,肯尼斯·阿佩尔(Kenneth Appel)和沃尔夫冈·哈肯(Wolfgang Haken)使用计算机辅助计算,用了1200个小时和100亿次的判断,终于证明了四色定理,轰动世界,这就是离散数学与计算机科学相互协作的结果。
㈤ 离散数学,用等值算法判定下列公式的类型,要过程,谢谢
(q∧(p↔q))→¬(p∨¬q)
⇔ ¬(q∧(p↔q))∨¬(p∨¬q) 变成 合取析取
⇔ ¬(q∧((p→q)∧(q→p)))∨¬(p∨¬q) 变成 合取析取
⇔ ¬(q∧((¬p∨q)∧(¬q∨p)))∨¬(p∨¬q) 变成 合取析取
⇔ (¬p∧q)∨(¬q∨¬((¬p∨q)∧(¬q∨p))) 德摩根定律
⇔ (¬p∧q)∨(¬q∨(¬(¬p∨q)∨¬(¬q∨p))) 德摩根定律
⇔ (¬p∧q)∨(¬q∨((p∧¬q)∨(q∧¬p))) 德摩根定律
⇔ (¬p∧q)∨¬q∨((p∧¬q)∨(¬p∧q)) 结合律
⇔ (¬p∧q)∨¬q∨(p∧¬q)∨(¬p∧q) 结合律
⇔ ¬q∨(p∧¬q)∨(¬p∧q) 等幂律
⇔ ¬q∨(¬p∧q) 合取析取 吸收率
⇔ ¬q∨¬p 合取析取 吸收率
是可满足式
㈥ 台湾的大学课程算法相当于大陆的哪门课
就是大陆学校里的算法设计与分析
㈦ 进化论算法
进化首先是生物学的概念。根据达尔文“生物进化论”的观点:生物的发展和演变是根据自然选择的方式进行。生物机能和形态的变化,可从它所处的环境中寻找解释。生物的进化过程也许完全不是随机的,高级生物的进化过程很可能是“合情的产生与检验”的过程,即也许自然界掌握着一种很高明的“自动程序设计”方法进行遗传“程序”的书写。 模仿上述生物进化论所形成的应用算法称为进化论算法。[1]
㈧ 不思议迷宫赛伯拉斯算法怎么获得
不思议迷宫赛伯拉斯算法是新副本的道具,在副本里是需要用到这个道具的,但是很多玩家不知道怎么获得,那么,不思议迷宫赛伯拉斯算法怎么获得?下面就由铁骨网为大家带来不思议迷宫赛伯拉斯算法攻略。
不思议迷宫赛伯拉斯算法怎么得 赛伯拉斯算法获取攻略
1、赛伯拉斯算法需要使用194个探索点购买。
2、使用阿瓦隆出战的话,就不需要购买,直接可以进去。阿瓦隆出战可以无需购买赛伯拉斯算法就可以进入关闭的大门,击败小怪后可以拿到2钻和徽章。
赛伯拉斯算法是一枚特殊材料制作而成的微型晶片,内置有先进的骇客程序,将它植入机甲中,能为破解密码,入侵防护系统带来便利。
技能晶片,能够赋予阿瓦隆机甲特殊能力:骇客等级+2
㈨ 用等值算法
(q∧(p?q))→?(p∨?q) ? ?(q∧(p?q))∨?(p∨?q) 变成 合取析取 ? ?(q∧((p→q)∧(q→p)))∨?(p∨?q) 变成 合取析取 ? ?(q∧((?p∨q)∧(?q∨p)))∨?(p∨?q) 变成 合取析取 ? (?p∧q)∨(?q∨?((?p∨q)∧(?q∨p))) 德摩根定律 ? (?p∧q)∨(?q∨(?(?p∨q)∨?(?q∨p))) 德摩根定律 ? (?p∧q)∨(?q∨((p∧?q)∨(q∧?p))) 德摩根定律 ? (?p∧q)∨?q∨((p∧?q)∨(?p∧q)) 结合律 ? (?p∧q)∨?q∨(p∧?q)∨(?p∧q) 结合律 ? ?q∨(p∧?q)∨(?p∧q) 等幂律 ? ?q∨(?p∧q) 合取析取 吸收率 ? ?q∨?p 合取析取 吸收率是可满足式
㈩ 基因遗传算法是个啥求详解
基因遗传算法主要理论就是优胜劣汰的进化论。
它的主要精神是透过每次迭代都能比上次更进步,逐步演化,表现出针对一个目标函数寻求最佳解的过程。但是因为是随机搜索,所以虽然基因算法设置如交配、突变等来避免,却仍可能会陷入区域最佳解;也有可能最后得到的不是最佳解,只是在结束条件之前找到的最好的解。
基本的基因算法流程:
1.初始化族群:假定这个族群中有4条染色体,每条染色体有5个基因。
基因 -从目标函数的角度来看,就是自变数。
例如:用基因算法解目标函数 f(X,Y,Z)=2X+3Y-Z,
限制式为“X,Y,Z={1,0}”※,
求目标函数的最大值。
此题目对应到染色体的概念,就有3个基因,
三个基因分别代表X、Y、Z三个自变数的值。
染色体 -单一组解
例如:有很多符合目标函数限制式的(X,Y,Z),
其中一组是(x1,y1,z1)=(1,0,0),
函数值 f(x1,y1,z1)为2*1+3*0-0=2。
此例中,这组解当然不是最佳解,但它是这个题目的一个可行解。
*想象我们用直觉解题,拿张计算纸,把所有可行解都列出来,
然后比较所有我们想得到的可行解,最后可以得
到最佳的一组(X,Y,Z),因为它的f(X,Y,Z)为最大值。
族群 -多组解的集合
例如:族群中有四条染色体,这四条染色体就是四组可行解。
2.设定交配率和突变率:假定交配率a为0.6,突变率b为0.1。
交配率 -每个世代中,族群内有多少比率的染色体会互相交配。
突变率 -每个世代中,族群内的染色体有多少机率会突变。
3.迭代世代。
For iter=10 -假定做十次优胜劣汰。
3.1. 天择:在这个世代中,根据每条染色体的权重,随机选择母代来产生后代,
用以做下一个运算。
通常使用轮盘法来作天择,也就是说,
如果染色体甲的解是这个族群中最好的,
那么甲的权重就是最高的。反之则是最低的。
*轮盘法:假定这次族群为“[1,1,1],[0,1,1],[1,0,1],[1,0,0]”,
四条染色体的适应值分别是“4,2,1,2”,
适应值总和为4+2+1+2=9,
则四条染色体被选到的机会为“4/9,2/9,1/9,2/9”
=“0.4,0.2,0.1,0.2”。这个机会就是权重。
为了不让每次选择都选到同一条染色体,所以只是
“有比较高的机会”选择到“有更好适应值的染色体”,
而不是一定会选择这个好适应值的染色体。
3.2. 交配:母代产生后,依照交配率a,随机选择染色体来作交配。
比较交配前的子代1和交配后的子代2,在8条染色体中,
选择适应值最好的4条染色体留下来。
最简单的交配方式就是交换两条染色体的某个基因。
*例如,染色体S=[0,1,0],染色体Q=[1,1,1],交配位于首位的基因,
则可以得到新的两条染色体S'=[1,1,0]、Q'=[0,1,1]。
3.3. 突变:交配完后,依照突变率b,决定这一个世代要不要突变。
假设要突变,则若突变后子代3的适应值比突变前子代2好,就用子代3取代子代2。
最简单的突变方式就是随机选择某条染色体的某个基因,改变它。
*例如,随机选中染色体M=[1,0,1],随机突变中间的基因,
得到新染色体M'=[1,1,1] 。
3.4. 更新:最后得到的族群中,所有染色体的适应值。
END For
4. 比较所有染色体的适应值,列出最好的那一个染色体为算法最后的解。
※一般使用二元染色体,限制染色体的基因只会等于零或壹。
在此处只是方便解说,所以直接把限制式设成零和壹。
假设我们用二元染色体来解目标函数f(x)=x^2的最大值,限制式为0<=x<=7,x为整数。
用基因算法求解,则需要产生log_2(8)=3个基因,
简单说来,就是用二进位表示一个有限整数值。
(也可以把基因想成电脑的位元数,我们用三个位元来表示一个有限的整数值。)
这样做的话,突变的方法就是直接把某个基因转成零或壹,
不用设定要更改多少值(例如加3、加100或减0.8)(基因算法应该一般不会这样做);
计算适应值时,互相转换二进位与十进位。
基因三个,则可以表达:
111=2^2+2^1+2^0=4+2+1=7
110=2^2+2^1=4+2=6
101=2^2+2^0=4+1=5
100=4
001=1
000=0
011=3
010=2