当前位置: 代码迷 >> C语言 >> 随机数问题求教
  详细解决方案

随机数问题求教

热度:314   发布时间:2006-07-01 17:41:57.0
随机数问题求教

编程解决一付扑克牌洗牌问题!

可能要用到rand,但是它会产生一样的数啊!

搜索更多相关的解决方案: 随机数  

----------------解决方案--------------------------------------------------------
因为种子都是相同的,所以每次运行产生的数是相同的

给你个动手的机会,初始化种子可用srand()或者randmize()

自己查函数说明看吧 加深下印象

----------------解决方案--------------------------------------------------------
以下是引用feng1256在2006-7-1 17:44:51的发言:
因为种子都是相同的,所以每次运行产生的数是相同的

给你个动手的机会,初始化种子可用srand()或者randmize()

自己查函数说明看吧 加深下印象

很感谢你提供的说明,但是我自己写了一段程序,却不能实现!
请看
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
int i,j,num[52],n;
time_t t;
n=0;
srand((unsigned) time(&t));
printf("Ten random numbers from 0 to 99\n");
for(i=0; i<52; i++)
{
num[i]=rand() % 53;
printf("%-4d",num[i]);
}
for (i =0 ; i < 51 ; i ++)
for (j =i+1; j <52 ; j++)
if (num[i] == num[j] )
{
n++;
printf("有相同的随机数!!! num=%d 有%d个 \n",num[i],n);
}
return 0;
}

还有,种子何解???


----------------解决方案--------------------------------------------------------
以下是引用lxs5216在2006-7-1 17:50:13的发言:

很感谢你提供的说明,但是我自己写了一段程序,却不能实现!
请看
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
int i,j,num[52],n;
time_t t;
n=0;
srand((unsigned) time(&t));
printf("Ten random numbers from 0 to 99\n");
for(i=0; i<52; i++)
{
num[i]=rand() % 53;
printf("%-4d",num[i]);
}
for (i =0 ; i < 51 ; i ++)
for (n=0,j =i+1; j <52 ; j++)
if (num[i] == num[j] )
{
n++;
printf("有相同的随机数!!! num=%d 有%d个 \n",num[i],n);
}
return 0;
}

还有,种子何解???


----------------解决方案--------------------------------------------------------

按说应该不会产生相同的随机数啊!

但是却产生了相同的随机数了,这个程序就为印证啊!

种子是什么意思??


----------------解决方案--------------------------------------------------------
看种子的意思

[CODE]

void srand(unsigned int seed)
{
next=seed;
}

int rand(void)
{
next=next*1103515245+12345;
return (unsigned int)(next/65536)%32768;
}

[/CODE]
----------------解决方案--------------------------------------------------------
什么叫随机? 随机就有可能产生相同的!
----------------解决方案--------------------------------------------------------
那如果是这样的话,我该如何编写这样的洗牌问题???
----------------解决方案--------------------------------------------------------
  相关解决方案