仿真算法数据结构与算法 C++实现

模拟算法:仿真的全过程,通过改变数学模型参数,进一步观察状态更改这些参数发生变化正当程序。

算法思路:利用随机函数来模拟不可预测发生在自然界。(srand() 和 rand()函数生成一个随机数)

模拟算法也就是将整个过程完完整整的走一遍。题目怎么叙述的,程序就怎么执行。

实例一:猜数字

计算机随机生成一个1-100的整数,用户推測,每次推測给出不同的提示。

代码:

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
    srand(time(NULL));
    int count=0;
    int num = rand()%100 + 1;
    int guess;
    cout << "请输入推測的数值:";
    cin >> guess;
    do{
        if (guess > num){
            count++;
            cout << "您猜的值大了\n";
            cout << "请再次输入推測的数值:";
            cin >> guess;
        }else if (guess < num){
            count++;
            cout << "您猜的值小了\n";
            cout << "请再次输入推測的数值:";
            cin >> guess;
        }
    }while(guess != num);
        count++;
        cout << "猜中了!

\n";
        cout << "共猜了 " << count << " 次\n";
    return 0;
}

执行结果:

实例二:模拟掷骰子游戏

由用户自己输入參与人数和骰子的个数。然后计算机随机生成每一粒骰子的点数然后统计每一个人的点数。

代码:

#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
void play(int n);
void play(int n)
{
    int i,m=0,t=0;
    for(i=0; i<n; i++)
    {
        t=rand()%6+1;
        m+=t;
        cout << "第" << (i+1) << "粒骰子的点数为:" << t <<"\n";
    }
    cout << "总共" << m << "点\n";
}
int main()
{
    int people,numbers;
    do{
        srand(time(NULL));
        cout << "请输入參与的人数:";
        cin >> people;
        if(people == 0) break;
        cout << "请输入骰子的数量:";
        cin >> numbers;
        if(numbers == 0) break;
        for(int i=0; i<people; i++)
        {
            cout << "第 " << (i+1) << "位选手掷出的骰子情况为:\n";
            play(numbers);
        }
    }while(1);
    return 0;
}

执行结果:

注:

C++产生随机数的使用方法

1) 给srand()提供一个种子,它是一个unsigned int类型。

2) 调用rand(),它会依据提供给srand()的种子值返回一个随机数(在0到RAND_MAX之间);

3) 依据须要多次调用rand()。从而不间断地得到新的随机数;

4) 不管什么时候。都能够给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。

产生一定范围随机数的通用表示公式

要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;

要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;

要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;

通用公式:a + rand() % n。其中a开始值,n范围是一个整数。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-08-02 12:02:36

仿真算法数据结构与算法 C++实现的相关文章

算法数据结构01 /算法数据结构概述

目录 算法数据结构01 /算法数据结构概述 1. 算法 2. 评判程序优劣的方法 3. 时间复杂度 4. 数据结构 5. python数据结构性能分析 6. 总结 算法数据结构01 /算法数据结构概述 1. 算法 算法概述 算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务.一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用. 算法是独立存在的一种解决问题的方法和思想. 对于算法而言,实

[数据结构和算法]算法基本概念

算法基本概念: 算法:用来对数据的操作作描述,是对问题求解的步骤的描述.是一系列将输入转为输出的计算步骤 算法复杂度:分为时间复杂度和空间复杂度时间复杂度:算法中所有语句的频度之和用T(n)表示,记为T(n) = O(n) 常见时间复杂度递增次序:常数 O(1) , 对数阶O(log2^n) , 线性阶O(n) , 线形对数阶O(nlog2^n),平方阶O(n^2),立方阶O(n^3),指数阶O(2^n),O(n!),O(n^n)当n值增大,算法时间复杂度即变大,执行效率变低 最坏时间复杂度:最

数据结构与算法笔记 - 绪论

