社区
脚本语言
帖子详情
rand()函数产生随机序列的问题
jietian123
2007-01-17 02:29:38
程序中,我要从符合条件的专家中随机的抽取N位来作为评审专家,为了保证公平、公正,产生的随机数不能是重复的。下面是我的具体做法:
一、根据专家专业、工作单位找到符合条件的专家,并将专家数目赋给整形变量ii;
二、根据系统时钟给rand函数做初始化randomize(0);
三、产生随机序列,并将值放到i中:i=rand(ii);
这样做是不是对呢?会不会产生重复的随机序列?
...全文
650
9
打赏
收藏
rand()函数产生随机序列的问题
程序中,我要从符合条件的专家中随机的抽取N位来作为评审专家,为了保证公平、公正,产生的随机数不能是重复的。下面是我的具体做法: 一、根据专家专业、工作单位找到符合条件的专家,并将专家数目赋给整形变量ii; 二、根据系统时钟给rand函数做初始化randomize(0); 三、产生随机序列,并将值放到i中:i=rand(ii); 这样做是不是对呢?会不会产生重复的随机序列?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)了,就不会重复
rand
函数
生成伪
随机
数
rand
函数
生成伪
随机
数的一些常见错误与详解。以及
rand
函数
s
rand
函数
,时间戳的正确用法。
c语言中的
rand
()
函数
和s
rand
()
函数
产生
随机
的整数
在C语言中,
rand
()
函数
可以用来
产生
随机
数,但是这不是真真意义上的
随机
数,是一个伪
随机
数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于
产生
了
随机
数,但这不是真正的
随机
数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了s
rand
()
函数
,它的原形是void s
rand
...
为什么
rand
函数
生成的是伪
随机
数?
想要了解为什么
rand
函数
生成的是伪
随机
数,就需要了解 s
rand
函数
。
C语言
rand
函数
(
随机
)
rand
函数
不是真正的
随机
数生成器,而s
rand
()会设置供
rand
()使用的
随机
数种子。如果你在第一次调用
rand
()之前没有调用s
rand
(),那么系统会为你自动调用s
rand
()。而使用同种子相同的数调用
rand
()会导致相同的
随机
数
序列
被生成。 系统在调用
rand
()之前都会自动调用s
rand
(),如果用户在
rand
()之前曾调用过s
rand
()给参数seed指...
rand
函数
和s
rand
函数
详解
引言 在C语言中,
rand
函数
可以用来
产生
随机
数,但并不是真正意义上的
随机
数。它是返回介于 0 和
RAND
_ MAX 之间的伪
随机
整数。这个数字是由一个算法生成的,该算法每次调用它时都返回一个显然不相关的数字
序列
。该算法是使用一个种子来生成
序列
,当计算机正常开机后,这个种子的值是固定的,因此
产生
的伪
随机
整数也是固定的,除非你为了改变这个值破坏了系统。为了初始化的值不同,C语言提供了s
rand
函数
。 s
rand
函数
原型 void s
rand
(unsigned seed);
rand
函数
代码示例 调用ran
脚本语言
740
社区成员
8,036
社区内容
发帖
与我相关
我的任务
脚本语言
PowerBuilder 脚本语言
复制链接
扫一扫
分享
社区描述
PowerBuilder 脚本语言
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章