数学建模----MATLAB----forwhile循环(进阶)

目录

1.for循环的运用

(1)求和计算

(2)闰年的判断

(3)斐波那契数列的计算

(4)一列数的5个数据一样,删除,5个数据不一样,就保留下来;

2.while循环

(1)基本语法

(2)条件断点的设置

(3)斐波那契数列

(4)循环注意事项

3.循环里面的break&&continue

(1)break语句

(2)continue语句


1.for循环的运用

(1)求和计算

利用for循环求和,设置求和变量和循环变量:

我们可以打印出来每次计算的结果:

这个双重循环就可以把每次计算的结果打印出来;

(2)闰年的判断

mod是求余函数,count作为一个计数器,每次遇到符合条件的数字,就会加上1,最后得到9999个数字里面,闰年的个数;

(3)水仙花数的打印输出

水仙花数就是每个数位上面数字的立方等于这个数字本身的数字,我们需要得到一个数字每个数位上面的数字,这个就要用到除数/求余函数(floor函数是求商,mod是求余数;

这2个函数,floor里面的是斜杠,mod里面的是逗号,最后我们把符合条件的水仙花数添加到我们的空向量S里面;

对于拿到一个数字每个数位上面的数,我们还有其他的方法,这个就要用到字符串的相关知识,我们这里只是认识一下,后面还是会遇到的:

num2str就是把数字转换成字符串,str2num就是把字符串转换为数字;

我们先随机生成一个数字,然后转换成字符串,字符串进行转置后再转换成数字,就可以取出里面的每一位;

我们设置temp是一个列向量,temp(1)就是里面的第一个元素,这样就可以使用temp(n)拿到里面的每一个元素,立方之后求和在和num进行比较就可以了;

(3)斐波那契数列的计算

我们这里计算前30项:

先是生成一个行向量(30个全1),这样我们每次计算的结果放进去就可以覆盖原来的结果了;

因为斐波那契数列的前面2个元素都是1,因此我们的k从3开始算的;

每次计算一个结果放到我们自己定义的向量里面去,这样就可以观察到计算的过程(把分号去掉)

(4)一列数的5个数据一样,删除,5个数据不一样,就保留下来;

我们首先要随机生成一个矩阵:用来存储符合条件的某几列,arr2=unique(column)这个代码的意思就是unique是一个函数,这个函数的返回值就是这个向量里面唯一的数字,因为这个for循环,我们每一次都是从arr里面取出来一列,也就是说,如果这一列的数字里面的某个数字重复出现的话,我们就会只保留一次,举一个简单的实例:例如我们的column有5个数字2 3 4 5 3,这个行向量的5个数字里面,3出现了两次,经过unique函数的调用以后,arr2这个行向量里面的数字就是2 3 4 5,也就是只剩下了4个数字,这4个数字互不相同,然后我们再去计算这个新的向量的长度,如果他经过了unique函数的调用之后,长度依然是5,就可以表明这个行向量的5个元素是互不相同的,这个里面判断完成之后相当于是进行了一个字符串的拼接,只不过这个里面没有字符串,都是列向量,我们把符合条件的列向量重新放到一个新的向量newarr里面去;

下面还有一种解决方案:利用众数,返回的第一个是众数的具体值,这个我们并不关注(所以在代码里面我是用波浪线进行标识的),我们关注的是出现的次数,如果f=1,也就是说明这个数组里面的众数,也就是出现的次数最多的数字,也就出现了一次,说明这个数组里面的数字各不相同,否则,有任何两个数字是一样的,众数就是2了,这个也是可以进行判断的,最后我们把符合条件的这一列添加到我们新建的空的向量newarr里面去;

(5)注意事项

1.for语句后面的是空语句,那么循环体一次也不会执行:

这个地方的2:1就是一个空语句,那么在matlab里面就不会把我们的变量x的值10打印出来;

2.for后面的语句只会在开始的时候使用一次,后续的时候,就算我们进行修改,执行的还是原来的

下面的这个实例,我们企图通过循环体里面的语句,把原来的1~4,全部修改为0,然后进行打印,但是最后输出的结果还是我们原来的1~4;

3.下面我们在循环的时候企图修改变量的值,但是修改后的值会打印输出,原来的向量里面的值还是会打印,这个就是想说明我们尽量不要在循环里面修改变量的值;

2.while循环

(1)基本语法

判断n最小是多少,1+1/2+1/3+.........+1/n的结果大于10;

while可以理解为当什么时候的意思,当我们while后面的判断条件是真的时候,就会执行循环,否则就会跳出循环;

我们把每次循环的结果累加到y的上面,当y<=10的时候,就会不断的执行循环体,当y>10就已经符合题意了,while后面的y<=10就是false,所以会跳出循环;

(2)条件断点的设置

设置断点之后右键选择“设置修改条件”;

设置对应的条件,因为上面我们已经知道了n=12367,所以我们设置mod(n,1000)=0,就是在n能够被1000整除的时候,才会执行这个断点;例如1000,2000,执行12次之后,n就是12000,再执行一次就打于12367了,这个时候就会跳出循环;(这个时候第一次到断点的位置n=1000,我们调试的时候应该训选择继续键,如果我们选择的是步进,就会1000,1001,1002,1003这样就行,如果我们选择继续,就会直接跳转到1000,2000,3000,这样进行下去);

(3)斐波那契数列

设计程序求斐波那契数列里面,第一个大于99999的数字是多少:

我们都知道斐波那契数列的前两个数字都是1,后面的一项是前面的两项的求和,我们设置循环的条件是a(n)<99999,符合条件就n加上1,不符合条件就找到了,退出循环;

最后的a是一个1*26的行向量,我们要找的是第一个大于99999的数字,就是a这个行向量的最后一个元素,我们使用a(end)就可以得到最后的一个元素,也就是第一个大于99999的数字;

(4)循环注意事项

while后面并不一定要是n<1000这样的判断表达式,也可以是常数,或者是向量:

只有后面的常数是非0数字的时候,循环才会继续执行,是0就会跳出循环;

后面的表达式是向量的情况:只有向量的元素都不是0,循环才会执行,向量里面只要有一个元素是0,循环就不会执行;

我们这个地方是定义了一个2*2的方阵,因为元素是1,2,3,4所以循环可以执行,我们的循环体里面修改向量的元素是0,这个时候循环就不会继续执行,所以刚开始进入循环,修改为0之后不符合循环的条件,直接跳出循环,只会输出一个矩阵;如果刚开始的时候4个元素,1,2,3,4里面的任何一个是0,比如1 2 3 0,或者1,2,0,3有0,循环就不会执行。

3.循环里面的break&&continue

(1)break语句

还是用这个题目举例子:

我们在刚开始的时候可以给n设置一个超级大的范围,当使用if语句判断y>10的时候,就会break终止循环;

(2)continue语句

求出1~10里面的奇数:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入解析:如何使用Xcode上传苹果IPA安装包至App Store?

目录 引言 摘要 第二步&#xff1a;打开appuploader工具 第二步&#xff1a;打开appuploader工具&#xff0c;第二步&#xff1a;打开appuploader工具 第五步&#xff1a;交付应用程序&#xff0c;在iTunes Connect中查看应用程序 总结 引言 在将应用程序上架到苹果应用商…

【Spring篇】Spring IoC DI

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Spring系列】 本专栏旨在分享学习Spring MVC的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 前言一、IoC二、…

用html写一个爱心

<!DOCTYPE html> <html lang"zh-CN"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /><title>爱您</title><style>* {padding: 0;margin: 0;}body {background-color: pin…

智慧公厕:提升城市管理效率,改善居民生活体验

智慧公厕作为城市基础设施的重要组成部分&#xff0c;正逐渐成为改善城市品质和提升居民生活体验的一项关键措施。通过智能化管理、数字化使用和信息化运行&#xff0c;智慧公厕不仅可以为城市居民带来更舒适便利的使用体验&#xff0c;而且对于城市的高质量发展、宜居性和包容…

Java快速入门系列-5(Java进阶特性)

第五章:Java进阶特性 5.1 多线程与并发编程5.1.1 多线程基础5.1.2 线程同步与锁5.1.3 线程间通信与协作5.1.4 线程池5.2 Java I/O流5.2.1 字节流与字符流5.2.2 缓冲流5.2.3 对象序列化与反序列化5.3 网络编程基础5.3.1 Socket编程5.3.2 NIO编程5.4 Java反射机制反射的基本用法…

使用 ChatGPT 创建在线课程:一步一步指南与提示模板

原文&#xff1a;Creating Online Courses with ChatGPT 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 谢谢 作为对你支持的感谢&#xff0c;随意定制本书中列出的任何提示&#xff0c;并将其作为你自己的重新销售。是的&#xff0c;对你免费。 它们都结构良好且用…

深入探索力扣第12题:整数转罗马数字的算法之旅

力扣&#xff08;LeetCode&#xff09;第12题“整数转罗马数字”提供了一个绝佳的学习机会&#xff0c;不仅让我们深入古罗马的数字系统&#xff0c;也锻炼了我们的编程技巧。一起看看其背后的逻辑。 罗马数字基础 罗马数字是一种古老的数字表示方法&#xff0c;广泛用于古罗…

linux安装和使用Rancher

linux安装和使用Rancher Rancher介绍请看如下博客 arm架构安装Rancher并导入k8s集群解决Error: no objects passed to apply 华为云arm架构安装k8s(kubernetes) linux下安装Rancher Rancher部署监控k8s集群状态等,比Dashboard插件强大 提前安装好K8S 在master上执行#如果…

【GFS】大数据技术的基石,分布式文件系统的鼻祖

目录 1.概述 1.1.分布式文件系统在大数据中的基石地位 1.1.谷歌当初面对的问题 1.2.谷歌如何解决这些问题的 1.数据量大&#xff0c;数据格式复杂&#xff0c;有大文件也有小文件 2.运行在普通机器上&#xff0c;失效是常态 2.系统架构 3.读操作 4.写操作 5.追加操作…

TiDB 社区智慧合集丨解码 TiDB 性能谜题:让你的数据库发挥最强动力!

来自社区&#xff0c;回归社区。非常感谢各位 TiDBer 在之前 【TiDBer 唠嗑茶话会丨征集 TiDB 数据库性能优化大师&#xff0c;你是如何优化 TiDB 数据库性能的呐&#xff1f;】( https://asktug.com/t/topic/1005563 )里提供的各种性能优化方法。这篇帖子收集整理了大家推荐的…

STL库 —— string 类的编写

目录 一、成员函数 1.1 构造函数 1.1.1 无参构造 1.1.2 传参构造 1.1.3 优化 1.2 析构函数 1.3 拷贝构造函数 1.4 赋值运算符重载 二、容量成员 2.1 size 函数 2.2 capacity 函数 2.3 reserve 函数 2.3 resize 函数 2.4 clear 函数 三、元素访问成员 3.1 [] 的…

希尔排序解读

在算法世界中&#xff0c;排序算法是至关重要的一部分。而希尔排序&#xff08;Shell Sort&#xff09;作为一种基于插入排序的改进算法&#xff0c;通过允许交换非相邻元素&#xff0c;从而在一定程度上提高了排序效率。本文将深入探讨希尔排序的原理、实现方式以及它的性能特…

InternLM2-Chat-1.8B 模型测试

在interStudio进行InternLM2-Chat-1.8B模型访问&#xff0c;进入开发机后 配置基础环境 新建conda环境并且进入 conda create -n demo python3.10 -y conda activate demo 下载pytorch等相关包 conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.…

力扣 76.最小覆盖子串

题目&#xff1a; 题目理解&#xff1a;这题属于最小滑动窗口。所求得的连续滑动窗口包含来t中的字符&#xff0c;不一定要按照t中的顺序。 class Solution {public String minWindow(String s, String t) {// table表示字符串t里的字符if (s null || s.length() 0 || t n…

ThingsBoaed、系统模块层级讲解

系统管理员能够使用租户配置文件为多个租户配置通用设置。每个租户在单个时间点都拥有唯一的个人资料。 让我们一一查看租户配置文件中的可用设置。 配置文件配置 这些设置允许系统管理员配置对租户创建的实体数量的限制&#xff0c;设置每月最大消息数、API 调用数的限制&…

Java集合详解(一)-- List集合

1.集合简介 java集合可分为Set、List、Queue和Map四种体系。 Java集合就像一种容器&#xff0c;可以把多个对象&#xff08;实际上是对象的引用&#xff0c;但习惯上都称对象&#xff09;“丢进”该容器中。从Java 5 增加了泛型以后&#xff0c;Java集合可以记住容器中对象的数…

02-JDK新特性-try-with-resources自动管理资源关闭

try-with-resources 为什么要介绍这个了 看看一下以下代码&#xff1a; public static void fileCopyByTryWithResources(File src, File des) throws IOException {try (FileInputStream fis new FileInputStream(src); FileOutputStream fos new FileOutputStream(des);…

SecureCRT防止超时自动断开

Options——>Session Options——>Terminal——>选择 Send protocol NO-OP ——>60seconds&#xff08;每一分钟发送一次请求&#xff09;

【考研数学】《1800》《660》还是《880》?怎么刷效果最好?

刷题吃不透&#xff0c;做了再多也没用&#xff01; 你目前连1800都没法拿下&#xff0c;你还着急要做660和880&#xff0c;是认真的吗&#xff1f; 这《接力题典1800》有啥特色呢&#xff1f;知识点全面覆盖&#xff0c;题目中规中矩&#xff0c;配合汤老师的视频看效果更佳…

【二分查找】Leetcode 二分查找

题目解析 二分查找在数组有序可以使用&#xff0c;也可以在数组无序的时候使用&#xff08;只要数组中的一些规律适用于二分即可&#xff09; 704. 二分查找 算法讲解 当left > right的时候&#xff0c;我们循环结束&#xff0c;但是当left和right缩成一个点的时候&#x…