C++产生随机数
C++ 产生 随机数
2023-09-14 09:07:58 时间
说明
//在这里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);
}
//主要是生成随机数。可是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;
}
相关文章
- C++参数传递方式
- C++学习5-面向对象编程基础(构造函数、转换构造、静态数据成员、静态成员函数、友元)
- C++问题-Qt Visual Studio Add-in
- C++primer笔记之顺序容器
- C/C++基础讲解(九十二)之游戏篇(推箱子游戏)
- C/C++基础讲解(十五)之数据结构篇链表操作
- Open3D(C++) 计算点云模型的表面积和体积
- Open3D (C++) KD tree的使用——可视化近邻搜索点之间的连线
- C++设计模式:抽象工厂模式
- 【华为OD机试 2023】 删除重复数字后的最大数字(C++ Java JavaScript Python)
- C++面向对象小练习
- C++每日面试之#pragma pack(n)
- C++: string的大小写转换
- C/C++产生随机数
- C/C++产生随机数
- C++ 数字
- 【C++提高】单个类模板语法详解