MATLAB知识点:循环语句的经典练习题

 ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​

MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili


节选自​第4章:MATLAB程序流程控制

下面我们来看几道典型例题。

(1)质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。给定任意一个大于100的自然数n(例如n=135389),请判断n是否为质数。

思路:我们可以遍历从2到n-1的所有整数,检查它们是否能够整除n。如果找到任何一个能够整除n的整数,那么n就不是质数;否则,n就是质数。

n = 135389;  %要判断的数n
is_prime = true;   % 初始化标志变量is_prime为true,此时代表n是质数
for ii = 2:n-1  % 思考:如何缩小循环遍历的范围来提高代码运行的效率,留作本章课后习题% 检查ii是否能够整除nif mod(n, ii) == 0% 如果能整除,则n不是质数,将标志变量is_prime重新赋值为falseis_prime = false;break;  % 跳出循环end
end
disp(is_prime)

(2)一副扑克牌有54张牌(桃杏梅方四种花色的A 2 3 4 5 6 7 8 9 10 J Q K加双王),假设三名玩家玩斗地主,其中地主有20张牌,两个农民各17张牌。若你是其中一名玩家,且你每次都选择当农民。,请编程模拟以下场景:先玩第一把,若这把手上有炸弹则这把玩完后下场换其他人玩;若手上没有炸弹则继续玩第二把,直到玩到第k把时手上有炸弹,此时玩完这一把后下场换其他人玩。请输出你模拟的k。注意:假设每把牌都洗的足够的混乱,确保为无序;有炸弹是指手上有双王或者有四张相同的牌例如4张3。(这里的k表示你作为农民首次出现炸弹的轮数,由于发牌过程是随机的,那么k肯定也是一个随机的变量,即每次模拟的k可能都不相同。比如运气好可能第一把就出现了炸弹,此时k等于1,运气不好可能需要好多把才会出现炸弹,此时k较大)。

思路:由于循环的次数不定,因此我们可以使用while循环来不断模拟游戏的进行,直到满足退出的条件。在每一轮中,我们作为农民会随机抽取17张牌,并检查是否有双王或者普通的炸弹。如果有任何一种炸弹,就会退出循环,否则会增加游戏的轮数,继续下一轮。最后,我们可以输出模拟的k值,表示玩到第k把时手上有炸弹。

% 用1至13分别代替A 2 3 ... J Q K, 重复4次表示四种花色;用14和15分别代表大小王
poke = [repmat(1:13,1,4),14,15];  % 生成一副扑克牌
k = 1;  % 玩了多少把游戏 
while 1% 从1:54中随机抽取17个数,表示17张牌对应的下标idx = randperm(54,17); % randperm函数的用法:《第3章:课后习题讲解中拓展的函数》% 发牌并排序(排序后牌面看起来更清楚一点,事实上不排序也不影响下面的代码)p = sort(poke(idx));% 检查是否有大小王v1 = all(ismember([14,15],p));  % v1为true表示有双王,为false表示没有双王% 检查是否有普通的炸弹v2 = false; % v2表示是否有普通的炸弹,先假设没有,因此初始化为falsefor ii = 1:13if sum(p == ii) == 4  % 如果有四张一样的牌v2 = true;  %  % 将v2赋值为ture,表示有普通的炸弹break  % 只要有一个普通的炸弹就可以退出for循环了endendif v1 || v2  % 如果有王炸或者普通炸弹就可以退出while循环break  % 跳出while循环elsek = k + 1;  % 没有炸弹就再玩一把end
end
disp(k)  % 输出首次出现炸弹时玩的轮数

在本题中,既用到了while循环又用到了for循环,且出现了两个不同用途的break,大家课后一定要认真消化,并尝试自己求解这个例题(当然,判断是否存在普通的炸可以不用循环语句,我们在第三章的课后习题中有讲解,详情请看第三章课后习题挑战篇的Q5)。

MATLAB课程第3章课后习题讲解——数学建模清风老师_哔哩哔哩_bilibili

另外,本题还能继续扩展下去,例如重复上面的模拟过程N次(N可以设置得大一点,例如N等于10万),得到这N次模拟结果的k,并计算这N次k的平均值,这个平均值就能表示你作为农民首次出现炸弹所需的期望轮数。这个拓展的问题将留作本章最后的课后习题,我们下一道题也会介绍类似的思想。

