c语言产生随机数的函数

5人阅读 评论(0) 收藏 举报
分类:

1.产生随机数
  (1)使用该函数首先应在开头包含头文件stdlib.h

(2)在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。

(3)rand()函数没有输入参数,直接通过表达式rand()来引用;

(4)标准C并没有规定int整数的位数,int的位数由编译器定义,例如:
       TC编译器中int是16位的,unsigned int 也是16位的,既可以表示0——65535范围内的数;
       VC中int的是32位的,unsigned int 也是32位,0——2^32 -1
       所以 unsigned int rand()产生的随机数范围还是看编译器的环境而定。
 一个小例子:
#include<stdio.h>
#include<stdlib.h>
int main()
{int n=0;
 n=rand();
 printf("n=%d\n",n);
 system("pause");
 return 0;
 }
2.产生一定范围的随机数

要让随机数限定在一个范围,可以采用模除加加法的方式。 
要产生随机数r, 其范围为 m<=r<=n,可以使用如下公式:
  rand()%(n-m+1)+m其原理为,对于任意数,0<=rand()%(n-m+1)<=n-m
于是0+m<=rand()%(n-m+1)+m<=n-m+m
m<=rand()%(n-m+1)+m<=n

3.产生可变化的随机数
srand()来设置种子

rand()来产生随机数

两个区别看我的博客

来个例子:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//初始化二维数组
void init_pane()
{
	int i = 0, j = 0;
	for (i = 0; i<4; i++)
	{
		for (j = 0; j<4; j++)
		{
			pane[i][j] = 0;
		}
	}
	srand(time(NULL));
	i = rand() % 4;
	j = rand() % 4;
	if (i == 0 || i == 2)
	{
		pane[i][j] = 2;
	}
	else
	{
		pane[i][j] = 4;
	}
}

查看评论

c中time函数的用法以及随机数的产生

1. c语言中time函数的用法,头文件time.h: 机器日历时间也就是从一个时间点(例如 1970年1月1日0时0分0秒)到现此时的秒数。 函数名称:time 函数原型:time_t tim...
  • u010141928
  • u010141928
  • 2017-04-28 20:08:23
  • 1790

C语言之实现随机数产生算法

随机数,也就是在不同的时刻产生不同的数值。在UNIX操作系统和window的操作系统上,我们知道有一个函数rand,它就是用来产生随机数的函数API接口,那么它的原理如何实现? 如果约定a1=f(s...
  • morixinguan
  • morixinguan
  • 2016-02-20 15:50:51
  • 7230

如何用c语言产生一定范围内的随机数?

srand((int)time(NULL));设定随机数种子 rand()%100;产生0-99的随机数。高级点的,假如要产生16-59之间的数,你可以这样写:rand()%44+16(这里44由59...
  • hanghangde
  • hanghangde
  • 2015-11-18 14:02:09
  • 4676

用C语言产生真正的随机数

为了测试程序,需要产生一些随机数,在网上找到一个很多人用的Demo,发现如果连续产生很多随机数的话,大部分是重复的,因为是根据系统时间来做种子的,我把程序做了一点小的修改,可以产生真正的随机数,经测试...
  • bat603
  • bat603
  • 2007-01-17 09:15:00
  • 4733

C语言如何产生一个随机数,rand函数的使用

C语言中用于产生随机数的函数是rand(),下面我用程序说明一下如何在C语言下产生随机数。 示例代码如下: #include #include #include int main(int...
  • rookie_wei
  • rookie_wei
  • 2014-08-10 01:24:11
  • 8584

c语言中生成某一范围的随机数

C语言中用rand()函数产生20-90的随机整数 20-90共有71个数字,所以是rand()%71+20 ; 用rand()生成-20-20的随机数 -20-20共有41个数字,所以是rand(...
  • u010141928
  • u010141928
  • 2017-05-09 10:14:24
  • 9792

C语言——产生一个随机字符或者随机数

#include #include #include #include void genRandomString(char* buff, int length) {     char metac...
  • Ifen_huang
  • Ifen_huang
  • 2017-10-25 16:44:33
  • 585

C语言中的随机数 srand ( ) 和 rand ( )

在C语言中,生成一个随机数,一般利用两个函数,即void srand ( unsigned int seed ) 和 int rand ( void )。其中,srand函数用于生成一个随机数种子,种...
  • XSunrise
  • XSunrise
  • 2015-04-04 18:34:06
  • 11452

linux下 C语言随机数生成方法rand(产生随机数)

#include #include #include main() { int i,j; srand((int)time(0)); for(i=0;i
  • zhanweizhao_111
  • zhanweizhao_111
  • 2014-07-16 16:32:13
  • 5114

C语言产生满足正态分布的随机数

转载自:http://blog.sina.com.cn/s/blog_70a14458010155b8.html C语言产生满足正态分布的随机数 转载▼ 标签:  c  ...
  • chengjiaojiao1991
  • chengjiaojiao1991
  • 2015-01-26 09:10:58
  • 836
    个人资料
    持之以恒
    等级:
    访问量: 687
    积分: 203
    排名: 36万+
    最新评论