random函数实现(random函数用法)
c++中的RANDOM()函数怎么使用?
方法:
rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。
rand()会返回一个范围在0到RAND_MAX(32767)之间的伪随机数(整数)。
在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。
rand()函数需要的头文件是:stdlib.h
rand()函数原型:int rand(void);
使用rand()函数产生1-100以内的随机整数:int number1 = rand() % 100;
C++中的rand( )应该小写,需要加载stdlib.h头文件
拓展资料
rand( )函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 rand()会导致相同的随机数序列被生成。
c语言里 random函数怎么实现的
rand函数是根据一个数(我们可以称它为种子)为基准,以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,
但这产生的并不是真意正义上的随机数,是一个伪随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值。
种子相同,产生的随机序列相同。这样做的好处是,方便我们产生一组固定的随机序列,用来调试程序。
C提供了srand()函数,用来设置种子,它的原形是void srand( int a)。
在调用rand函数产生随机数前,应该先利用srand()设好随机数种子,如果未设随机数种子,默认种子为1。
C# Random随机函数使用方法
在开发过程中,常常要产生随机数,如生成静态 html 网页时,文件名通常用产生随机数的方式获得,生成定单的时候,定单号也可以用产生随机数的方式获得等。
在 C# 中,一般都用 Random 产生随机数,它可任意指定产生随机数范围。Random 结合数组,可以产生一些特殊范围的随机数,以满足特殊的需要。
一、用 Random 产生指定范围随机数
1、产生指定上限的随机数(如产生100以内的随机数)
Random ran = new Random();
int n = ran.Next(100);
2、产生指定上下限的随机数(如产生100到1000的随机数)
Random ran = new Random();
int n = ran.Next(100, 1000);
二、用 Random 结合数组产生指定范围随机数
在某些情况下,随机数只能取一些特殊指定的值,如不连续的数字或指定的一些单词等,此时仅用 Random 无法达到要求,必须借住数组才能实现。实现思路大概是这样:先把这些特殊的值存到数组中,然后把数组的长度作为 Random 的上限产生随机数,此随机数正是数组的下标,根据该下标取得数组的值。
1、示例一
假如要产生不连续的随机数,代码如下:
public string GetRandom(string[] arr)
{
Random ran = new Random();
int n = ran.Next(arr.Length - 1);
return arr[n];
}
调用方法:
string[] arr = { "25", "28", "30", "50", "60" };
GetRandom(arr);
2、示例二
假如要用指定单词作为随机数的取值,代码实现跟示例一相同,所不同的仅是随机数的取值,所以只要定义一个单词数组直接调用上面代码即可。
调用方法:
string[] arr = { "red", "green", "blue", "orange", "white" };
GetRandom(arr);
以上两种产生指定随机数的方法,都通过测试,可根据实际开发需要灵活选择,一般情况都是直接用 Random 就可以了
如何用random函数产生随机数
rand()函数是产生随机数的一个随机函数。
注意:
(1)使用该函数首先应在开头包含头文件stdlib.h
#includestdlib.h(C++建议使用#includecstdlib,下同)
(2)在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。
(3)rand()函数没有输入参数,直接通过表达式rand()来引用;例如可以用下面的语句来打印两个随机数:
printf("Random numbers are: %i %i\n",rand(),rand());
(4)因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数。
(5)为了使程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。
实例:
#include stdio.h
#include stdlib.h
int main()
{
unsigned int seed; /*申明初始化器的种子,注意是unsigned int 型的*/
int k;
printf("Enter a positive integer seed value: \n");
scanf("%u",seed);
srand(seed);
printf("Random Numbers are:\n");
for(k = 1; k = 10; k++)
{
printf("%i",rand());
printf("\n");
}
return 0;
}
详细介绍一下C语言里面的随机数产生函数random怎么用
rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a).
初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,是吧。利用srand((unsign)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的.
下面讲一讲在C语言里所提供的随机数发生器的用法。现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:
1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;
2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)
3) 根据需要多次调用rand(),从而不间断地得到新的随机数;
4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。
以下是一个产生随机数的例子:
需要首先使用随机数“种子”初始化,srand函数:
#i?nclude?stdlib.h
#i?nclude?stdio.h
#i?nclude?time.h//使用当前时钟做种子
void?main(?void?)
{
int?i;
srand(?(unsigned)time(?NULL?)?);//初始化随机数
/*?打印10个随机数.?*/
for(?i?=?0;?i??10;i++?)
printf(?"?%d\n",?rand()?);
}
#include?stdlib.h
#include?time.h
main
{
int?i;
srand(time(0));?//初始化随机种子
i?=?rand();?//产生随机数
}
首先,加一个"#includestdlib.h
然后设一个变量,如j,j=rand(),就可以给j赋一个1~32767的随机数,如果要获得一个随机函数的十位(其它类似),只需令j=j%10就行.
添加头文件 #includetime.h
然后在文件中添加 srand((unsigned)time(NULL));
srand()是用来初始化随机种子数的,因为rand的内部实现是用线性同余法做的,它不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的.
上面是有个随机种子的说明及方法,为了避免重复.然后再 用 随机函数,rand() 就行了.
头文件是 stdlib.h
random() 产生随机数为 0或1
random(n) 产生随机数为 0到n之间的一个随机数
rand() 产生 0到32768之间的一个随机数
函数名: randomize
功 ?能: 初始化随机数发生器
用 ?法: void randomize(void);
程序例:
#include?stdlib.h
#include?stdio.h
#include?time.h
int?main(void)
{
???int?i;
???randomize();
???printf("Ten?random?numbers?from?0?to?99\n\n");
???for(i=0;?i10;?i++)
???????printf("%d\n",?rand()?%?100);
???return?0;
}