(3)一只失明的小猫掉进山洞里,山洞有三个门,其中进入第一个门后走2h后可以回到地面,进入第二个门后走4h会回到原始的出发点,进入第三个门后走6h还是回到原始的出发点。假设小猫每次都随机地选择这三个门中的一个进入,求小猫走出山洞的期望时间?

思路:在上一章的课后习题中,我们见到过类似的题目,当时我们介绍过蒙特卡罗模拟这种方法,蒙特卡罗模拟将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样来获得问题的近似解。我们可以模拟这个过程N次(N一般要设置的大一点,例如让N等于10万),每次模拟中我们都让一只猫走出山洞,并记录下这只猫所需的时间。接下来我们只需要对这N次模拟结果得到的时间计算平均值,就能估计小猫走出山洞的期望时间。

N = 100000;  % 设置模拟的次数
T = zeros(N,1); % T用来存储每次模拟得到的时间
for ii = 1:N  % 开始进行 N 次模拟t = 0; % 初始化时间while 1  % 开始模拟小猫走出山洞的过程choose = randi(3); % 随机选择第几个门if choose == 1  % 选择第1个门t = t + 2; % 走2小时回到地面break % 小猫成功走出山洞,结束模拟elseif choose == 2  % 选择第2个门t = t + 4; % 走4小时回到原始出发点else  % 选择第3个门t = t + 6; % 走6小时回到原始出发点endendT(ii) = t;  % 记录每次模拟得到的时间
end
mean(T) % 计算所有模拟结果的平均值,即小猫走出山洞的期望时间的估计

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/725868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贷齐乐错误的waf引起的SQL注入漏洞复现

君衍. 一、环境介绍1、第一道WAF2、第二道WAF 二、环境部署1、模拟源码2、连接数据库源码3、数据库创建4、测试 三、源码分析1、模拟WAF2、注入思路3、PHP下划线特性4、完成假设 四、联合查询注入1、测试回显字段2、爆出库名3、爆出表名4、爆出表下的列名4、爆出flag 一、环境介…

CleanMyMac X4.14.7永久免费Mac电脑清理和优化软件

CleanMyMac X 是一款功能强大的 Mac 清理和优化软件,适合以下几类人群使用: 需要定期清理和优化 Mac 的用户:随着时间的推移,Mac 设备上可能会积累大量的无用文件、缓存和垃圾,导致系统运行缓慢。CleanMyMac X 的智能扫…

【Java JVM】Class 文件

Java 的口号 “一次编写, 到处运行 (Write Once, Run Anywhere)” 的基础: JVM 和 所有平台都统一支持的程序存储格式 – 字节码 (Byte Code)。 只要在对应的平台安装对应的 JVM, 将我们编写的源码编译为 Class 文件, 就能达到了一次编写, 导出运行的目标, 中间的所有细节由不同…

11.WEB渗透测试-Linux系统管理、安全加固(上)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:10.WEB渗透测试-Linux基础知识-Linux用户权限管理(下)-CSDN博客 进…

【论文笔记】Language Models are Few-Shot Learners

Language Models are Few-Shot Learners 本部分是 GPT-3 技术报告的第一部分:论文正文、部分附录。 后续还有第二部分:GPT-3 的广泛影响、剩下的附录。 以及第三部分(自己感兴趣的):GPT-3 的数据集重叠性研究。 回顾…

部署运维 防火墙,进程 常用命令

防火墙: 1. 查看是否安装了firewalld sudo systemctl status firewalld 查看防火墙状态或者sudo systemctl is-active firewalld 查看防火墙是否是开启状态 2. 开放6379port sudo firewall-cmd --add-port6379/tcp --permanent 刷新防火墙 sudo firewall-cmd --reload 3…

产品展示型wordpress外贸网站模板

孕婴产品wordpress外贸网站模板 吸奶器、待产包、孕妇枕头、护理垫、纸尿裤、孕妇装、孕婴产品wordpress外贸网站模板。 https://www.jianzhanpress.com/?p4112 床品毛巾wordpress独立站模板 床单、被套、毛巾、抱枕、靠垫、围巾、布艺、枕头、乳胶枕、四件套、浴巾wordpre…

