层次分析法的具象理解
简单的解释一下层次分析法:
层次分析法就是将一个你需要解决的问题拆解,
拆解成一些决定性因素,
通过这种方式选择解决问题的方案
你要购买手机
你将购买手机这个目标拆解为一些准则,
比如性能跑分, 拍照像素,
充电速度,
电池续航这些便可以看成是决定性因素
通过这些准则来判断你到底要采取什么方案,
比如你是采取买小米的方案,
买华为的方案还是买苹果的方案
这就是下面这个图
看到这里你便不再害怕层次分析法, 知道他是怎么一回事了
层次分析法与数学
为了通过科学的方法去做决定, 我们可以运用到矩阵
一些概念:
判断矩阵:
判断矩阵就是通过个人的主观判断决定两个因素的重要性的比值来组成的矩阵
注意使用上面那个参考标度
比如我觉得手机的性能跑分比拍照像素明显重要,
那么根据标度: 性能跑分拍照像素拍照像素性能跑分所以绿色的框 2 就是填 5 , 框 3
就是填1/5
性能跑分和性能跑分自己比较, 红色的框 1 就是填 1
根据上面的详细解释我们可以知道判断矩阵具有的一些性质:
aij = 1
聪明的你发现这个判断矩阵会有一个问题, 比如: 像素 ...
这个集合是我用来记录我的数模团队的学习进展
我们都是零基础的数模小白, 从零开始,
我们需要一些团队的规范来保证学习的持续进行
这个合集是对我们团队三个人所有内容的集合整理,
会加上作者以及身份(建模手, 代码手, 论文手)
在这个 2026 年的暑假中:
所有学到的东西都需要自己写 markdown 来进行整理和分享发到群里面,
以此来保证我们真正参赛的时候能够交流在同一频道,
避免出现一个人说一个概念别人完全不知道从而要重新解释的情况
(比如我今天学了一个新的算法, 那么我就写一个 markdown
来进行整理和记录这个算法具体是什么意思, 怎么用代码实现,
方便他人也提醒自己就像做笔记一样)
团队的经验积累来源于不断的参加新的比赛, 数模比赛我们遵循,
能参加的都参加, 有必要参加的认真打
希望通过这种方式来让我们的团队有长足的经验来应对大型的重要的数学建模比赛
比赛不是一蹴而就, 是经验的积累.
我们希望在大二或是大三的某一次国赛或美赛中取得好成绩!
希望我的方法对整个团队会有帮助!
Matlab - Matrix
Laboratory(矩阵实验室)
为什么是 Matlab?
社群环境: 数学建模中MATLAB 被广泛使用, 所以教程,
源码都非常丰富易于学习
语法: 他本质上是一个新的编程语言, 需要代码手重新进行学习,
但是它对于数学极度友好, 专为数学而生
语法极度接近数学公式:解线性方程组 Ax = b,你只需要敲 x = A \ b。这在大多数语言里需要好几行循环或调用复杂库。
“向量化”操作:对一万个数字进行运算,用 C++
你得写 for 循环,在 MATLAB
里就是 y = sin(x)。代码量和出错概率指数级下降。
下载并安装 MATLAB
这整个过程不需要任何的代理访问
访问 MATLAB 官网 https://ww2.mathworks.cn/
点击Get MATLAB
Creat Account - 创建新账号
填入校园邮箱, 点击 Next
创建你的账号 并且
接受邮箱验证码
点击下载
打开安装程序, 登录账号, 选择自己需要的库就行了
如果你被拒绝了
请尝试以下解决方法:
更换(更正)网络环境,可以试一下使用国内 ...
经过了刚刚原理部分的学习, 你已经对这个陌生的单片机有了一定的信心,
那么接下来我们开始实操吧!
注意观察, 这是一篇结构较为严谨的博客, 你可以从旁边的目录看到每一个
Step 之后所有的实验篇, 将遵循
Step X - 对应说明
具体步骤 1
步骤的解释 1
步骤的解释 2
具体步骤 2
希望这样的结构严谨的文章对你的学习会有帮助 !
我们这一章的内容是通过 GPIO 点灯
BulePile - 蓝色小药丸, 就是我们使用的这个 STM32
F03C8T6 开发板
灯, 仔细观察你的开发板, 在靠近SWD
调试接口的位置有一个 PC13 指示灯, 我们点的便是这个灯
GPIO, 前文提到的通用输入输出接口
这一部分是最基础的构建整个工程的部分.
今后你的每个新工程都要进行如下的步骤来进行相应的配置
Step 1 - 芯片选型
打开 CubeMX
搜索并选择对应型号的 MCU 芯片
Step2 - 工程配置
1.
配置复位时钟控制器 (RCC) - Reset Clock Control
配置成晶振 - Crystal/ceramic resonator ...
这个 BNBU 大一的 OOP
Final 到底会考啥?
我做了一个课件的 review 进行了一些知识点的整理
#
章节
核心考点
1
Intro to OOP
类 vs 对象、class diagram、JVM/字节码、JDK/JRE
2
Java Essentials
基本类型、运算符、控制流、String、方法、Scanner
3
Creating Java Classes (+Cont)
字段/方法、构造器、this、封装、static、重载
4
Inheritance (+Cont)
extends、super、覆盖、多态、Object、final
5
Abstract & Interfaces
抽象类、interface、抽象 vs 接口的取舍
6
Arrays & Generics
数组、二维数组、泛型类/方法、ArrayList
7
Exception Handling
try/catch/finally、checked vs
unchecked、throw/throws
8
IO(DB 部分跳过)
...
欢迎来到 RM 电控, 这是一个新手向教程.
如有任何错误或者建议可以在文章下方的评论区留言,
收到反馈后会已邮件的方式发送通知
所有的实验代码以及额外的资料都在仓库
https://github.com/ahpasserby/Little-Blue-Pill
1.理论知识 - 基本硬件
MCU(Microcontroller
Unit) - 微型控制单元
系统板的大脑, 相当于主机上的 CPU - 中央处理器
一般 3.3v 供电: 低电平约为 0v; 高电平约为 3.3v
CPU 和 MCU 的关系:
CPU 和 MCU 是包含关系:CPU 是 MCU
的核心部件
CPU(中央处理器):
只负责计算和执行指令。它自己无法独立工作,必须外接内存(RAM)、存储(硬盘/闪存)和输入输出接口
MCU(微控制器):
它的芯片内部已经内置了一个 CPU 核心(比如 ARM Cortex-M
核心),同时把
RAM(运行内存)、Flash(存储程序的地方)、定时器、ADC(模数转换器)等所有必备组件全做在了一颗芯片上
更多有关STM32命名规则
RCC(Reset Clock ...
类加载
每个类的类加载有且只发生一次
类加载: 就是 JVM 把 .class
文件读到内存里,并完成静态字段(成员变量)初始化和静态代码块执行,让这个类准备好被使用
有一下几种情况会触发类加载
new一个新对象
调用类的静态成员变量(静态字段)或静态代码块
子类被调用要先加载父类
懒加载:
如果在程序一开始运行的时候就把所有的类都全部加载一遍,
这太耗费资源了, JVM 对于类加载是能拖就拖,
直到出现了上述的情况让他不得不进行类加载
加载顺序
加载的顺序如下表所示
步骤
内容
时机
1
父类静态字段 + 父类静态代码块
类加载时,只执行一次
2
子类静态字段 + 子类静态代码块
类加载时,只执行一次
3
父类实例字段 + 父类实例代码块
每次 new 对象时
4
父类构造方法
每次 new 对象时
5
子类实例字段 + 子类实例代码块
每次 new 对象时
6
子类构造方法
每次 new 对象时
举个例子 123456789101112131415161718192021222324252627282930313233343 ...
抽象类和抽象方法
介绍
在实际的写代码过程中,
我们常常遇到子类展现出多态导致父类的方法被’‘掩盖’’的情况
12345public class Animal { public void name() { System.out.println("父类的方法"); }}
12345public class Dog { public void name() { System.out.println("子类 Dog 的方法"); }}
12345public class Cat { public void name() { System.out.println("子类 Cat 的方法"); }}
123456789public class Main { public static void main(String[] args) { Animal a = new Dog(); Animal b = new Cat(); a.name(); b.name(); }}
上面就是一个例子, 在调用 name()
方法的时候子类表现出多态, 把父类原本的方法”掩盖了”
那么我们 ...
什么是动态绑定和静态绑定?
绑定(Build)
先说什么是绑定
绑定(Binding)就是:方法调用和方法实现之间建立联系的过程。
简单来说但你调用a.eat()
这个方法的时候,程序要知道你具体调用的是哪段代码
这个寻找具体调用的段代码的过程,就叫做绑定
一个程序想要”跑”起来,需要经过两个阶段,先编译后运行
在编译过程中就确认了具体用哪个方法就叫静态绑定
在运行过程中才确认用哪个方法就叫动态绑定
静态绑定
程序在编译阶段就能确定使用那个方法
类型:
通过下面关键词修饰的方法是静态的,子类无法对父类的方法进行重写
static 方法,静态方法
private 方法,私有方法
final 方法,被 final 修饰不能被重写
构造方法
通过 super().xxx 调用的方法
为什么这些是静态绑定?
因为它们都有一个共同点:不能被子类重写,或者调用方式跟对象的实际类型无关。既然不存在”多个版本”的可能性,编译器自然在编译时就能拍板。
123456789101112131415161718class Animal { public static void inf ...
认真看这句代码 Animal a = new Dog();
一个对象 a
a 的引用是 Animal
用来创建这个 a 对象的是 Dog()
在java 中引用 ≠ 对象 Animal
是一个引用他就像一个遥控器一样,指向 a 这个对象,但是这个 a
对象实际的东西还是 Dog.只是 Animal 决定了 a 对象能用什么方法
在这一句话中有两个关键点,我们逐一比对 1. a 对象实际的东西还是 Dog 2.
Animal 决定了 a 对象能用什么方法
1. a 对象实际的东西还是 Dog
假设我们有一段这样的代码 1234567891011121314151617181920212223242526class Animal { // 父类 Animal public void eat() { System.out.println("Animal eat something"); }}class Dog extends Animal { // 子类 Dog public void eat() { System.out.println("Dog eat something"); ...
