c中求随机数的函数randomize()和random()如何用?

junsheng 2001-01-05 11:09:00
如果要不重复的随机数有序数列又如何用??
...全文
3093 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
acqy 2001-01-08
  • 打赏
  • 举报
回复
可以将第一个产生出来的随机数作为第二个数的种子
Smile_Tiger 2001-01-05
  • 打赏
  • 举报
回复
randomize()用于初始化随机种子,程序中一般只写一次
random(int n)求 0<= i < n 的整数

要不重复的随机数有序数列可以定义一个数组用于存放随机数

伪码:
1.产生随机数
2.随机数与数组中的各数比较
3.如果相等,重复1
4.入数组
5.如果数组没到底,重复1
6.算法完毕
IMarksman 2001-01-05
  • 打赏
  • 举报
回复
random()的函数原型为int random(int num)
它的作用是Returns an integer between 0 and (num-1)

而randomize的函数原型为void randomize(void)
它的作用是Initializes the random number generator with a random value.

它们的区别是前者限定随机数的产生范围,而后者这完全是随机的,另外使用这两个函数时
应含入
#include <stdlib.h>
#include <time.h>
头文件。

至于要不重复的随机数有序数列,我就不会了!


hyqryq 2001-01-05
  • 打赏
  • 举报
回复
你这种情况我也遇到过,每次程序运行时,产生的随机数列是相同的,
这是由于randomize()这个函数没有使用或使用的有问题.
randomize()用于初始化随机种子,程序中一般只写一次,
好像他的内部实现是用系统当前时间初始化随机种子,
这样产生的随机列一般是不同的.
eg:
#include "stdio.h"
#include "stdlib.h"
main()
{
int i;
int a[10];
randomize();
for(i=0;i<10;i++)
{
a[i]=random(100);//return a random number bewteen 0 to 99
printf("%d ",a[i]);
}
printf("\n");
getch();
}

69,378

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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