内容简介:c++中,产生随机数的通用方法就是调用 srand()和 rand() 函数。值得注意的是,所有程序中“产生”的随机数其实是伪随机数,本质是调用存储在计算机里的一组无序数值序列。因此在初始化随机数种子时,如果初始化相同的种子数值,得到的“随机数”会是一样的数值。#include <iostream>
一、简介
c++中,产生随机数的通用方法就是调用 srand()和 rand() 函数。值得注意的是,所有程序中“产生”的随机数其实是伪随机数,本质是调用存储在计算机里的一组无序数值序列。
因此在初始化随机数种子时,如果初始化相同的种子数值,得到的“随机数”会是一样的数值。
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int i;
srand(1);
for (i = 0; i < 10; i++)
{
cout << rand() << " ";
}
}
第一次运行的结果。
第二次运行的结果,可以看出并不是真正意义上的随机数。
但是在运行同一次程序时,可以把这些数字看成是随机数。
二、产生随机数
关键是调用 time 函数初始化随机数种子,达到种子随变。此时需要调用 <ctime>头文件。
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
int i;
srand((unsigned)time(NULL));
for (i = 0; i < 10; i++)
{
cout << rand() << " ";
}
return 0;
}
第一次运行结果。
第二次运行结果,可以看成真正意义上的随机数。
当需要(0-x)的随机数时,只需要在 rand() % x 即可。
当需要(0-1)的小数随机数时,只需要 ( rand() % x ) /x 即可,其中 x 与精度有关,可取 x=100 小数后两位。
三、猜拳小游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
char x;
int a;
int b;
while (1) {
printf("请选择你要出的:\n");
printf("A:剪刀\n");
printf("B:石头\n");
printf("C:布\n");
printf("D:不玩了\n");
scanf_s("%c%*c", &x);
switch (x) {
case 65 | 97:
x = 4; break;
case 66 | 98:
x = 7; break;
case 67 | 99:
x = 10; break;
case 68 | 100:
return 0;
default:
printf("Error!");
getchar();
system("cls");
return 0;
break;
}
srand((unsigned)time(NULL));
a = rand() % 3;
b = (int)x + a;
printf("电脑出了");
switch (a) {
case 0:
printf("剪刀\n\n"); break;
case 1:
printf("石头\n\n"); break;
case 2:
printf("布\n\n"); break;
}
printf("你出了");
switch (x) {
case 4:
printf("剪刀\n\n"); break;
case 7:
printf("石头\n\n"); break;
case 10:
printf("布\n\n"); break;
}
printf("结果是:\n\n");
if (b == 6 || b == 7 || b == 11)printf("你赢了!\n\n");
if (b == 5 || b == 9 || b == 10)printf("电脑赢了!\n\n");
if (b == 4 || b == 8 || b == 12)printf("平局!\n\n");
system("pause>nul&&cls");
}
return 0;
}
第一次。
第二次。
代码里x的值是考虑了不重复问题。
电脑a | 玩家x | 4剪刀 | 7石头 | 10布 |
0剪刀 | 4 | 7 | 10 |
1石头 | 5 | 8 | 11 |
2布 | 6 | 9 | 12 |
Linux公社的RSS地址: https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-09/153952.htm
以上所述就是小编给大家介绍的《C++实现产生随机数与相应的猜拳小游戏》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机程序设计艺术:第4卷 第4册(双语版)
Donald E.Knuth / 苏运霖 / 机械工业出版社 / 2007-4 / 42.00元
关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。迄今已出版的完整的三卷组成了程序设计理论和实践的惟一的珍贵源泉,无数读者都赞扬Knuth的著作对个人的深远影响。科学家们为他的分析的美丽和优雅所惊叹,而从事实践的程序员们已经成功地应用他的“菜谱式”的解到日常问题上,所有人都由于Knuth在书中所表现出的博学、清晰、精确和高度幽默而对他无比敬仰。 为开始后续各卷的写作并更......一起来看看 《计算机程序设计艺术:第4卷 第4册(双语版)》 这本书的介绍吧!