设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2386|回复: 0
打印 上一主题 下一主题

[模块/函数] 产生一个1-N 的不重复随机数

[复制链接]
跳转到指定楼层
1#
发表于 2014-7-17 14:15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚才发表过帖子
然后也试了各位朋友的代码
还是发现有重复的
最后使用Excel 产生不重复随机数的方法
修改了放到Access
没想到也适合
发上来和大家共享一下

一下代码可以产生一个1-N的不重复随机数,N用的是rn控制:

  1. Private Function fncRndNum(rn As Long) '产生1-n不重复随机数
  2. Dim i%, j%, k%, X%, arr
  3. ReDim arr(1 To rn)
  4. For i = 1 To rn
  5. arr(i) = i
  6. Next
  7. '任取数组中两个数,并交换位置,即可得到一组随机排列的不重复的连续整数数组
  8. Randomize '<------------ADD THIS LINE
  9. For i = 1 To rn
  10. j = Int(rn * Rnd) + 1 '任取数组中的一个下标
  11. k = Int(rn * Rnd) + 1 '任取数组中的另一个下标
  12. '交换位置
  13. X = arr(j)
  14. arr(j) = arr(k)
  15. arr(k) = X
  16. Next
  17. fncRndNum = arr
  18. End Function
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-25 02:20 , Processed in 0.088193 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表