抽象的算法0.1.1版本

前言:在0.1版本中,我们得到了可迭代的超级模板,问题简单化

最近看到一本十分厉害的电子书,其中两句话让我虎躯一震,这就是大佬的思维!

第一句话:数学是用来描述万物本质的语言,是理解这个世界的底层逻辑,只有从数学上理解了一件事情,你才真正从本质上理解了这件事情

第二句话:升维思考,降维行动

                                                                                                    内容来源:底层思维2  作者:刘润

九九乘法口诀

这次甲方提了一个需求给我们:一张图片!?对就是一张图片

文字和图片有区别吗?答案是没有,本质上他们都是信息不同形式的展示

处理图片的方法和处理文字的方法是一样的

第一步:做什么,看啊(难不成听吗,你指望作者将内容读给你听吗)

第二步:找一个切入点

老鼠回家还得找洞,那找错洞,洞里指不定就躺着一条吐舌头的辣条!!

找对切入点,可以更好的解决问题,找错了怎么办,多花一点时间而已(除非不打算解决)

在这张图片里最简单的切入点就是——1 × 1 = 1

用代码怎么实现他?试试看

public void test2() {System.out.println("1×1=1");}

完美!

很好,用更变量代替常量试试

分析一下 1 × 1 = 1是由什么组成的

由数字和运算符组成

数字可以用变量代替

运算符呢?用字符串代替,然后用拼接将他们连起来

    public void test2() {int x = 1;int y = 1;int z = 1;System.out.println(x + "×" + y + "=" +z);}

O~对味了

