❶ C语言中获得随机数的方法
C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。
(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。
例如:#include<stdio.h>
#include<stdlib.h>
void main()
{
for(int i=0;i<10;i+)
printf("%d\n",rand());
} (2) 如果你要随机生成一个在一定范围的数,你可以在宏定义中定义一个random(int number)函数,然后在main()里面直接调用random()函数:例如:随机生成10个0~100的数:
#include<stdio.h>
#include<stdlib.h>
#define random(x) (rand()%x)
void main()
{
for(int x=0;x<10;x++)
printf("%d\n",random(100));
} (3)但是上面两个例子所生成的随机数都只能是一次性的,如果你第二次运行的时候输出结果仍和第一次一样。这与srand()函数有关。srand()用来设置rand()产生随机数时的随机数种子。在调用rand()函数产生随机数前,必须先利用srand()设好随机数种子(seed), 如果未设随机数种子, rand()在调用时会自动设随机数种子为1。上面的两个例子就是因为没有设置随机数种子,每次随机数种子都自动设成相同值1 ,进而导致rand()所产生的随机数值都一样。srand()函数定义 : void srand (unsigned int seed);
通常可以利用geypid()或time(0)的返回值来当做seed
如果你用time(0)的话,要加入头文件#include<time.h>例如:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define random(x) (rand()%x)
void main()
{ srand((int)time(0));
for(int x=0;x<10;x++)
printf("%d\n",random(100));
}这样两次运行的结果就会不一样了!!
❷ c语言中,有多少中生成随机数的方法,哪种最好
方法1:使用srand函数;srand函数又有两种不同的使用方法:直接输入随机数种子和使用系统时间初始化随机数种子;
例:使用系统时间输入随机数种子产生10个随机数:
#include <stdlib.h>
#include <stdio.h>
#include <time.h> /*用到了time函数,所以要有这个头文件*/
#define MAX 10
int main( void)
{
int number[MAX] = {0};
int i;
srand((unsigned) time(NULL)); /*播种子*/
for(i = 0; i < MAX; i++)
{
number[i] = rand() % 100; /*产生100以内的随机整数*/
printf("%d ", number[i]);
}
printf("\n");
return 0;
}
参考资料:srand的网络介绍
方法2:自己创建随机数
所谓的随机数其实并不是真正的随机,只是一堆数字你无法一眼看出他们的内在关系而已,所以你也可以自己弄一个复杂的表达式,生成一些数字使别人无法直接看出关系,也就可以认为那是随机数了
❸ 介绍java 产生随机数的两种方式
一个是使用Math.random();只能产生double的随机值
另一个是工作Random类的相关方法,有多种类型的随机值的获取方法
如nextBoolean()、
nextInt()等,具体可以参考API
❹ 怎样获得在一定范围内的随机数
直接的方法是
rand()
%
N
/*
不好
*/
试图返回从
0
到
N
-
1
的数字。但这个方法不好,
因为许多随机数发生器的低位比特并不随机。一个较好的方法是:
(int)((double)rand()
/
((double)RAND_MAX
+
1)
*
N)
如果你不希望使用浮点,
另一个方法是:
rand()
/
(RAND_MAX
/
N
+
1)
两种方法都需要知道
RAND_MAX,
而且假设
N
要远远小于
RAND_MAX。
RAND_MAX
在
ANSI
里
#define
在
。
顺便提一下,
RAND_MAX
是个常数,
它告诉你
C
库函数
rand()
的固定范围。你不可以设
RAND_MAX
为其它的值,
也没有办法要求
rand()
返回其它范围的值。
如果你用的随机数发生器返回的是
0
到
1
的浮点值,
要取得范围在
0
到
N
-
1
内的整数,
只要将随机数乘以
N
就可以了。
❺ 有哪些随机数算法呢
1、数值概率算法:用于数值问题的求解。所得到的解几乎都是近似解,近似解的精度
随着计算时间的增加而不断地提高。
2、拉斯维加斯算法(LasVegas):要么给出问题的正确答案,要么得不到答案。反复求解多次,可
使失效的概率任意小。
3、蒙特卡罗算法(MonteCarlo):总能得到问题的答案,偶然产生不正确的答案。重复运行,每一次
都进行随机选择,可使不正确答案的概率变得任意小。
4、舍伍德算法(Sherwood):很多具有很好的平均运行时间的确定性算法,在最坏的情况下性能很
坏。引入随机性加以改造,可以消除或减少一般情况和最坏情况的差别。
❻ C语言中获得随机数的方法是什么
可以使用库函数rand()。
rand声明于stdlib.h,其原型为
int rand(void);
功能为返回一个随机整型值。在C语言中,该值是一个正数值。
在需要限定获取到的随机数范围时,如范围要求为[m,n] m<n且m,n均为整数,可以用
rand()%(n-m+1)+m
的形式进行获取。原理为:
%为取余计算,当%k时,结果是[0,k-1]之间的数值;
于是rand()%(n-m+1) ∈ [0, n-m];
所以rand()%(n-m+1)+m ∈ [0+m, n-m+m]=[m,n]。
❼ 日常生活中有什么方便的产生随机数的方法
用随机数生成器就可以了啊!在线随机数生成器,可以随机生成你设定的随机数,可以是唯一的或者重复的,根据你指定的最小数和最大数生成相应的随机数, 在你需要抽签、随机选择的时候非常的便利。另外,你还可以把它当成别样的色子来用。
❽ 在SQL中怎么样获取随机数
1、随机小数 select rand(),
❾ 产生随机数的常用方法
简单随机抽样是一种最简单、最基本的抽样方法,简单随机抽样有两种选取个体的方法:放回和不放回,我们在抽样调查中用的是不放回抽样,常用的简单随机抽样方法有抽签法和随机数法.例:人们打桥牌时,将洗好的扑克牌随机确定一张为起始牌,这时按次序搬牌时,对任何一家来说,都是从52张牌中抽取13张牌,问这种抽样方法是否是简单随机抽样?[分析] 简单随机抽样的实质是逐个地从总体中随机抽取样本,而这里只是随机确定了起始张,其他各张牌虽然是逐张起牌,但是各张在谁手里已被确定,所以不是简单随机抽样.