随笔-153  评论-235  文章-19  trackbacks-0


#include "stdio.h"
#include <stdlib.h>
#include "windows.h" 
#include <conio.h>
#define RAND_MAX 0x7fff

void main()
{    int m=60,n=10,ans=0;
     srand((unsigned)GetCurrentTime());   //加了这个才正直随机, 头文件是windows.h
     for(int i=0;i<200;i++)
     {
        printf(" %4d",rand()*(m-n)/RAND_MAX+n);//n<=x<m的数字
     }
     getch();
}
posted on 2007-05-16 16:56 流浪汗 阅读(3659) 评论(4)  编辑  收藏 所属分类: C/C++

评论:
# re: C/C++ 随机函数 2008-11-11 09:44 | gcc
29 10 57 37 33 12 32 57 22 51 52 30 35 21 19 15
23 37 28 36 11 36 39 15 50 47 13 25 29 45 53 21
22 29 34 58 56 20 15 51 10 15 23 48 44 15 46 48
10 39 15 48 45 60 41 11 52 12 11 25 11 15 11 37
39 58 41 58 25 36 43 57 21 48 40 31 11 32 11 41
40 49 20 34 24 47 48 49 19 21 12 23 29 33 13 48
23 27 50 39 51 39 37 27 58 46 25 22 14 51 44 20
41 41 30 45 56 37 58 42 17 39 29 42 32 59 44 20
40 56 13 53 38 26 25 39 48 44 32 19 26 12 30 42
15 31 14 34 46 32 29 34 32 21 59 51 18 18 43 46
22 54 17 53 39 54 42 49 36 18 51 20 17 23 13 36
29 21 27 56 42 47 24 43 19 12 31 26 28 46 58 44
26 18 31 45 50 48 31 40
有什么方法产生不重复的随机数呢?  回复  更多评论
  
# re: C/C++ 随机函数 2008-11-11 22:17 | 流浪汗
用哈希排重吧  回复  更多评论
  
# re: C/C++ 随机函数 2009-10-19 00:09 | jeancky
// 前置条件: m >= n, data 指向一个保护n个空间的int数组
// 后置条件: 在data中保存了m个不重复的,范围为0 - n 的随机数.
void genkNuth(int m, int n, int *data)
{
srand(static_cast<unsinged int> time(0));

int i, j;
for (i = 0, j = -1; i < n && m >= 0; ++i)
{
if( rand()% (n - i) < m)
{
data[++j] = i;
--m;
}
}
}  回复  更多评论
  
# re: C/C++ 随机函数 2009-10-19 00:10 | jeancky
刚才前置条件写错了:
data 指向一个保护m个空间的int数组
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: