C++随机数产生

<span style="font-size:14px;"><span style="font-size:14px;"></pre><pre code_snippet_id="617595" snippet_file_name="blog_20150312_2_2284349" name="code" class="cpp">                                      <pre name="code" class="cpp">                                                                                    //在这里srand的作用很重要,srand()的作用是初始化随机数种子,种子的伪随机数计算的依据,
//种子相同,计算得到的随机数也是相同的,通常函数没有用到srand()而是用rand(),则是相当于调用了srand(1),
//这也解决了我上学期做最后那个记忆游戏时,每次重新运行程序时,产生的随机数都是相同的问题
//time(NULL)返回的值是自1970.1.1零点以来经过的秒数,所以每时每刻都是不同的
//
#include<stdio.h>
#include<time.h>	//time()
#include<stdlib.h>	//srand()+rand()
int main()
{
	srand(time(NULL));
	//产生[a,b]
	int m = rand() % a + b;
	printf("%d\n", m);
}</span></span>
<span style="font-size:14px;"><span style="font-size:14px;">//主要是生成随机数,但是rand()函数生成随机数区间为[0,RAND_MAX],
//RAND_MAX至少为32767(2e15-1),并且在不同条件下数值可能不同
//这里作者用了放大的方式将区间放大(代码来自刘汝佳)
#include<stdio.h>
#include<time.h>	//time()
#include<stdlib.h>	//srand()+rand()
int n = 100, m = 100000;

//这个函数是取得[0,1]区间内的实数,之后在下一个函数中扩大(n-1)倍在取整
double random()
{
	return (double)rand() / RAND_MAX;
}

int random(int m)
{
	return (int)(random()*(m - 1) + 0.5);
}

int main()
{
	srand(time(NULL));
	printf("%d %d\n", n, m);
	for (int i = 0; i < m; i++)
	{
		if (rand() % 2 == 0)
		{
			printf("A");
		}
		else
		{
			printf("B");
		}
		int X, Y;
		for (;;)
		{
			X = random(n) + 1;
			Y = random(n) + 1;
			if (X != Y)
			{
				break;
			}
		}
		printf("%d %d\n", X, Y);
	}
	return 0;
}</span></span>
				
时间: 2024-08-27 01:22:25

C++随机数产生的相关文章

shell系列生成随机数的方法

一: RANDOM echo $RANDOM RANDOM的随机数是有范围的1--32767,一般用它是可以被破解的 1.2  生成八位数的随机密码: echo $(($RANDOM+11111111)) 二:MD5sum 随机加密方法 生成的密码较长 取9位数密码: echo $RADDOM |md5sum|cut -c 2-9 三:通过openssl产生随机数 [[email protected] tmp]# openssl rand -base64 8 hInfIvtfOSk= [[ema

javaScript随机数取值方法

Math.random()方法返回0到1之间的一个随机数,不包括0和1 如若想取的一个范围的随机数可套用下面的公式: 一.X+开始数-1=结束数 二.Math.floor(Math.random()*X+开始数) 注:Math.floor()向下舍入,去掉小数点后数 例: //若想取的5到10之间的数,套用公式:①X+开始数-1=结束数//可得出X为6//②Math.floor(Math.random()*X+开始数)//for(var i=0;i<10;i++){ document.write

重复10个1~60顺序且不重复的随机数

$flag = 1; for ($i = 0; $i < 10; $i++) {     $data['mobile'] = $evaluate_mobile;     //随机时间     $second = rand($flag, 6 * ($i + 1));//重复10个1~60顺序且不重复的随机数     $flag = $second + 1;//加1是未免与上一结果重复     $data['second'] = $second;     $result[] = $data; }

r语言之生成随机序列,随机数生成函数及用法

(1)生成正态分布随机数: rnorm(n,mean,sd)     其中,n表示生成的随机数个数,mean表示正态分布均值,sd表示正态分布标准差 > rnorm(5,0,2)[1] -5.31147765 0.09634197 0.35276104 -1.94548466 0.54533883 (2)生成均匀分布随机数: runif(n,min,max)     其中,n表示生成的随机数个数,min表示均匀分布最小值,max表示均匀分布最大值 > runif(5,0,10)[1] 9.74

随机数和随机数种子(转)

在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器. 有关如何产生随机数的理论有许多,如果要详细地讨论,需要厚厚的一本书的篇幅.不管用什么方法实现随机数发生器,都必须给它提供一个名为“种子”的初始值.而且这个值最好是随机的,或者至少这个值是伪随机的.“种子”的值通常是用快速计数寄存器或移位寄存器来生成的. 下面讲一讲在C语言里所提供的随机数发生器的用法.现在的C编译器都提供了一个基于ANSI标准的伪随机数发

六爻预测等各种预测术的本质探讨之随机数猜想

对于各类预测术,比如六爻术,源于周易八卦.大家对预测术的观点泾渭分明,要么很相信,要么很不屑.或者有些人认为信则有不信则无. 当然我本人是信奉现代科学的,不过预测术确实有不可思议的地方,对过去和未来的分析不是简单的一句"巧合,概率论"能说的过去的.现经过本人的一番分析,试图对各类预测术的本质来个大起底. 其实,预测术不神奇,更不是有什么鬼神之力.而且也不能说古人比现在人更聪明.预测术的外圈是遵循一定规律的一整套规则,这些规则是古代在不停的经验总结中逐步完善的.换句话说,只要你自己能遵循

SQL Server生成指定范围内的随机数

在开发中很多时候,我们都会遇到这种需要生成一个指定范围随机数的情况.而且在很多语言中比如Java.C#.SQl等,都会有一个函数生成一个类似于0.234273983423789的随机小数,而所有的随机数都是通过这个最基本的随机数(0.234273983423789)变化过来的. 下面我说一下生成指定范围随机数的思路,比如我要生成一个100-999范围内的随机数,我就要保证我写的生成随机数的表达式所生成的值,最大是999,最小是100.还有就是要明白一个数学里的小道理,0.99去乘一个数字所得的结

Spring Boot? 配置文件详解:自定义属性、随机数、多环境配置等

自定义属性与加载 我们在使用Spring Boot的时候,通常也需要定义一些自己使用的属性,我们可以如下方式直接定义: application-dev.yml com.didispace.blog: name: 程序猿DD title: Spring Boot教程 desc: ${com.didispace.blog.name}正在努力写<${com.didispace.blog.title}> # 随机字符串 value: ${random.value} # 随机int number: ${

牛客网华为机试训练第3题 明明的随机数

今天花了一下午才把明明的随机数这个搞明白,期间和牛客网的编译器殊死搏斗.一直发现在本地编译器运行成功,但是在牛客上的老师不能通过.整的十分的恼火和焦躁.后来看到了相同的问题,才发现解决之道. 时间限制:1秒 空间限制:32768K 热度指数:222608 本题知识点: 数组 算法知识视频讲解 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不

C#生成验证码之四位随机数

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10 11 namespace Wi