基于VB的随机数算法探讨

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Option Explicit Private Sub Commandl_ClickO
DimiAsLong Dim chl As Suing Fori=1T0100
chl=Encode(”文{‘}:加密解密测试.‘)
EncodeList.Addltem chl chl=Decode(chl) DecodeList.Addltcm chl
Next
Decode=StrConv(temp,VBUnicode) Exit Function
ERRS: Decode=”
End Function
以上程序已经在VB6.0和Windows下测试通过。 用VB实现随机取数的方法已经运用到很多领域中,如各类试题 库软件证明该方法有较好的使用效果,出卷时,选出的试题具有很强 的随机性,并且算法的运行效率也比较理想。
Dim temps As Suing For i;0 To UBound(temp)
Randomize Time
j=CByte(5+(Math.RndO)+o) temp(i);temp(i)Xor J k=temp(i)Mod Len(str)
m;temp(i)\Len(s廿) m;m‘2‘3+j
技,2006,28(3):78—79
、¨1田”日:
(收稿日期:2009-12-14)2008(os
(接159页)适应大中专院校发展和广大体育教师需求的开放的激励 体系,努力做到全面激励、全程激励,最大限度地调动广大体育教师 的工作积极性,才能使大中专院校在未来的竞争中始终立于不败之 地。
参考文献 【1】孙建萍.孙建红,安寸然.高校教师工作满意度调查与分析【I】.教 育探索,2006(9):78—80 【2】杨继平,张雪莲.山西省高校教师工作满意度的调查研究【『】.教育 理论与实践.2006(7):34—43. 【3】周丽超.高校教师工作满意度的研究U】.天津电大学报.2004,8
Dim tl As String,t2 As Suing Dim temp()As Byte Dim n As Long n=0
Fori=l TOLen(ch3】Step2 tl=Mid(ch3,i.1) t2=Mid(ch3.i+l,1) k;InS蜓l,毗,t1)一l m;InStr(1.str,t2)一l ir--IU、2‘3 m=m—i●2‘3 ReDim Preset're temp(n) temp(n);j‘Len(str)+k temp(n)=temp(n)Xorm n譬n+l
f7】伯尼.L.帕克豪斯.体育管理学【M】.清华大学出版社。2003 【81 Brown,S.P.,&Peter,R.A.Effect ofeffort Oil sales perfommnce andjob sa商ffactionD】Journal ofMarketingt 1994,58:70—80 作者简介刘全成。河南省周口市职业技术学院。
现随机抽奖的目的。本文介绍的刺用Ⅶ实现随机取数的方法,随机
性水平较高,具有一定的通用性。
(1)说明:用来初始化随机数生成器,使随机函数Rnd每次产 生不同序列的随机数。
(2)格式:Randomize【(number)】 (3)参数说明:其中number-是随机数生成器的开始值(即“种
子”)。随机数生成器给n啪berl嘶的种子值,以产生不重复的序
列;如果省略number,则用系统计时器返回值作为新的种子值。 (4)返回值:整数,如果省略numbcr,贝lJRandomize函数返回空
值。 (5)用法;反复调用Rnd函数生成的随机序列是由电脑产生的
伪随机序列。为了产生真正的随机序列,可以从系统时钟或其他途径 选取变化的数,利用Randomize函数初始化随机函数生成器.从而得
(收稿日期:2009—12—03)
(接200页)四个盒子中的三个盒子里,有名种不同的放法,依据乘 法原理,共有口A:=144种不同的放法。
说明:这是一道排列组合的混合应用题,这类题的一般解法是先 取(组合)后排(排列)。本题正确求解的关键是把四个小球中的两 个视为一个整体.如果考虑不周,就会出现重复和遗漏的错误。
同一个顺序,叫做伪随机。 随机种子(send)是保证你每次产生的随机数是不同的,种子数是
系统产生的,也可以根据需要自己选择合适的种子,但如何选取种
子,直接关系到弛d函数的随机性。可以根据时问、网卡号、IP地 址、硬盘序列号等一系列方法产生一个随机数。例如将当前时间作为 种子,然后进行规定好的计算方法(如加、减、乘、除等)开始计算 第一个值,然后将计算结果返回同时将它当作新种子以备下一次使
Rnd函数的返田值 把N作为种子数据.每次退田相网的越 序列中的下一个随机敷
等于0 崔略
t近产生的般 序纠中的下一个随机牧
(5)使用Int(Rnd*(上界一下界+D+-F界)可以产生一个介于上
界和下界之间(包括上界和一F界)的随机整数。侧如,如果保留小数
为x位,要生成a至,Jb的数(包括a、b),则用表达式两t(Rnd()·((b—a)
rnd函数应用实例optionexplicitprivatesubcommand1clickdimiaslongdimch1asstringfori1to100ch1encode文件加密解密测试encodelistadditemch1ch1decodech1decodelistadditemch1nextiendsubprivatefunctionencodebyvalch2asstringasstring加密函数iflench20thenexitfunctiondimtempasbytetempstrconvch2vbfromunicodedimiaslongdimjasbytedimkasbytemasbytedimstrasstringstr123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzdimoutputasstringiuboundtemp1outputspace2idimtempsasstringfori0touboundtemprandomizetimejcbyte5mathrnd0tempitempixorjktempimodlenstrmtempilenstrtempsmidstrk11midstrm11midoutput2i12tempsnextencodeoutputendfunctionprivatefunctiondecodebyvalch3asstringasstring解密函数onerrorgotoerrsdimiaslong基于vb的随机数算法探讨马小龙甘肃民族师范学院计算机科学系兰州大学信息科学与工程学院关键词随机数是我们在现实生活中接触很广的一个词在很多领域都用到了随机数本文介绍visualbasic中的随机函数以及如何利用随机函数生成随机数序列并通过实例程序说明如何利用visualbasic来实现随机取数
Nexti
End Sub
Private Function Encode(ByVal ch2 As Suing)As Suing’加密函数 If Len(cIl2)=0 Then Exit Function Dim tempO As Byte temp=StrConv(ch2,VBFromUnicode)
用。
4 Rnd函数应用实例
下面通过使用Rnd函数实现文件加密和解密的功能,来说明在 Visual Basic中如何利用Rnd函数实现随机取数。该程序的主要功能是 对所传输的文件进行加密传输,到达接收方后进行解密;加密和解密 是两个互逆的函数,加密的文件可以是任意字符,加密结果仅限制在 大小写字母和数字,传输的文件中的每个字节加密后有6种结果(占 两个字节,如果需要大于6种的话,就要多用1个字节,即占3个字 节),也就是说如果字串占n个字节的话,可能产生的结果为6的n次 方个。首先在进入VB集成开发环境后新建一个标准的EXE工程,并 在窗体上添加一个命令按钮(Commandl)和两个列表框控件 (EncodeList和DecodeList),然后在代码窗口中编写事件过程:
(10):35-39 【4】 兰惠敏.固外教师工作满意度综述o】.教育探索,2007。192
(6):131-192 【5】擂彩莲.高校教师工作满意度的影响因素探析【I】.高教论坛,
2006.4:179—181
【6】诸葛伟民.浙江、上海、江苏高校体育教师工作满意度现状的调 番分析田.北京体育大学学报,2001,(1):8卜83
Dim i As Long
万方数据
"矗南缸习呼j文2010年第2期
信息纵横
Dim j As Byte
Dim k As Byte Dim m As Byte Dim str As Suing
sir=’’123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR STUVWXYZ”
科学系讲师.兰州大学信息与工程学院在读工程硕士,主要从事信息管理
方面的教学和研究工作。
(收稿日期:2009-12-23)
构先进性,形成良性运营机制。
【3】.尊竺妻,?3侠,陆光平·论体育社团在高校体育中的地位与作
些…孽对:絮n粤妻譬=翌当垡塑团登嘎整黧6二1黧制.妻·竺耋翌蠢璺黧譬望聱塑苎量ji苎磐璧::Ⅲ些矬尝=到竺德查彻验研‘芰高J册海孟等主妻爵嘉≥?:麓I赫:.裟。毁?磊校丁体“育11…社…团”促”进“大“4牡“心’一理。健‘康”的”实“
关键词随机取数伪随机随机函数
随机数在现实世界中涉及到很多方面的很多问题,例如,中国福
利彩票和中国体育彩票中号码的随机产生;奥运年出现的刮刮奖;考 试系统的试题库中试题的随机抽取;产品质量的随机抽样检验;文件 传输过程中的加密和解密等等,都不同程度的用到了随机数函数。近
年来,在娱乐节目之中常常见到的利用电脑进行抽奖的活动,其主要 原理也是利用随机数函数来实现随机查找和打乱排序的功能,从而实
参考文献 【1】1 龚沛曾.Visual Basic程序设计简明教程(6.0)R).高等教育出版 社.2000
【2】饶宇等.VisualBasic6.0实例教程脯东电子出版社,2000 【31谭浩强.VisualBasic程序设计请华大学出版社,2004
【4】刘瑞新等.Visual Basic程序设计教程(93版).电子工业出版社。
DimiAsLong
Dimj AsByte
DimkAsByte.mAsByte Dim¥tr As String six--”123456789abcdefghijklrrmopqrsmvwxyzABCDEFGHIJKLMNOPQRST UVWXYZ” Dim output As SUIng i=UBound(temp)+l OUtput=Space(2’i)
用Randomize函数初始化随机函数生成器,从而使用基于系统时间的
种子。如果要重复随机数序列,在带负数参数调用Rnd函数之后接着
使用带有数值参数的Randomize语句。使用相同的number隹[的
Randomize语句并不会重复以前的随机数序列。
(4)函数返回值:
参tN的取值 01、子0 是于0
到真正的随机序列。
2 Rnd函数
(1)格式:P.nd【(N)1
(2)参数说明:其中的N为双精度数,可以省略。
(3)用法:Rnd函数的返回值小于l。大于或等于0。参数N函数
Rnd怎样产生随机数:对于任何给出的初始的种子数据.则产生同一
个数据序列,因为每一个对Rnd函数的反复调用都把序列中的前一个
数值作为下一个数值的种子。如果需要产生不同的随机序列,需要调
进社团给与表彰,并请这些社团负责人介绍社团建设方面的经验方 ’一i:?”辜慧豢三赢i采团羹展的背景研究o】.四川体育科学,207-a
.(03)
法。同时,加强杜团骨干培养。社团骨干素质如何,直接关系到活动
洒俞宏建.高校体育社团产生的背景及萁;寺征分析Ⅱ】.南京体育每院
那兰塞笔些孽出妻。思璧曼兰要想曼篓擎政意妻彗治 乙荔言蓼素删二差窑质很’2【9高】0L釜、 囊菁,李专 少龙诃南业省高校学技生体育社能团存在的和问题及对责策I 任心强、有一定的组织协调能力
基于V B的随机数算法探讨
马小龙
(甘肃民族师范学院计算机科学系 兰州大学信息科学与工程学院)
摘要随机数是我们在现实生活中接触很广的一个词,在很多领域都用到了随机数,本文介绍VisualBasic中的随机函数,以及. 如何利用随机函数生成随机数序,一l,并通过实例程序说明如何利用Visuai Basic来实现随机取数。
芝训誊翌恐型翌璺曼王箩行培切,提高他们的思想水平和工作能
力,保障杜团又好又快发展。 …..
抽报. 【1】曹) #’江苏省高校体育社团发展现状与对策卟首都体育学院学 ,
【8】汪颖.学校体育与大学生。心理健康问题探讨【I】t体育科技文献通
田.科爱信薹_2麓.于(:产”…1”“1。”刖4”1””“”“4。8 ……i耐蜀岳磊.美苗‘妄,校体育社团发展存在的问题及对策【J】.辽宁体育科
2()()7
【s】高春艳等.VisudBasic程序开发范例宝典.人民邮电出版社。2006 【6】(芙)Damon Allison Ben Hyrman.VB.NET"-T伸缩性技术手册.清华 大学出版社.2003 闭赛奎春。李俊民.Visual Basic函数参考大全.人民邮电出版社,2006
作者简介马小龙(1979一).回族,现任甘肃民族师范学院计算杌
temps=Mid(sir,k+i。1)+Mid(str.m+1,1) Mid(output,2+i+I,2)=temps Next
Encode=output
End Function Private Function Decode(ByVal ch3 As String)As Suing懈密函数
On)/10‘x+a就可以实现。
3 “种子”(send)
VB提供的随机函数Rnd并不能生成真正的随机序列,它的随机性 依赖于Randomize函数中的“种子”的选取。随机数是就是用一个数 做“种子”,然后经过一系列的函数运算,算法是固定的,所以每次 都会得到同样的一个数列,也就是每次重新运行程序得到的数字都是
相关文档
最新文档