>UR-怎么取随机值 '模块名称:mdlRandom '模块功能:产生随机的字符串 '作者:[email protected] '更新日期:2003-8-8 11:58:27 AM '相关模块: '相关文件: '预期读者和阅读建议: '国外一共享软件,功能是产生一些随机数。据然能够卖到美元 '但是我不会赚美元,希望你会。 '用这个模块你搞一个 ' Password Generator Professional ' Random String Generator Professional '赚到钱记得分我一点喔!'*********************************************************** Public Function RandomNumber(LowerBound, UpperBound) 'Purpose :产生一个指定范围内的随机数 On Error Resume Next Randomize RandomNumber = Int((UpperBound - LowerBound + 1) * Rnd + LowerBound) End Function'******************************************** Public Function CreateRandomString( _ ByVal strMatrix As String, _ ByVal lngLen As Long, _ strOut As String, _ Optional BlnAllowRepeat As Boolean = False) '目的 :在给定的串中,随机选择一个字符,组成指定长度的串。 '相关模块: RandomNumber,CreateRandomByteArray '输入: '返回:如果操作成功完成,返回0,否则返回Err.Number On Error GoTo PROC_ERR Dim lngErr As Long '[参数有效性检测] Dim lngLenMatrix As Long lngLenMatrix = Len(strMatrix) If lngLenMatrix = 0 Or lngLen < 1 Then lngErr = -1 Debug.Print "CreateRandomString. Matrix is Empty or lngLen <1" GoTo PROC_EXIT End If '*************** Dim strTemp As String Dim strOneRandom As String Dim lngLoop As Long Dim lngRandomPosition As Long Dim abytRandom() As Byte '*************** If BlnAllowRepeat Then '*************** '*允许重复 For lngLoop = 1 To lngLen '*关键外部调用:mdlUtilities.RandomNumber '随机选择一个位置 lngRandomPosition = RandomNumber(1, lngLenMatrix) '得到随机位置的字符 strOneRandom = Mid(strMatrix, lngRandomPosition, 1) '连接得到的随的字符 strTemp = strTemp & strOneRandom NextElse '*************** '*不允许重复 '*关键外部调用:CreateRandomByteArray CreateRandomByteArray abytRandom, lngLenMatrix - 1 Dim lngCount As Long '*************** For lngLoop = 0 To lngLenMatrix - 1 '*关键外部调用:mdlUtilities.RandomNumber '得到一个位置 lngRandomPosition = abytRandom(lngLoop) '得到这个位置的字符 strOneRandom = Mid(strMatrix, lngRandomPosition + 1, 1) '连接得到的字符 strTemp = strTemp & strOneRandom '记数器加1 lngCount = lngCount + 1 If lngCount >= lngLen Then Exit For End If NextEnd If '*************** '*************** '*返回结果 strOut = strTempPROC_EXIT: CreateRandomString = lngErrExit Function PROC_ERR: lngErr = Err.Number strOut = "" Debug.Print "CreateRandomString.Err(" & Err.Number & "):" & Err.Description & " Erl:" & Erl GoTo PROC_EXITEnd Function'*********************************************************** Public Function CreateRandomByteArray(abytArray, Optional lngSize As Long = 255) As Long '目的 :产生一个随机的Byte数组 '相关模块: '输入:abytArray -保存结果 ' lngSize -这个数组的上界(*注意:下界为0) '返回:如果操作成功完成,返回0,否则返回Err.Number On Error GoTo PROC_ERR Dim lngErr As Long '建立一个临时Byte数组 Dim lngLoop As Long Dim abytTemp() As Byte ReDim abytTemp(lngSize) '*************** '*填充这个数组 For lngLoop = 1 To lngSize abytTemp(lngLoop) = lngLoop Next '*************** '*对已经填充的数组,通过随机的交换两个元素的位置来打乱 Dim lngRandom Dim vntTemp For lngLoop = 0 To lngSize lngRandom = RandomNumber(0, lngSize) ' Debug.Print "Random:" & lngRandom vntTemp = abytTemp(lngLoop) abytTemp(lngLoop) = abytTemp(lngRandom) abytTemp(lngRandom) = vntTemp Next '*************** '*返回结果 abytArray = abytTemp PROC_EXIT: CreateRandomByteArray = lngErr Exit Function PROC_ERR: lngErr = Err.Number Debug.Print "CreateRandomByteArray.Err(" & Err.Number & "):" & Err.Description GoTo PROC_EXITEnd Function '*********************************************************** '*********************************************************** '*希望能够对你有所帮助! '*********************************************************** '*欢迎访问我的网站,给我的作品提宝贵意见!希望和大家交朋友! http://www.softboyzhou.com '*下载EasyDialog: http://www.softboyzhou.com/download/EasyDialog.asp '我现在失业了,有什么项目大家一起做吗?
Print 255*Rnd
Randomize Time
a = 255 * Rnd
Randomize(Time) '声明种子
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
upperbound----上界
lowerbound----下界
初始化随机数生成器。
语法
Randomize [number]
number 参数可以是任何有效的数值表达式。说明
Randomize 使用 number 参数初始化 Rnd 函数的随机数生成器,赋给它新的种子值。如果省略 number,则使用系统计时器返回的值作为新的种子值。
如果不使用 Randomize,则第一次调用 Rnd 函数(无参数)时,它将使用相同的数字作为种子值,随后使用最后生成的数值作为种子值。
--------------------------------------------------------------------------------
注意 要重复随机数的序列,请在使用数值参数调用 Randomize 之前,立即用负值参数调用 Rnd。使用相同的 number 值的 Randomize 不能重复先前的随机数序列。 下面例子举例说明如何使用 Randomize 语句: Dim MyValue, Response
Randomize '初始化随机数生成器。Do Until Response = vbNo
MyValue = Int((6 * Rnd) + 1) ' 产生 1 到 6 之间的随机数。
MsgBox MyValue
Response = MsgBox ("Roll again? ", vbYesNo)
Loop
'模块名称:mdlRandom
'模块功能:产生随机的字符串
'作者:[email protected]
'更新日期:2003-8-8 11:58:27 AM
'相关模块:
'相关文件:
'预期读者和阅读建议:
'国外一共享软件,功能是产生一些随机数。据然能够卖到美元
'但是我不会赚美元,希望你会。
'用这个模块你搞一个
' Password Generator Professional
' Random String Generator Professional
'赚到钱记得分我一点喔!'***********************************************************
Public Function RandomNumber(LowerBound, UpperBound)
'Purpose :产生一个指定范围内的随机数
On Error Resume Next
Randomize
RandomNumber = Int((UpperBound - LowerBound + 1) * Rnd + LowerBound)
End Function'********************************************
Public Function CreateRandomString( _
ByVal strMatrix As String, _
ByVal lngLen As Long, _
strOut As String, _
Optional BlnAllowRepeat As Boolean = False)
'目的 :在给定的串中,随机选择一个字符,组成指定长度的串。
'相关模块: RandomNumber,CreateRandomByteArray
'输入:
'返回:如果操作成功完成,返回0,否则返回Err.Number
On Error GoTo PROC_ERR
Dim lngErr As Long
'[参数有效性检测]
Dim lngLenMatrix As Long
lngLenMatrix = Len(strMatrix)
If lngLenMatrix = 0 Or lngLen < 1 Then
lngErr = -1
Debug.Print "CreateRandomString. Matrix is Empty or lngLen <1"
GoTo PROC_EXIT
End If
'***************
Dim strTemp As String
Dim strOneRandom As String
Dim lngLoop As Long
Dim lngRandomPosition As Long
Dim abytRandom() As Byte
'***************
If BlnAllowRepeat Then
'***************
'*允许重复
For lngLoop = 1 To lngLen
'*关键外部调用:mdlUtilities.RandomNumber
'随机选择一个位置
lngRandomPosition = RandomNumber(1, lngLenMatrix)
'得到随机位置的字符
strOneRandom = Mid(strMatrix, lngRandomPosition, 1)
'连接得到的随的字符
strTemp = strTemp & strOneRandom
NextElse
'***************
'*不允许重复
'*关键外部调用:CreateRandomByteArray
CreateRandomByteArray abytRandom, lngLenMatrix - 1
Dim lngCount As Long
'***************
For lngLoop = 0 To lngLenMatrix - 1
'*关键外部调用:mdlUtilities.RandomNumber
'得到一个位置
lngRandomPosition = abytRandom(lngLoop)
'得到这个位置的字符
strOneRandom = Mid(strMatrix, lngRandomPosition + 1, 1)
'连接得到的字符
strTemp = strTemp & strOneRandom
'记数器加1
lngCount = lngCount + 1
If lngCount >= lngLen Then
Exit For
End If NextEnd If
'***************
'***************
'*返回结果
strOut = strTempPROC_EXIT:
CreateRandomString = lngErrExit Function
PROC_ERR:
lngErr = Err.Number
strOut = ""
Debug.Print "CreateRandomString.Err(" & Err.Number & "):" & Err.Description & " Erl:" & Erl
GoTo PROC_EXITEnd Function'***********************************************************
Public Function CreateRandomByteArray(abytArray, Optional lngSize As Long = 255) As Long
'目的 :产生一个随机的Byte数组
'相关模块:
'输入:abytArray -保存结果
' lngSize -这个数组的上界(*注意:下界为0)
'返回:如果操作成功完成,返回0,否则返回Err.Number
On Error GoTo PROC_ERR
Dim lngErr As Long
'建立一个临时Byte数组
Dim lngLoop As Long
Dim abytTemp() As Byte
ReDim abytTemp(lngSize)
'***************
'*填充这个数组
For lngLoop = 1 To lngSize
abytTemp(lngLoop) = lngLoop
Next
'***************
'*对已经填充的数组,通过随机的交换两个元素的位置来打乱
Dim lngRandom
Dim vntTemp
For lngLoop = 0 To lngSize
lngRandom = RandomNumber(0, lngSize)
' Debug.Print "Random:" & lngRandom
vntTemp = abytTemp(lngLoop)
abytTemp(lngLoop) = abytTemp(lngRandom)
abytTemp(lngRandom) = vntTemp Next
'***************
'*返回结果
abytArray = abytTemp
PROC_EXIT:
CreateRandomByteArray = lngErr
Exit Function
PROC_ERR:
lngErr = Err.Number
Debug.Print "CreateRandomByteArray.Err(" & Err.Number & "):" & Err.Description
GoTo PROC_EXITEnd Function
'***********************************************************
'***********************************************************
'*希望能够对你有所帮助!
'***********************************************************
'*欢迎访问我的网站,给我的作品提宝贵意见!希望和大家交朋友!
http://www.softboyzhou.com
'*下载EasyDialog:
http://www.softboyzhou.com/download/EasyDialog.asp
'我现在失业了,有什么项目大家一起做吗?
范围是从0到255的整数