Browse Source

知识记录

kindring 6 months ago
parent
commit
4cf07501a4

+ 74 - 0
test/wifi 模块功能设计.md

@@ -0,0 +1,74 @@
+# wifi模块功能设计文档
+
+## 红外模块设计
+### 红外工作逻辑
+
+#### 红外工作需要注意细节
+1. 红外模块在触发后需要手动设置为低电平才能继续工作
+2. 检测物在检测范围内持续运动会导致多次触发
+
+#### 红外检测场景
+1. 检测物进入检测范围
+2. 检测物在检测范围内持续保持运动
+3. 检测物短时间内快速进出检测范围
+4. 检测物在离开有一段时间(可能几秒)后重新进入检测范围
+
+#### 工作情况设计
+1. 红外触发后就(等待100ms)将其设置为低, 重新开始检测
+2. 设置红外锁, 只有在没触发一段时间后才允许再次进行任务
+
+#### 外部接口设计
+1. 灵敏度调整接口  
+   在条件灵敏度时, 将中断移除, 等配置完灵敏度后在重新设置io口的中断
+
+2. 红外检测的启用与禁用接口  
+   用于在其它模块中暂时地禁用红外模块的检测功能
+
+#### 内部接口
+1. 红外中断的注册
+2. 中断移除
+3. 定时回调任务
+
+## 休眠模块设计
+### 模块需求
+1. 能够注册定时任务, 用于在休眠模式下也能够正常地执行一些任务
+2. 定时mqtt心跳发送
+
+### 休眠模块工作逻辑  
+1. 模块在启动后就尝试进入休眠模式
+2. 使用投票机制来确定是否进入休眠模式
+3. 功能模块内部自行管理投票
+4. 能够配置休眠时间
+
+
+### 休眠模块内部接口设计
+1. 开启休眠模式
+2. 关闭休眠模式
+3. 定时任务触发
+
+### 休眠模块外部接口设计
+1. 配置休眠时间
+2. 定时任务注册
+
+## wifi连接模块设计
+### 模块需求
+1. 给出指定的wifi名称和密码即可连接到对应wifi
+2. 连接新的wifi的功能
+3. 重新连接wifi的功能
+4. 配置wifi的功能
+
+### 工作逻辑
+1. 模块启动后, 首先尝试连接已经配置保存好的WIFI
+2. 连接wifi成功后, 尝试连接至mqtt服务器
+3. 配置wifi后, 直接尝试连接, 如果连接成功则保存密码.  
+4. 重新配置wifi,先断开连接, 然后在尝试用新的wifi配置进行连接
+
+### 内部接口设计
+1. 获取匹配的WiFi列表
+2. 连接到指定wifi
+必须是被扫描到的.
+3. 配置wifi.
+该接口需要加上保存密码的这一项. 且最后要尝试调用mqtt连接的功能
+4. 重连wifi
+
+

+ 38 - 0
日常记录/分配类.md

@@ -0,0 +1,38 @@
+# 分配类还债
+
+## 条件分配
+
+### 7.值班分配
+今年五一劳动节五天假期公司需要安排员工值班,现有五个员工每人刚好值班一天。  
+其中已知甲想在前两天值班,乙不想在第一天值班,其他人没有要求。  
+则一共有()种值班安排的方式。
+
+#### 解题思路
+该题有两种假设方案
+1. 甲在第一天值班.
+此时剩余的几个员工可以任意安排值班. 此时可以直接使用`阶乘`来计算有多少总安排可能
+即是 4! = 4*3*2*1 = 24
+
+2. 甲在第二天值班
+此时已不能在第一天值班,其余三个员工可以任意安排值班
+已有3种选择
+其余员工在剩下3天中可以任意安排, 即 3! = 3*2*1 = 6
+所以该种情况下有 3*6 = 18 种安排可能
+
+3. 合并两种情况
+24 + 18 = 42
+
+#### 阶乘
+#d 定义
+在数学中,正整数的阶乘(英语:factorial)是所有小于等于该数的正整数的积,记为 n!
+对应的公式为 n! = n×(n-1)×(n-2)×...×3×2×1
+
+#d 应用场景  
+阶乘应用在许多数学领域中,最常应用在组合数学、代数学和数学分析中。  
+在组合数学中,阶乘代表的意义为
+n个相异对象任意排列的数量,例如前述例子
+
+
+#e 阶乘的计算  
+3! = 3 * 2 * 1 = 6
+4! = 4 * 3 * 2 * 1 = 24

+ 224 - 0
日常记录/算数类.md

@@ -222,3 +222,227 @@ a-b=a+(-b),即减去一个数等于加上这个数的相反数。
 6 = 3 * 2
 
 