数据结构与算法笔记 - 绪论 1. 什么是计算2. 评判DSA优劣的参照(直尺)3. 度量DSA性能的尺度(刻度)4. DSA的性能度量的方法5. DSA性能的设计及其优化 x1. 理论模型与实际性能的差异x2. DSA优化的极限(下界) 计算机与算法 计算机科学(computer science)的核心在于研究计算方法与过程的规律,而不仅仅是作为计算工具的计算机本身,因此E. Dijkstra及其追随者更倾向于将这门科学称作计算科学(computing science). 计算 = 信息处理

数据结构及算法学习(一)

一.数据结构范畴 数据结构是一门与程序设计密切相关的课程,而程序设计就是算法+数据结构,算法即是处理数据的策略,而数据结构就是表达程序设计的模型,可以说任何一个程序设计问题,我们都可以从算法和模型出发.概而言之,数据结构就是描述了程序设计的数学模型及在其程序设计上的表示和实现. 二.基本概念 (1)数据:是计算机处理信息的载体,是其某种特定的符合表达形式的集合,它的定义范畴会随着计算机的发展而不断扩大,最初的数据范畴是数字,而现在发展到图片.音频.视频等多种形式.而其的每个个体叫数据元素.而每个

JavaScript数据结构和算法

前言 在过去的几年中,得益于Node.js的兴起,JavaScript越来越广泛地用于服务器端编程.鉴于JavaScript语言已经走出了浏览器,程序员发现他们需要更多传统语言(比如C++和Java)提供的工具.这些工具包括传统的数据结构(如链表,栈,队列,图等),也包括传统的排序和查找算法.本文主要是总结什么情况下使用何种数据结构较好,并没有细讲里面的原理和实现方式,仅仅提供给阅读过<数据结构和算法>的同学作为总结和参考笔记,如果未细究过数据结构和算法的同学,本文也可以作为一个方向,希望能引

python 数据结构与算法之排序(冒泡,选择,插入)

目录 数据结构与算法之排序(冒泡,选择,插入) 为什么学习数据结构与算法: 数据结构与算法: 算法: 数据结构 冒泡排序法 选择排序法 插入排序法 数据结构与算法之排序(冒泡,选择,插入) 为什么学习数据结构与算法: 计算机重要的几门课: 1.数据结构和算法 2.网络 3.操作系统 4.计算组成原理 数据结构与算法: 算法: 衡量算法的标准: 时间复杂度:就是程序代码执行的大概次数 小结: 时间复杂度是用来估计算法运行时间的一个式子(单位) 一般来说,时间复杂度高的算法比复杂度低的算法慢 常见的

数据结构与算法学习之(介绍)

数据结构与算法介绍 数据结构与算法的重要性 算法是程序的灵魂,优秀的程序可以在海量数据计算时,任然保持高速运算 框架和缓存技术的核心时算法 高薪 数据结构与算法的关系 数据(data)结构(Structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构 程序 = 数据结构 + 算法 数据结构是算法的基础 数据结构包括线性结构与非线性结构 线性结构 线性结构是最常用的数据结构,特点是元素之间存在一对一的线性关系 线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构 线性结构常

数据结构与算法学习(介绍)

数据结构与算法介绍 数据结构与算法的重要性 算法是程序的灵魂,优秀的程序可以在海量数据计算时,任然保持高速运算 框架和缓存技术的核心时算法 高薪 数据结构与算法的关系 数据(data)结构(Structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构 程序 = 数据结构 + 算法 数据结构是算法的基础 数据结构包括线性结构与非线性结构 线性结构 线性结构是最常用的数据结构,特点是元素之间存在一对一的线性关系 线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构 线性结构常

数据结构和算法的引入

数据结构和算法 数据结构和算法相爱相杀的故事 讲解前先给大家讲解一个关于之前打仗的故事 开始 中期 后期 原文地址:https://www.cnblogs.com/chao-sir/p/12580515.html