下载此文档

VB算法总结.docx


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
--------------------------校验:_____________-----------------------日期:_____________VB算法总结VB算法总结:1、最大公约数算法说明1)       最大公约数: 用辗转相除法求两自然数m、n的最大公约数。(1)       首先,对于已知两数m、n,比较并使得m>n;(2)       m除以n得余数r;(3)       若r=0,则n为求得的最大公约数,算法结束;否则执行步骤(4)(4)       mßnnßr再重复执行(2)譬如: 10与5分析步骤: m=10n=5 r=mmodn=0 所以n(n=5)为最大公约数 24与9分析步骤: m=24n=9 r=mmodn=6 r≠0m=9n=6 r=mmodn=3 r≠0m=6n=3 r=mmodn=0 所以n(n=3)为最大公约数算法实现PrivateFunctionGCD(ByValmAsLong,ByValnAsLong)AsLongDimtempAsLongIfm<nThentemp=m:m=n:n=tempDimrAsLongDor=mModnIfr=0ThenExitDom=nn=rLoopGCD=n EndFunction2)       最小公倍数 m×n÷最大公约数3)       互质数 最大公约数为1的两个正整数2、素数算法说明素数(质数):就是一个大于等于2的整数,并且只能被1和本身整除,而不能被其他整数整除的数。判别某数m是否是素数的经典算法是:对于m,从I=2,3,4,……,m-1依次判别能否被I整除,只要有一个能整除,m就不是素数,否则m是素数。PrivateFunctionprime(ByValn%)AsBooleanDimi%prime=trueFori=2Tosqr(n) IfnModI=0Then Prime=falseExitFor endifNextIEndFunction3、进制转换算法说明1)       十进制正整数m转换为R(2-16)进制的字符串。 思路:将m不断除r取余数,直到商为0,将余数反序即得到结果。 算法实现:PrivateFunctionTran(ByValmAsInteger,ByValrAsInteger)AsStringDimStrDtoRAsString,nAsIntegerDoWhilem<>on=mModrm=m\rIfn>9ThenStrDtoR=Chr(65+n-10)&StrDtoRElseStrDtoR=n&StrDtoREndIfLoopTran=StrDtoREndFunction 2)       R(2-16)进制字符串转换为十进制正整数。 思路:R进制数每位数字乘以权值之和即为十进制数。 算法实现:PrivateFunctionTran(ByValsAsString,ByValrAsInteger)AsintegerDimnAsInteger,decAsIntegers=UCase(Trim(s))Fori%=1ToLen(s) IfMid(s,i,1)>="A"Then n=Asc(Mid(s,i,1))-Asc("A")+10 Else n=Val(Mid(s,i,1)) EndIf dec=dec+n*r^(Len(s)-i)NextiTran=decEndFunction4、排序问题(1).选择排序法(升序)基本思想:1)对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位置;2)除第1个数外,其余n-1个数中选最小的数,与第2个数交换位置;3)依次类推,选择了n-1次后,这个数列已按升序排列。 Optionbase1Subsort(a()asinteger) Dimi%,j%,t%,p%,n% N=ubound(a)Fori=1Ton-1 p=i Forj=i+1Ton Ifa(j)>a(p)Thenp=j Nextj t=a(i) a(i)=a(p) a(p)=(升序)基本思想:(将相邻两个数比较,小的调到前头)1)有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,经n-1次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”;2)第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两两相邻比较后得次大的数;3)依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。程序段如下Subsort(a()asinteger) Dimi%,j%,n%,t% n=ubound(a)Fori=1Ton-1 Forj=1Ton-i Ifa(j)>a(j+1)Then tem

VB算法总结 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人漫山花海
  • 文件大小102 KB
  • 时间2019-11-13