当前位置:首页 » 编程语言 » c语言真随机
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言真随机

发布时间: 2023-01-04 15:54:51

① 如何用c语言生成真正的随机数

以使用C语言标准库中的srand()和rand()来生成随机数,同时要生成1~99之间的随机数

② C语言随机产生随机数


写了一段代码,调试通过了,你自己阅读一下。
#include<stdlib.h>
#include<time.h>
#include<stdio.h>

floatfloatRand(floatM,floatN)
{
return(rand()*1.0/RAND_MAX)*(N-M)+M;
}
voidmain()
{
srand((unsigned)time(0));//调用该语句可以保证后面的真随机
for(inti=0;i<=10;i++)
{
printf("%f ",floatRand(12.0,147.5));
}
}

③ 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语言生成真正的随机数

先使用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语言随机函数怎么用,怎么定义

随机函数就是产生数的函数,c语言里有rand(),srand()等函数。
用法
#include
#include
#include
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) ); //用系统时间当种子,对随机函数进行初始化
for( i = 0; i < 10;i++ )
{
k=rand()%100; //产生各个随机数
printf( " k=%d/n", k );
}
}
详述
rand() srand() 头文件为#include
标准C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。
rand()函数没有输入参数,直接通过表达式rand()来引用,rand()%n是产生的随机数对n取余,起到了取0到n-1之间随机数的作用;
例如可以用下面的语句来打印两个随机数: printf("Random numbers are: %i %i/n",rand(),rand());
因为rand()函数是按指定的顺序来产生整数,而未指定运行的种子,所以rand()每次使用的都是同一个种子来产生随机数序列,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是正真意义上的随机。
为了时程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。
srand( (unsigned)time( NULL ) ); 用系统时间当种子,对随机函数进行初始化,每次的系统时间不同,所以种子也就不同,产生的随机数序列也就不同。

⑥ C语言如何编程产生随机数

1、首先打开Visual stdio 2019,依次点击文件,新建,项目新建以一个空白的项目:

⑦ c语言中能否产生真正的随机数,如果可以的话,语句是什么谢谢!

这是数学问题了。
可以理解的是,计算机作为通用图灵机,只能储存有限个状态,在稳定运行的情况下,对于确定的输入,输出是确定的,无法实现“真正”的随机性。
但是,日常情况下,需要随机数时,可以用计算机实现。理由是计算机储存的状态是一个不确定的大的整数,利用某种伪随机数算法可以使输入和输出的关联性被隐藏。这时候,尽管随机数不是“真正”的,但是对于使用者来说,和“真正”的随机数看上去并没有什么区别。
C语言库函数提供伪随机数算法封装的库函数srand()/rand(),随机性并不强。只要能自己表达出硬件无关(例如要求用量子计算机实现的就不算)的随机性足够强的算法,C语言都可以实现。至于需要多少随机性,是否实用,就不是设计者能够完全决定的了。
====
[原创回答团]

⑧ c语言中如何生成1个0到1的随机数

C语言中生成1个0到1的随机数可以执行语句:float b=rand()/(RAND_MAX+1.0);

解析:

标准C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。rand()函数没有输入参数,直接通过表达式rand()来引用;

用函数rand取得的随机数除以(RAND_MAX+1.0),即可确保得到的结果在0到1之间。ISO IEC 9899 2011 (C11)标准中未规定 RAND_MAX 的具体数值。但该标准规定了RAND_MAX 的值应至少为32767。编程的时候,不应该对 RAND_MAX 的具体数值做任何假设。

(8)c语言真随机扩展阅读:

相关说明:

1、因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机。

2、为了使程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。

3、随机种子(Random Seed)是计算机专业术语,一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。

⑨ C语言随机函数

rand
和random都是伪随机函数,一般直接读取时间来做种子(sand(time))的也是不怎能随机的
我给你一个我以前写的,真正的随机:
int
myrand(void)
{
int
seed
;

asm
("rdtsc"
:
"=A"
(seed))
;

srand((unsigned
int)seed);

return
rand();
}

⑩ 怎样让c语言中的随机函数真正随机

一般就是采用设置种子的方式 实现真随机
种子往往是由当前时间
比如
srand(time(NULL));
计算机语言中,很难做到真正的随机。