C语言连续生成多个随机数实现可限制范围

生成随机数

在现实中我们经常用到随机数,可怎么实现呢,且听小乔慢慢道来。
在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数

int void rand()

可是却发现生成的数字都一样。

这是因为rand()
函数产生的随机数是伪随机数,是根据一个数值按照某个公式推算出来的,而这个数值由一个公式计算得来,这个值在电脑启动后是不变的。在这里我将这个公式比作一个种子,现在我们就要修改这个种子。

常用的方法是用 srand 修改种子。

srand用法

void srand(unsigned int seed)

为了使种子是不断变化的 我们使用到了时间函数 time() (要在 time.h 头文件下使用)

srand((unsigned int )time(NULL) );

此时看一下代码及运行结果

int main()
{
	int a;
	srand((unsigned int)time(0));//修改种子
	for (size_t i = 0; i < 10; i++)

	{
		a = rand();
		printf("%d ", p);

	}
}

输出的结果不相同了
这是因为 time(NULL)是随毫秒变化的,种子变化极快,所以成无序性。

限制范围

设范围区间为(max,min);
那么只需 rand%(max-min+1)+min 即可
代码

int main()
{
	int a;
	srand((unsigned int)time(0));//修改种子
	for (size_t i = 0; i < 5; i++)

	{
		a = rand();
		int p = a % (100 - 1+1) + 1;//设置范围 1-100
		printf("%d ", p);
		Sleep(1500);

	}
}