+#### 618
+某公司技术人员占员工总数的 8/9,年底公司共有7人获得优秀员工奖励,其中获奖的技术人员占公司员工总数的1/6,问获奖的非技术人员占非技术人员总数的()。
+
+##### 答题思路
+重新整理已知条件与未知条件的关系, 并明确目标
+
+1. 设总人数为`x`
+2. 技术  8/9 * x
+3. 得奖技术 1/6 * x
+4. 得奖总人数 7
+目标: 求得奖的非技术占 总非技术的人数比例
+
+通过已知条件, 我们可以知道, 总人数应该是 6 和 9的公倍数, 因为不可能有半个人的存在
+6和9的最小公倍数为 18, 所以我们可以将人数确定为 18`K`
+得到如下总人数的式子
+x = 18K
+
+随后我们用假设法来带入测试
+首先`K`带入1
+技术设置为Y:  
+8/9 * 18 = y
+y = 16
+
+得奖技术为Z:
+1/6 * 18 = z
+z = 3
+得奖总人数为7:
+7 - 3 = 4
+
+计算非计算的总人数
+18 - 16 = 2
+
+得奖非技术占非技术人员的比例为:
+4/2  
+得出的结果分子比分母大, 不符合逻辑, 因此我们再换一个`K`, 带入2
+技术人员数量为 8/9 × 36=32
+非技术人员数量为 1/9 × 36=4
+获奖技术人员数量为 1/6 × 36=6
+获奖非技术人员数量为 7 − 6=1
+
+得奖非技术人员占非技术人员的比例为:
+1/4
+
+该结果符合题目要求, 所以可以直接使用.
+可以接着尝试带入3,可以看见获奖技术有9人不符合条件. 所以要求就是 1/4
+48 6 9 
+
+##### 思路总结
+1. 该题的解题思路是先将已知条件整理为方程式, 再根据题目要求, 确定目标, 并通过假设法来带入测试
+2. 遇到有多个分数的情况下, 可以尝试通过最小公倍数的方法来确定总人数
+
+##### 公倍数
+#d 定义
+指在两个或两个以上的自然数中,  
+如果它们有相同的倍数,这些倍数就是它们的公倍数。  
+公倍数中最小的,就称为这些整数的最小公倍数(lowest common multiple)。
+
+#e 公倍数的示例
+例如: 9 和 6
+9 * 2 = 18
+6 * 3 = 18
+所以 9 和 6 的公倍数是 18, 而且直接并没有其他更小的同时整除这两个数的数, 
+所以 18 是它们的最小公倍数
+而18 * 2 = 36, 36 * 3 = 108, 这些数也可以同时整除9或者6, 所以这些数是他们的公倍数.
+
+##### 最小公倍数
+#d 定义  
+公倍数中最小的,就称为这些整数的最小公倍数(lowest common multiple)。
+
+#d 求最小公倍数(最大值法)  
+最小公倍数是所有因数在它们出现的最大次数中的乘积。  
+两个数的因数单独列出, 并统计其出现的次数, 如果两个数有共同的因数, 则取最大的次数,  
+随后将这些因数进行幂运算, 值为出现的最大次数.
+
+#e 30与45的最小公倍数(两个数的因数有相同因数)  
+30 = 2 * 3 * 5  
+45 = 3 * 3 * 5
+
+质因数3,在这两个数中出现的最多是2次(在45中)。  
+质因数5,出现的最多是1次(在两个数中都是1次)。  
+质因数2,出现在30中1次。  
+
+所以根据原理可以得出式子:  
+3 * 3  * 5 * 2 = 90
+
+#e 32 和 21的最小公倍数  
+
+32 = 2 * 2 * 2 * 2 * 2  
+
+21 = 3 * 7
+
+接下来,我们比较这些质因数的出现次数:  
+质因数2,在32中出现了5次。  
+质因数3,在21中出现了1次。  
+质因数7,在21中出现了1次。  
+所以根据原理可以得出式子:  
+3 * 7 * 32(2的5次方, 直接用结果代替 ) = 672  
+
+#d 求最小公倍数(相同数提取法)  
+首先把两个数的质因数写出来,  
+最小公倍数等于这两个数全部共有的质因数的代表与各自独有的质因数的乘积。  
+如果没有相同的质因数, 则将其全部相乘即可  
+
+#e 30与45的最小公倍数(两个数的因数有相同因数)  
+30 = 2 * 3 * 5
+45 = 3 * 3 * 5
+
+30 和 45 中同时出现了质因数3和5, 所以将其相乘,   
+随后再将两个数中剩余的质因数相乘  
+3 * 5 * 2 * 3 = 90
+
+#e 32 和 21的最小公倍数
+32 = 2 * 2 * 2 * 2 * 2
+21 = 3 * 7
+
+这两个数中没有相同的质因数, 所以直接相乘即可
+2 * 2 * 2 * 2 * 2 * 3 * 7 = 672
+
+#e 6和15
+6 = 2 * 3  
+15 = 3 * 5  
+
+这两个数包含相同的质因数3, 随后将其剩下的2和5与其相乘即可
+3 * 2 * 5 = 30
+
+#e 56和70
+56 = 2 * 2 * 2 * 7  
+70 = 2 * 5 * 7  
+
+其中相同的数有2和7, 将其相乘 随后将剩余的 2 * 2 * 5 即可
+
+2 * 7 * 2 * 2 * 5 = 560
+
+
+
+
+
+##### 质因数
+#d 定义  
+数论里是指能整除给定正整数的质数。  
+根据算术基本定理,不考虑排列顺序的情况下,每个正整数都能够以唯一的方式表示成它的质因数的乘积
+
+#d 通俗解释  
+质因数就是把一个大数分解成几个小数的过程,  
+这些小数是一种特殊的数,叫做“质数”。  
+
+
+##### 质数
+#d 特点  
+质数是只能被1和它自己整除的数
+
+#e 质数的示例  
+2,3,5,7等是质数
+
+#t 9是否是质数  
+9不是质数, 因为9能被1,3,9整除, 多了一个3, 所以它不是质数
+
+
+#### 53.比例问题
+某抗洪指挥部的所有人员中, 2/3的人在前线, 又增派6人. 此时前线人数占总人数的75%. 
+如果需要保留至少10%的人员在指挥中心.那么最多还能派多少人前往前线?
+
+##### 解题思路
+我们可以假设总人数为3x人. 那么在前线人数为2x人. 增派6人后占前线人占总人数的75%  
+2x + 6 / 3x = 0.75
+
+消去分母  
+将方程两边都乘以3x, 从而将分母的3x消去  
+3x * 2x + 6 / 3x = 3x * 0.75  
+
+化简方程  
+2x + 6 = 2.25x  
+
+移位  
+使用`移位`将常数与代数项分离, 从而简化. 得到如下方程    
+2x - 2.25x = -6  
+-0.25x = -6  
+
+同时移去符号  
+0.25x = 6  
+
+得出
+x = 6 / 0.25
+
+解答该方程  
+
+消除小数点  
+将两个数同时乘以 100 从而将小数点消去,得到x = 24, 总人数为3x = 24 * 3 = 72
+600 / 25 = 24
+
+然后计算需要留多少人  
+72 * 0.1 = 7.2  
+因为是人,所以需要向上取整 得出 8人
+
+前线已有人数可以为  
+2x + 6 = 48 + 6 = 54
+
+还能派遣的人数为10人
+(72 - 54) - 8 = 18 - 8 = 10人
+
+#### 等式的平衡性
+#d 定义  
+如果一个等式的两边都进行相同的数学操作(如加、减、乘、除),那么这个等式依然成立。  
+这是因为在等式中,等号表示左右两边是相等的,进行相同的操作不会改变它们的相等关系。
+
+#d 作用  
+1. 使等式更简单,方便计算和理解。
+2. 用于化简等式,使等式更易于计算。
+3. 让等式符合某种规律, 从而能够使用该种规律的式子来解答问题  
+
+
+#e 意义不明的常数示例    
+2 = 2  这个式子我们可以将左右两边都乘以2,  
+得到4 = 4,所以这个等式是平衡的。  
+
+#e 移除x的示例  
+2x = 4
+这个式子我们可以将左右两边都除以2,  
+得到x = 2 ,所以这个等式是平衡的。  
+还能化简
+
+
+
+

+ 2 - 1
渐构/22-06-14 描述,输入,编码.md

@@ -34,7 +34,8 @@ A: 否, 这是生活中编码的例子
 1. 概念学习
 > 无法将该概念进行精确的描述,不够理解`输入`与`输出`
  
-`#描述,输入空间` 一个模型(或者说是函数,数学层面上的一些定理?)?所有可能的输入,这一个整体称之为`输入空间`,而`输入`这个词则是类似于一个'变量'(计算机语言与数学语言中的变量名). 而实际上`输入`这个词的具体值.
+`#描述,输入空间`  
+一个模型(或者说是函数,数学层面上的一些定理?)?所有可能的输入,这一个整体称之为`输入空间`,而`输入`这个词则是类似于一个'变量'(计算机语言与数学语言中的变量名). 而实际上`输入`这个词的具体值.
 
 `#描述,输入` 一个模型输入空间中所指代的具体的值.