时间:2021-04-16
原理:利用一个临时数组保存好随机范围的数据(简称范围数据)索引或标识,用rnd随机生成临时数组的索引。验证临时数组索引所对应的数据,为空则视被记录过了,将随机数加一后重复验证操作直到临时数组索引对应的数据不为空,则由一个记录变量记录下对应的范围数据标识,并清空此项数据。然后进行下一个随机操作。
伪函数:
'####
'## 函数参数
'## 范围数据数组: 一维数组。
'## 随机选择的数据量: 整数。
function MyRnd(范围数据数组,随机选择的数据量)
'#########################################
dim 范围数据数组维数
dim 循环标识
dim 随机索引
dim 随机结果
范围数据数组维数=ubound(范围数据数组)
循环标识=true
if 范围数据数组维数>随机选择的数据量 then
'如果 随机选择的数据量 大于 范围数据数组维数 的话就不用随机读取了,全布都列出来就是了
Randomize Timer
随机索引=fix(rnd*(范围数据数组维数+1))
while 循环标识
if 范围数据数组(随机索引 mod 范围数据数组)<>"" then
'数据不为空,则表示未随机选取过。
随机索引=范围数据数组(随机索引 mod 范围数据数组)
if 随机结果="" then
'随机结果 以","分隔每个随机值。
随机结果=随机结果 &; ","
end if
随机结果=随机结果 &; 范围数据数组(随机索引)
范围数据数组(随机索引)="" '清空该数据表示已随机过。
循环标识=false '结束循环。
end if
if 随机索引>范围数据数组维数*3 then
'如果 随机索引 大于 范围数据数组维数的三倍,表示已经在 范围数据数组维数 内历遍过三次,跳出,防止死循环。
循环标识=false
end if
wend
end if
end function
应用:
用在随机选取不重复的数据表记录。
用getrows将数据表内ID标识换成一个二维数组,然后使用该函数随机选取指定数量的ID编号以","分隔,然后用in条件式将符合随机出来的ID编号的数据读出来即可。
随机选取不重复的数据。
将所有数据放到一个一维数据,然后用该函数挑随机挑选即可。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文介绍了ASP生成不重复随机数的方法,asp生成不重复随机数的实例代码,有需要的朋友参考下。 例1,ASP生成随机数,很简单: 代码示例:Random
删除重复记录,将TABLE_NAME中的不重复记录保存到#TABLE_NAME中selectdistinct*into#table_namefromtable_
ASP生成随机数:复制代码代码如下:Randomize'纯随机,不重复Response.writeInt((999999999*Rnd)+111111111)'
如何用php生成1-10之间的不重复随机数?例1,使用shuffle函数生成随机数。例2,使用array_unique函数生成随机数。php随机数生成函数示例
使用distinct在mysql中查询多条不重复记录值的解决办法如何使用distinct在mysql中查询多条不重复记录值?有时候想用distinct去