到此这篇关于C语言连续生成多个随机数实现可限制范围的文章就介绍到这了,更多相关C语言连续多个随机数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • c语言随机数函数示例

    void srand( unsigned int seed );head file is <stdlib.h>RemarksThe srand function sets the starting point for generating a series of pseudorandom integers. To reinitialize the generator, use 1 as the seed argument. Any other value for seed sets the g

  • C语言中用于产生随机数的函数使用方法总结

    在UNIX操作系统和window的操作系统上,我们知道有一个函数rand,它就是用来产生随机数的函数API接口,那么它的原理如何实现? 如果约定a1=f(seed),an+1=f(an),那么可以得到一个序列a1,a2,a3..an,那么要制作一个伪随机函数rand,只需要让它每调用一次就返回序列的下一个元素就行.其实就是相当于第1次调用rand返回a1,第2次返回a2,-,第n次返回an,这样每次返回的数值都不一样,也就是相当于随机数了.但是其实不是真正的随机数,真正的随机数是使用物理现象产生

  • C语言连续生成随机数的实现方法

    srand()设置随机数种子 rand()生成0 - RAND_MAX范围的随机数 加上其他运算,我们能够生成任意范围的随机数 .rand()是将随机数表里面的随机数顺序输出.所以,如果不设定随机数种子,生成的随机数是固定的. int main() { char str[10] = {0}; int j =0; while(j < 10) {//生成随机的三个数字 int i = strlen(str); for (;i < 3;i++){ str[i] = '0' + rand() % 10

  • C语言/C++中如何产生随机数

    C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,和time()函数. 需要说明的是,iostream头文件中就有srand函数的定义,不需要再额外引入stdlib.h;而使用time()函数需要引入ctime头文件. 使用rand()函数获取一个随机数如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间.RAND_MAX定义在stdlib.h, 其值为2147483647. 例子

  • C语言随机数生成教程(rand和srand用法)

    在实际编程中,我们经常需要生成随机数,例如,贪吃蛇游戏中在随机的位置出现食物,扑克牌游戏中随机发牌. 在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为: int rand (void); void 表示不需要传递参数. C语言中还有一个 random() 函数可以获取随机数,但是 random() 不是标准函数,不能在 VC/VS 等编译器通过,所以比较少用. rand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数. RAN

  • C语言编程中生成随机数的入门教程

    语言产生随机数是一个常见的编程功能任务,当然这个也不难,调用两三个函数就出来了,但是你知道这些函数具体是起到怎样的作用,并且是它们是如何产生随机数的吗? 几个概念 随机数:数学上产生的都是伪随机数,真正的随机数使用物理方法产生的. 随机数种子:随机数的产生是由算术规则产生的,srand(seed)的随机数种子不同,rand()的随机数值就不同,倘若每次的随机数种子一样,则rand()的值就一样.所以要产生随机数,则srand(seed)的随机数种子必须也要随机的. 用srand()产生随机数种子

  • C语言连续生成多个随机数实现可限制范围

    生成随机数 在现实中我们经常用到随机数,可怎么实现呢,且听小乔慢慢道来. 在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数 int void rand() 可是却发现生成的数字都一样. 这是因为rand() 函数产生的随机数是伪随机数,是根据一个数值按照某个公式推算出来的,而这个数值由一个公式计算得来,这个值在电脑启动后是不变的.在这里我将这个公式比作一个种子,现在我们就要修改这个种子. 常用的方法是用 srand 修改种子. srand用法 void

  • java生成指定范围随机数的多种代码

    生成指定范围内的随机数这个是最常用的技术之一,程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例. 问题往往类似于: 如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100. 或者是: 如何随机生成随机的3位整数? 等等-- 以 Java 语言为例,我们观察其 Random 对象的 nextInt(int) 方法,发现这个方法将生成 0 ~ 参数之间随机取值的整数.例如(假设先有 Random rand = newRando

  • Go语言实现互斥锁、随机数、time、List

    Go语言实现互斥锁.随机数.time.List import ( "container/list" "fmt" "math/rand" //备注2:随机数的包 "sync" //备注1:异步任务的包 "time" ) type INFO struct { lock sync.Mutex //备注1:异步锁 Name string Time int64 } var List *list.List = list

  • C#生成互不相同随机数的实现方法

    本文实例讲述了C#生成互不相同随机数的实现方法,在进行C#应用程序设计时非常具有实用价值.本文详细讲述了其功能的实现过程.分享给大家供大家参考之用.具体方法如下: 一般来说,用C#生成足够随机的互不相同的随机数 Dotnet.Frameword中提供了一个专门产生随机数的类System.Random,计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了. 在使用随机数时,要先初始化

  • php生成不重复随机数、数组的4种方法分享

    下面写几种生成不重复随机数的方法,直接上代码吧 复制代码 代码如下: <?php define('RANDOM_MAX', 100); define('COUNT', 10); echo 'max random num: '.RANDOM_MAX, ' ;result count:'.COUNT, '<br/>'; invoke_entry('rand1'); invoke_entry('rand2'); invoke_entry('rand3'); invoke_entry('rand

  • 一个php生成16位随机数的代码(两种方法)

    分享一个php生成16位随机数的代码,php生成随机数的二种方法. 方法1 复制代码 代码如下: <?php $a = mt_rand(10000000,99999999); $b = mt_rand(10000000,99999999); echo $a.$b; 方法2: <?php $a = range(0,9); for($i=0;$i<16;$i++){ $b[] = array_rand($a); } // www.yuju100.com var_dump(join("

  • javascript根据时间生成m位随机数最大13位

    根据时间生成m位随机数,最大13位随机数,并且不能保证首位不为0 function ran(m) { m = m > 13 ? 13 : m; var num = new Date().getTime(); return num.toString().substring(13 - m); } console.log(ran(5)); 根据Math的random函数生成的随机数截取m位,生成的随机数最大不超过16位,能保证首位不为0 function rand(m) { m = m > 16 ?

  • C#生成不重复随机数列表实例

    复制代码 代码如下: /// <summary>        /// 生成不重复随机数列表实例        /// </summary>        /// <param name="count">不重复数数量</param>        /// <returns>不重复数列表</returns>        private static List<int> GetRandomList(int

  • C语言连续子向量的最大和及时间度量实例

    本文实例分析了C语言连续子向量的最大和及时间度量,分享给大家供大家参考之用.具体方法如下: #include <stdio.h> #include <time.h> #include <stdlib.h> #define SCALE 3000 int maxnum(int a, int b); int main(int argc, char const *argv[]) { FILE *fp; fp = fopen("maximum.in", &qu

随机推荐