通常情况下,生成随机数的方法是从一个范围内随机选择数字,并确保所选数字不重复。一种常见的方法是使用一个数组来存储所选数字,然后与之前选择的数字进行比较,以确保不重复。然而,这种方法并不是最有效的,也不够智能。为什么不尝试使用两个数组呢?
第一个数组存储需要的数字,第二个数组存储生成的随机数。每次生成一个随机数时,将该数字从第一个数组中移除,这样就可以确保不重复。这种方法实际上是从第一个数组中提取数字来生成随机数。
以下是方法二的实现:
Function GenerateRandomPhone()
Dim validPrefixes()
validPrefixes = Array("130", "131", "132", "133", "134", "135", "136", "137", "138", "139") ' 可以从数据库中获取或手动指定
Dim usedIndexes(), randomIndex, temp, i, j
ReDim usedIndexes(UBound(validPrefixes))
j = UBound(validPrefixes)
For i = 0 To j
usedIndexes(i) = i
Next
Dim randomPhones(), x, y
ReDim randomPhones(2)
y = j + 1
x = 0
Do While x < 2
Randomize
randomIndex = usedIndexes(Int(Rnd * y))
randomPhones(x) = validPrefixes(randomIndex)
temp = validPrefixes
Dim a
a = " " & randomPhones(x) & " "
temp = Split(Trim(Replace(Join(temp), a, " ")))
x = x + 1
y = y - 1
Loop
Dim phone
phone = Left(randomPhones(0), 6) & "***" & Right(randomPhones(1), 2)
GenerateRandomPhone = phone
End Function
Response.Write GenerateRandomPhone()
以上就是一个生成随机手机号码的示例。在这个示例中,我们首先定义了一组有效的手机号码前缀,并将其存储在一个数组中。然后,我们从中随机选择两个前缀,组合成一个随机手机号码。