当前位置:C++技术网 > 资讯 > 随机数的深入浅出

随机数的深入浅出

更新时间:2015-08-02 14:52:50浏览次数:1+次

    其实,我也是昨晚刚开始接触的随机数,当时在看C语言游戏设计,然后便有一个函数randomize();我当时看的一愣一愣的,由于我也是个小白,便立刻度娘,看的稀里糊涂,在看了下凌风学长的随机小数生成原理,懂了一点,谁知道今天又让我碰到,还被我钻研出来了,学习就是这么操蛋。我们开始讲解,其实,我当时百度后,我就觉得,randomize()它的运行原理就是相当于srand()和rand()的组合,结果还真是,凌风学长总结的差不多了,那我就从数学的角度分析下,假设从0~9总共有10个数,我们就将rand()%10,对不?为什么?任何的整数(不讨论小数),它模多少值就在这个模以内也就是说,取余多少,值在这个以内,如果我们所取数的范围在0~10,总共有11个数,我们就只要rand()%11就ok!


#include "stdio.h"
#include "math.h"

int main()
{
	int index=0,times=0;
	while(times!=10)
	{
		index=++index%3;
		times++;
		printf("%d  ",index);
	}
	return  0;
}
    
#include "stdio.h"
#include "stdlib.h"
#include "time.h"

int main()
{
	int index=0,times=0;
	while(times!=10)
	{	
		index=rand()%3;
		times++;
		printf("%d  ",index);
	}
	return  0;
}
 
刚刚我们介绍的是范围的理解,看看这两段代码,相信你也看出来了,所谓的随机数产生器其实也能用我们最常见,普通的代码代换,也就是第一段代码,只不过,它是由自己本身也就是index,来实现的。