我们要重复写81次吗?(当然,你要是想可以试试!

回到图片

我们以1 × 1 = 1 作为切入点,现在以这个切入点,做展开

为了更好理解,我们将1 × 1 = 1 更加具体点

数字1 × 数字2 = 数字3         哎,为什么用符号,因为这四个符合是不可能变的+-×÷

先看垂直的y方向,数字1向下逐渐增加1

再看水平的x方向,数字2向右逐渐增加1,并且数字3是数字1与数字2的乘

可以从上面的图清晰看到,数字1,数字2,数字3在x方向和y方向的变化

数字1和数字2每次向x方向或者y方向正移动,对应的值都会+1,但是数字3不一样,数字3是数字1和数字2在xy方向所在值的乘积

那么怎么让数字1和数字2自动增加呢

我知道,我来回答,用循环让变量自增

        for (int i = 1 ; i < 10 ; i++){System.out.print(i);}for (int j = 1 ; j < 10 ; j++){System.out.print(j);}

这样我们就可以让数字1和数字2随着x和y方向增加而增加()

那么只要在下面添加一个System.out.print(j*i);

救完成了吗?

试试,完全不可行,为什么?

因为作用域,一个花括号代表一块作用域

让他们在同一作用域就好了

这里用到循环嵌套

将作用域放在一个循环里达到同作用域

        for (int i = 1; i < 10; i++) {for (int j = 1; j < 10; j++) {System.out.println("数字1:" +i + "数字2"+j + "数字3" + i * j);}}

可行了,但是没有达标,我们优化一下,他打印了至少9*9次=81次

为什么会是81次呢?

第一个循环会运行几次?在上面的循环自增测试中,打印了9次,在for循环里,第二个值i < 10就是之前说过的跳出循环,只要i自动增加到10的时候就会结束,因为10 = 10 为false,我们设置的条件为<10,大于等于都会让他返回一个false

第一个循环是这样,第二个循环呢?当然是第二个循环里的条件为false的时候才会停下来,第二个循环条件我们设置的是j<10,也就是说它会运行到j=10的情况,这个时候正好运行了9次,第二个循环跳出后,进入第一层循环

这么多文字很抽象,让我看,我也头大,简单来说,在嵌套的情况下,会按照从上到下的运行

这个是没有添加特殊跳出关键词只用条件的情况下,它会按照循环一次一次向下,测试一下

打上断点,来看看是不是和上面的图片一样

进入循环后,第一次运行,运行的是第一层循环条件满足,马上进入第二层,第二层条件马上进入第三层,当第三层条件不满足的时候自动先上回到第二层,第二层条件还是满足的,继续进入第三层

愿意的话,你可以数数,有人问你为什么不干脆写完(太懒了没办法///)

我数完了,第三层运行了9次,符合之前的内容,也符合那张图片

有了这个,我们就能精准控制数字2了

1 * 1 = 1

2 * 1 = 2,2 * 2 =4

我们发现,在y方向上,影响的是数字2,数字2的最大值是数字1,哦~我懂了,让它自增到它数字1就好了!

        for (int i = 1; i < 10; i++) {for (int j = 1; j < i; j++) {System.out.println(i +"*" + j + "=" + i * j);}}

运行的时候,发现没有1×1了?是为什么?

因为第二层循环,j = i,1 = 1是什么?不满足条件,就回到了第一层循环

怎么解决它?条件是<,但是1 = 1 是等于怎么办?

小于等于~ 哦~ 秒懂~

< =解决了

nice!解决了,不过和要求不一样!

让它横着排放

提供一种思路,因为它是从上到下,在到下到上,直到第一层结束,那么我们利用这一点让它每次在第一层运行的时候自动换行就好了

for (int i = 1; i < 10; i++) {System.out.println(" ");for (int j = 1; j <= i; j++) {System.out.print(" " + i +"×" + j + "=" + i * j);}
}

总结:

内容涉及:

循环嵌套的运行规律和代码的运行规律是一样的,因为循环是代码写的,就和面向对象编程中的继承一样,父级有的,儿子也有,儿子有的父级不一定有

升维思考(广度和深度),降维行动(简单化)

 (基础 + 基础 + 基础 + ...更多的基础)×  维度(影响条件)  = 问题

将这个九九乘法表符合公式吗?

完全符合

(循环 + 循环嵌套 + 代码运行逻辑)× 三维(数字1,数字2,数字3) = 九九乘法表

0.1版本的问题公式待定!

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

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

相关文章

Comparablae接口

在日常生经常涉及到排序的的问题&#xff0c;排序问题中又不得不涉及到比较的问题。在排序问题中根据不同的规则对多个对象进行比较&#xff0c;然后根据比较内容的不同对对象进行排序。java中的Comparable就是用来定义排序规则的接口。当要对类中的对象进行排序操作时&#xf…

MYSQL5.7详细安装步骤

MYSQL5.7详细安装步骤&#xff1a; 0、更换yum源 1、打开 mirrors.aliyun.com&#xff0c;选择centos的系统&#xff0c;点击帮助 2、执行命令&#xff1a;yum install wget -y 3、改变某些文件的名称 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base…

C语言 | Leetcode C语言题解之第26题删除有序数组中的重复项

题目&#xff1a; 题解&#xff1a; int removeDuplicates(int* nums, int numsSize) {if (numsSize 0) {return 0;}int fast 1, slow 1;while (fast < numsSize) {if (nums[fast] ! nums[fast - 1]) {nums[slow] nums[fast];slow;}fast;}return slow; }

能看会说的人形机器人,对话的样子吓到我了

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 还记得这个表情宛如真人的人形机器人吗&#xff1f; ta被取名Ameca&#xff0c;由一家名为「…

模板方法模式:定义算法骨架的设计策略

在软件开发中&#xff0c;模板方法模式是一种行为型设计模式&#xff0c;它在父类中定义一个操作的算法框架&#xff0c;允许子类在不改变算法结构的情况下重定义算法的某些步骤。这种模式是基于继承的基本原则&#xff0c;通过抽象类达到代码复用的目的。本文将详细介绍模板方…

二维数组---刷题

一维数组不想更了&#xff0c;弄点二维数组&#xff01; 1.对角线 已知一个6*6的矩阵&#xff0c;把矩阵两条对角线上的元素加上10&#xff0c;然后输出这个新矩阵。 思路 题目简单&#xff0c;6*636&#xff0c;可以得知有36个元素。数组就定义成a[7][7]&#xff0c;难点在与…

[大模型]Yi-6B-Chat 接入 LangChain 搭建知识库助手

Yi-6B-Chat 接入 LangChain 搭建知识库助手 环境准备 在 autodl 平台中租赁一个 3090 等 24G 显存的显卡机器&#xff0c;如下图所示镜像选择 PyTorch–>2.0.0–>3.8(ubuntu20.04)–>11.8 接下来打开刚刚租用服务器的 JupyterLab&#xff0c;并且打开其中的终端开始…

Python编写一个抽奖小程序,新手入门案例,简单易上手!

“ 本篇文章将以简明易懂的方式引导小白通过Python编写一个简单的抽奖小程序&#xff0c;无需太多的编程经验。通过本文&#xff0c;将学习如何使用Python内置的随机模块实现随机抽奖&#xff0c;以及如何利用列表等基本数据结构来管理和操作参与抽奖的人员名单。无论你是Pytho…

私有化即时通讯软件,WorkPlus提供的私有化、安全通讯解决方案

在当今信息化快速发展的时代&#xff0c;安全问题已经成为各行各业关注的焦点。特别是在金融、政府单位和芯片等关键行业&#xff0c;信息安全的重要性不言而喻。这些行业涉及到大量的敏感数据和关键信息&#xff0c;一旦发生泄露&#xff0c;可能会对国家安全、企业利益甚至个…

Django中的静态文件、路径、访问静态文件的方法

1.什么是静态文件 不能与服务器端做动态交互的文件都是静态文件 如:图片,css,js,音频,视频,html文件(部分) 2.静态文件配置 在 settings.py 中配置一下两项内容: 1.配置静态文件的访问路径 通过哪个url地址找静态文件 STATIC_URL ‘/static/’ 说…

跟TED演讲学英文:Why AI will spark exponential economic growth by Cathie Wood

TED英文文稿 文章目录 TED英文文稿Why AI will spark exponential economic growthIntroductionVocabularyTranscriptSummary后记 Why AI will spark exponential economic growth Link: https://www.ted.com/talks/cathie_wood_why_ai_will_spark_exponential_economic_growth…

[Java、Android面试]_18_详解Handler机制 常见handler面试题(非常重要,非常高频!!)

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&#xff0c;后续会陆续分享出来&#xff0c;感兴趣的朋友可关注收…