rand()函数产生随机序列的问题

jietian123 2007-01-17 02:29:38
程序中,我要从符合条件的专家中随机的抽取N位来作为评审专家,为了保证公平、公正,产生的随机数不能是重复的。下面是我的具体做法:
一、根据专家专业、工作单位找到符合条件的专家,并将专家数目赋给整形变量ii;
二、根据系统时钟给rand函数做初始化randomize(0);
三、产生随机序列,并将值放到i中:i=rand(ii);
这样做是不是对呢?会不会产生重复的随机序列?
...全文
650 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ciitc2 2008-05-07
  • 打赏
  • 举报
回复

有没有PB高手能来兼职当培训讲师的?如有感兴趣的朋友,请将简历发

至:abc@ciitc.com,请联系:QQ:174629429 MSN:bjcosun@hotmail.com
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
支持搂主,收藏
hjw01592 2007-02-25
  • 打赏
  • 举报
回复
楼上的高
hillhx 2007-02-04
  • 打赏
  • 举报
回复
我觉得去掉重复数据可能回破坏随机性

我看不如,你弄个数据窗口里面是专家信息,在弄出一个放随机数的字段,然后用随机数去从头到尾的填写
然后在用数据窗口的排序,按照这个字段排序,前1-N就是你想要的


如果你用的是SQLSERVER也可以考虑用

SELECT TOP 10 * FROM TB1
ORDER BY NEWID()

反正我感觉没必要去掉重复值
变巨 2007-01-17
  • 打赏
  • 举报
回复
pb的帮助里就是这么推荐的,randomize(0)保证每次生成一个不重复的新种子,所以生成的随机数能保证是随机的
youqiong 2007-01-17
  • 打赏
  • 举报
回复
前面做过,
你可以做个10个左右的看看,应该有重复的,(我的当时 18个)
不过
你可以用数组保存随机数,
for
//产生随机数
for
//用当前的随机数和数组中保存的数对比
//相等->重新生成
//不等->保存继续
next
next
青锋-SS 2007-01-17
  • 打赏
  • 举报
回复
理论上不会重复.
iamx 2007-01-17
  • 打赏
  • 举报
回复
应该不会。虽然PB产生的伪随机序列,但只要你的种子不一样,序列应该不一样。
AFIC 2007-01-17
  • 打赏
  • 举报
回复
用randomize(0)了,就不会重复

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