⑴ 生成100比特的伪随机数算法。用c语言做出来
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a;
srand((unsigned)time(NULL));
a = rand() % 100;
}
⑵ C语言中怎样生成随机数
C语言生成
随机数
的
函数
为rand。
1
声明:
int
rand(void);
2
头文件:
stdlib.h
3
功能:
获取一个非负随机
数值
。
4
注意事项:
a)
rand是
伪随机数
,由一个种子计算得来。
如果种子相同,每次启动
程序
,获取到的
随机序列
是固定的。
可以通过srand设置当前时间作为种子,使随机效果更好。
srand(time(NULL));
b)
要获取[m,n]范围的随机数,可以使用代码
rand()%(n-m+1)+m
⑶ c语言,如何产生随机数
具体代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h> //用到了time函数
int main()
{ int i,number;
srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
for (i=0; i<50; i++)
{
number = rand() % 101; //产生0-100的随机数
printf("%d ", number);
}
return 0;
}
有以下几种情况:
(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。
(2) 如果你要随机生成一个在一定范围的数,你可以在宏定义中定义一个random(int number)函数,然后在main()里面直接调用random()函数:
例如:
rand()%100是产生0-99的随机数。
(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>
⑷ 关于c语言伪随机数中的一个生成问题,多谢!!!
time(NULL)返回当前时间时间戳,也就是说你每秒执行都会返回不一样的值,而如果不用的话srand默认参数是1,srand通过这个参数生成的是一个伪随机数,根据你传入的参数可以计算出随机值
⑸ C语言怎样产生一定范围的随机数
在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,可以称它为种子。
为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数。
C语言产生一定范围的随机数的源代码如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
for(i=0; i<10; i++) //随机产生10个数。
{
printf("%d ", rand());
}
return 0;
}
(5)c语言生成伪随机数扩展阅读
1、如果要随机生成一个在一定范围的数,你可以在宏定义中定义一个random(int number)函数,然后在main()里面直接调用random()函数。
2、在对rand()的前三次调用中,并且此后得到的返回值仍然是在对rand()的第一批调用中所得到的其余的返回值。因此,只有再次给srand()提供一个随机的“种子”值,才能再次得到一个随机数。
⑹ C语言生成随机数
C语言里随机数名叫伪随机,靠取时间很小的某位来的,没有其他的,接受吧
⑺ 如何用C语言生成真正的随机数
先使用srand函数以当前时间做一个种子,然后再随机
如:
#include<time.h>//用到了time函数
#include<stdlib.h>
#include<stdio.h>
intmain()
{
inti,number;
srand((unsignedint)time(NULL));//用时间做种,每次产生随机数不一样
for(i=0;i<10;i++)//产生10个随机数
{
number=rand()%12+1;//产生1-13的随机数
printf("%d ",number);
}
return0;
}
⑻ C语言用rand产生的是伪随机数么
是的。rand生成的数,只要种子是确定的,生成的随机数就是确定的。同一个种子生成的随机数之间是有关系的,并不是独立的。
⑼ 如何在C语言中生成一定范围内的随机数
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
srand()((int)time(NULL));设定随机数种子
rand()()%100;产生0-99的随机数。高级点的,假如要产生16-59之间的数,你可以这样写:rand()()%44+16(这里44由59-16+1得到)。其他情况如法炮制!
各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,当序列足够长,这组数值近似满足均匀分布。如果计算伪随机序列的初始数值(称为种子)相同,则计算出来的伪随机序列就是完全相同的。这个特性被有的软件利用于加密和解密。加密时,可以用某个种子数生成一个伪随机序列并对数据进行处理;解密时,再利用种子数生成一个伪随机序列并对加密数据进行还原。这样,对于不知道种子数的人要想解密就需要多费些事了。当然,这种完全相同的序列对于你来说是非常糟糕的。要解决这个问题,需要在每次产生随机序列前,先指定不同的种子,这样计算出来的随机序列就不会完全相同了。你可以在调用rand()函数之前调用srand( (unsigned)time( NULL ) ),这样以time函数值(即当前时间)作为种子数,因为两次调用rand函数的时间通常是不同的,这样就可以保证随机性了。你也可以使用srand函数来人为指定种子数。
参考资料:http://..com/question/132839023.html
⑽ c语言 关于产生随机数
/**
*编译器:vs2010
*时间:2017年11月7日
*@fencaide
*/
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
intmain(void)
{
intanswer=0;
for(inti=0;i<10;i++){
srand((unsigned)time(NULL));
answer=rand()%9000;
printf("%d ",answer);
Sleep(2000);
}
getchar();
getchar();
return0;
}
人家的随机是相对于这个种子的情况下,不同的种子产生的结果当然不具备随机性,而且伪随机不是真随机。也就是对于一个种子多次rand是具备“随机性”的,而因为是伪随机,多个种子多次随机自然不是随机的,下面这段话我 别人的哈
rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数