职场中的团队合作与个人成长

在职场中,团队合作和个人成长是两个不可或缺的要素。一个优秀的团队可以带来更高的工作效率和更好的业绩,而个人的成长则是职场成功的关键。本文将探讨如何在职场中实现团队合作与个人成长的平衡。 一、团队合作的重要性 在职场中,团队合作是…

【Ubuntu】将多个python文件打包为.so文件

1.为什么要将python打包为.so文件? 保护源码 2.实战例子 a.安装相应的包 pip install cython 验证安装是否成功 cython --version b.实战的文件目录和内容 hi.py # This is a sample Python script.# Press ShiftF10 to execute it or replace it with your…

线性代数 --- 特征值与特征向量

特征值与特征向量 已知任意向量x,现有矩阵A对x进行操作后,得到新的向量Ax。这就好比是自变量x与函数f(x)的关系一样,向量x通过类似“函数”的处理得到了一个新的向量Ax。这个新的向量可能和原向量x方向相同,也可能不同(事实上大多…

HUAWEI华为MateBook D 14 2022款 12代酷睿版集显(NbF-16)工厂模式原厂Windows11预装OEM系统,含F10智能还原功能

系统下载链接:https://pan.baidu.com/s/1kgJvwSq5eOdme7J9PDXIxQ?pwdxvz8 提取码:xvz8 华为笔记本电脑原装出厂系统工厂安装包,含F10功能、系统自带所有驱动、系统属性专属联机支持标志、Office办公软件、华为电脑管家等预装程序&#xf…

刷怪日记-01背包理论问题(二维矩阵实现)

01背包理论问题(二维矩阵实现) 题目 解题思路 确定dp数组以及下标的含义 本题采用二维数组进行解题,那么dp[i] [j]表示从下标0-i的物品任意选择,放进容量为j背包,价值总合最大是多少 i 表示物品第几个物品,j 表示背包容量大小 …

ORACLE 如何使用dblink实现跨库访问

dbLink是简称,全称是databaselink。database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。在任何分布式环境里,database都是必要的。另外要注意的是database link是单向的连接。在创建dat…

LeetCode刷题---填充每个节点的下一个右侧节点指针 II

题解:LeetCode题解 解题思想: 通过创建辅助指针来解决该问题 当当前节点cur不为空的时候,创建辅助节点dummy,使其一直作为每一层的第一个节点的前一个节点。 创建辅助指针pre,pre初始指向dummy,之后通过pre来填充当前层…

2.2 评估方法 机器学习

我们若有一个包含m个样例的数据集,若我们既需要训练,也需要测试,我们该如何处理呢?下面是几种方法: 2.2.1 留出法 “留出法”直接将数据集D划分为两个互斥的集合,其中一个作为训练集S,另一个作…

双指针算法(1)

目录 283.移动零 一、题目描述 二、思路解析 三、代码 1089.复写零 一、题目描述 二、思路解析 三、代码 202.快乐数 一、题目描述 二、思路解析 三、代码 11.盛水最多的容器 一、题目描述 二、思路解析 三、代码 283.移动零 一、题目描述 OJ题目链接&#xf…

python基于django的药品进销存管理系统elsb2

本系统是通过面向对象的python语言搭建系统框架,通过关系型数据库MySQL存储数据。使用django框架进行药店药品的信息管理,用户只需要通过浏览器访问系统即可获取药店药品信息,并可以在线管理,实现了信息的科学管理与查询统计。本文…

OpenAI 大声朗读出来

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【MySQL】not in遇上null的坑

今天遇到一个问题: 1、当 in 内的字段包含 null 的时候,正常过滤; 2、当 not in 内的字段包含 null 的时候,不能正常过滤,即使满足条件,最终结果也为 空。 测试如下: select * from emp e;当…

2024全国水科技大会之国际合作与新技术、新产品推介会

召集人:中华环保联合会水环境治理专委会 此论坛主要为筛选新技术、新产品,入选企业后续可参与到我会7月的国际考察中,可为企业推荐国际项目合作! 一、会议背景 为积极应对“十四五”期间我国生态环境治理面临的挑战,加…