zhonguncle
码龄9年
关注
提问 私信
  • 博客:627,953
    社区:68
    问答:210
    视频:3
    628,234
    总访问量
  • 205
    原创
  • 11,156
    排名
  • 1,088
    粉丝
  • 15
    铁粉

个人简介:居高才能临下,深入才能浅出(这话是谁说的呢?肯定不是鲁迅)

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2016-02-03
博客简介:

ZhongUncle的博客

查看详细资料
  • 原力等级
    领奖
    当前等级
    7
    当前总分
    3,160
    当月
    58
个人成就
  • 获得1,080次点赞
  • 内容获得151次评论
  • 获得2,232次收藏
  • 代码片获得9,094次分享
创作历程
  • 40篇
    2024年
  • 50篇
    2023年
  • 59篇
    2022年
  • 56篇
    2021年
成就勋章
TA的专栏
  • Swift/SwiftUI
    45篇
  • UNIX 笔记
    34篇
  • C 语言家族的笔记
    28篇
  • 非硬件小问题
    22篇
  • 目前无法分类的小探究
    13篇
  • Web 笔记
    19篇
  • 软件/程序教程
    15篇
  • 树莓派
    13篇
  • 数据结构和算法
    14篇
  • Python 笔记
    7篇
  • MacTeX 小笔记
    5篇
  • 硬件二三事
    4篇
  • 汇编笔记
    6篇
  • 小手册
    6篇
  • 数学
    4篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

「动态规划」2/n:通过具体问题练习动态规划(爬楼梯问题、小偷问题)

在上一篇文章中提到的最经典的斐波那契数列就是一种一维的动态规划。一维其实也很容易看出来,只有一个属性(面上来说就是数字)相关。除了斐波那契数列之外,还有一些很常见或经典的一维动态规划问题,本文将通过其中的一些问题进一步介绍动态规划。爬楼梯问题问题描述给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。
原创
发布博客 2024.11.05 ·
794 阅读 ·
10 点赞 ·
0 评论 ·
5 收藏

C++中,如何找到一个vector中最大的元素

而不是 C 中的数组,虽然结构更加复杂,但是用起来更方便。就连 C++ 创始人 Bjarne Stroustrup 都推荐使用。动态规划中,经常需要找到一个线性表中最大的元素,C++ 最常用的是。C++ 算法库中有相应的找到最大值的算法。:获取最大的元素,但是返回值是一个迭代器。的函数,那个是找两个元素里较大的一个的,不是找数组里的。那么如何获取这个最大值的位置呢?希望能帮到有需要的人~
原创
发布博客 2024.11.04 ·
308 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

「动态规划」1/n:什么是动态规划?

在学习动态规划之前需要了解清楚什么叫做动态规划。很多教材直接讲内容了,并没有介绍其思想。动态规划(Dynamic Programming,缩写 DP)是一种编程范式,并非一种具体的算法。动态规划就是把一个大问题通过递归的方法划分成多个小问题,用数学方式来表达的话,就是一个多项式。这样可以在代码量变化不大的情况下解决不同规模的问题(实现这点正是递归)。这里多说一点:分而治之(Divide and Conquer,缩写 D&C)也是把一个大问题划分成小问题,但是分而治之是直接拆分的,而动态规划是递归拆分
原创
发布博客 2024.10.31 ·
545 阅读 ·
13 点赞 ·
0 评论 ·
19 收藏

如何分析计算出不同构的某阶无向树的棵数目

如何分析计算出不同构的某阶无向树的棵数目”是离散数学中的一种很常见的题目,而且没有简单公式计算出来,只能通过枚举来得到。这就是无可避免的了,画的时候需要注意能不能改变树高,也就是努力找不同构的情况。,对应两个不同构的树:2 个度为 2 的节点可能相邻,也可能不相邻,二者的树高不同。因为树同构的话,高度一定是相同的。:离散数学是一个顶点接的边就是度,而某些算法书里,树的度指的是结点的子节点数量。首先同构的定义是图的属性不变,也就是点、边、度序列不变。,还要考虑有些情况度序列的情况可能对应多个不同构的树。
原创
发布博客 2024.10.13 ·
346 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

补图、同构图、自补图是什么意思

补图、同构图、自补图的解释网上很多文章写的不是很明确,所以我写一段小笔记记录一下。数学定义看上去挺复杂的,但是简而言之就是两张图点相同,边也相同,但是点的位置不一样。这里解释一下什么叫“点相同,边也相同”:一个点的度不变,一条边两端的点也不变。这点数、边数、度序列这些也叫做图的性质。同构图也就是这些图的性质是一样的。
原创
发布博客 2024.10.10 ·
749 阅读 ·
7 点赞 ·
0 评论 ·
17 收藏

离散数学中关系的性质:自反、反自反、对称、反对称、传递

离散数学中,有一个重要的概念是关系的性质自反:对于任意的 a 属于 A,必有 aRa。反自反:对于任意的 a 属于 A,必有 aRa。对称:对于任意的 a,b 属于 A,若 aRb,则必有 bRa。反对称:对于任意的 a,b 属于 A,若 aRb 且 bRa,必有 a=b(如果 aRb,且 a≠
eb,那么必有 bRa)。传递:对于任意的 a,b,c 属于 A,若 aRb 且 bRc,必有 aRc。传递可能是最好理解的了,这里重点关注前四个性质。
原创
发布博客 2024.10.07 ·
1866 阅读 ·
7 点赞 ·
0 评论 ·
14 收藏

如何判断一个无向图是不是欧拉图

欧拉图其实就是小时候最常见的“一笔画”问题的一个特殊情况,也就是每个边只经过一次,并且起点和终点相同。之前了解过,但是说实话并不是很熟悉,最近有需要就研究了一下。
原创
发布博客 2024.10.07 ·
501 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

打印文档时,只有图片中的文本不清晰该如何处理

最近打印东西的时候,发现只有图片中的文本并不清晰,就想研究一下如何改善这个问题。打印机是佳能的 MF113w,一个不错的多功能激光黑白打印机,支持无线打印。唯一问题就是每次 DHCP 分配 IP 到期后,这款打印机就会亮错误灯(因为 IP 变了,接受不了新旧不同)。所以本文仅适用于黑白打印的情况。
原创
发布博客 2024.09.11 ·
780 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

如何计算UDP校验和

在了解 UDP 校验和的时候,发现资料很少,如果看教材的话,一定看到过下面这两张图,但是又看不懂,加上解释之后也难懂:本文先说具体怎么算的,再说一些细节,过程中顺带解释一下这两个图(第一张图是布局情况,第二张图是解释如何计算的)。
原创
发布博客 2024.08.07 ·
1251 阅读 ·
12 点赞 ·
0 评论 ·
17 收藏

红黑树与平衡二叉树的相同之处与不同之处

红黑树很多资料上写的非常繁杂,初次接触真的难以理解。写本文也就是为了记录一些思考和想法,并不会记录如何使用代码实现。不记录代码还有个原因:黑红树的算法就是根据各种情况进行一些操作,情况很复杂,分插入的和删除的,有的是资料记录这些,但是为什么要进行这些操作,为什么这些操作那么像但又略有不同却没多少人说明清楚。所以本文主要是记录想法的。
原创
发布博客 2024.08.03 ·
766 阅读 ·
25 点赞 ·
0 评论 ·
8 收藏

关键路径算法(Critical Path)

这个算法《算法导论》中并没有提及,很多书和博客说的有点奇怪,所以写本文作为笔记。关键路径是什么关键路径的定义非常简单:就是一个图中,权值之和最大的路径就是关键路径。为什么有关键路径关键路径的来源和拓扑排序是一样的,都是将一项较大的工程划分为多个子工程,然后表示子工程之间的关系的。关键路径和拓扑排序不同之处在于:拓扑排序强调子工程之间的先后顺序(说依赖关系可能更恰当一些),比如必须做完a才能做c。关键路径在拓扑排序的基础上,还加入了时间关系。这个时间关系不光是子工程之间的,也包括子工程和整体
原创
发布博客 2024.07.29 ·
1992 阅读 ·
14 点赞 ·
0 评论 ·
42 收藏

Mac printf处理参数的奇特之处(macOS中,printf使用%d输出一个浮点数会发生什么情况?)

说这段代码在 x86(IA-32)上运行时,输出为0;在 x86-64 上运行时,每次输出是一个不同的数。然后我就非常好奇为什么?因为0很好理解,但是 64 位为什么是不同的数呢?其实盲猜都能猜个大概,和地址有关呗(一般冒出来奇奇怪怪数都是和地址有关,“跑错地方了”),但是盲猜很容易翻车,还是要验证一下。先看看网上有没有人研究过。后来查了一下发现,这个问题的原型最早能追溯到近 20 年前,不过那时候由于都是 32 位机器,所以还好。
原创
发布博客 2024.07.26 ·
982 阅读 ·
17 点赞 ·
0 评论 ·
24 收藏

Hamming码是什么?如何计算和使用?

汉明码是什么在原始论文中,Hamming 阐述了一种检查和纠错编码:系统性代码(Systematic Code)。系统性代码的结构是:假设二进制位数为n,其中m位用于表示数据,k位用来检错和纠错。这就产生了一个冗余率R=n/m,使用这个冗余率R来作为传递相同信息的最小必要数。当时可能是信道容量真的不足,Hamming 在文章开头多次强调检查和纠正错误会降低信道的利用率。论文中构建了三种最小冗余的码:单个错误检测码(奇偶校验码);单个错误纠正码;单个错误纠正和双错误检测码。后两个都称为汉
原创
发布博客 2024.07.22 ·
1011 阅读 ·
9 点赞 ·
3 评论 ·
23 收藏

IEEE 754浮点数构成与转换

IEEE 754 标准是现在主流的浮点数标准,除了常见语言中的 FP32、FP64 之类的类型,还有一些为了量化、加速深度学习的 FP8 类型(E4M3、E5M2)也是使用 IEEE 754 标准来定义无穷等含义。此外,通过了解和学习,在研究其他浮点数格式的时候也会有帮助,比如机器学习使用的 BFLOAT16。下图是 FP32、FP16、BF16 三种浮点格式对比(图自本文主要以 IEEE 754 的 FP32 为例,展示结构和如何得到浮点数。
原创
发布博客 2024.07.18 ·
1357 阅读 ·
20 点赞 ·
0 评论 ·
26 收藏

原码、补码、反码、移码是什么?

下面是关于原码的“吐槽”,可以当作扩展。你可以不看,直接去下一章,没有任何影响。原码的吐槽放在前面是防止读者看完原码,然后看半天才看到补码,影响阅读体验。某些书描述“原码”的时候很“奇怪”,你可能在某些书上见到过下面这样很难理解的描述(下图截自原码 - 维基百科):这玩意是数论里的等价类,也就是计算机里常出现的“模运算”。或者还有个更高级的名字:散列(因为很多散列算法就是模运算,然后用的等价类的思想)。3 mod 2和1 mod 2的结果都为1,所以都等于[1],也就是3和1都是1的等价类。
原创
发布博客 2024.07.17 ·
2531 阅读 ·
17 点赞 ·
0 评论 ·
33 收藏

「字符串匹配算法 3/3」KMP (Knuth–Morris–Pratt)字符串匹配算法

在学习 KMP 的时候,我发现在国内的教材上是按照朴素算法的改进来介绍的,说是增加了next数组(部分匹配表,PM),这个表记录了子串中每个位置的最大相等前后缀的长度。这个介绍我不知道你有没有看懂这种介绍,我反正没看懂。然后我发现《算法导论》思路是按照有限自动机的改进来介绍的,也提到了求前缀,而且数学性极强。懂了点思路,但是对代码怎么写毫无头绪。这两个给的解释不能让我满意。网上的博客和代码要么就是参考国内教材给解释,要么就是参考算法导论给解释,要么没解释,所以结果也是一样。
原创
发布博客 2024.07.14 ·
618 阅读 ·
7 点赞 ·
0 评论 ·
15 收藏

「字符串匹配算法 2/3」有限自动机匹配字符串算法

有限自动机匹配字符串算法需要一定的数论知识,而且也不是很好玩。本文不会展开说其数学属性,因为要说清楚这点需要读者有一定的离散数学基础,不然就得先解释清楚一些概念。所以如果你不懂自动机、状态机等概念,对集合、关系等概念不熟悉,也不想搞懂,那么理解下面的代码就行了,概念上我会进行一些解释,毕竟也是个记录。如果你想搞懂背后的数学属性,首先学一下离散数学,重点是数论。有基础之后,就可以看一下《算法导论》和芝加哥大学的,后者示例更好一些。
原创
发布博客 2024.07.12 ·
919 阅读 ·
14 点赞 ·
0 评论 ·
24 收藏

「字符串匹配算法 1/3」朴素和Rabin-Karp

字符串匹配算法一直是我的一大短板,刚好这段时间有需要,借此机会就好好补补。匹配算法主要是从一段内容中匹配某一部分(pattern,这个词有时候也被翻译成模式,所以有时候也叫模式匹配),比如文本编辑器中查找某个单词、DNA 序列中查找特定序列。。朴素匹配算法没有预处理。下面是《算法导论》中列出的四种匹配算法,我就先学会这四种好了。当然还有更多的算法,不过一开始容易贪多嚼不烂。0O((n−m1mΘmO((n−m1mΘm∣∑∣ΘnΘmΘn上面表格中的。
原创
发布博客 2024.07.12 ·
816 阅读 ·
13 点赞 ·
0 评论 ·
10 收藏

学习计算机,为什么要阅读经典或着著作

简而言之,经典的可信任概率比较大,其他的较低,所以阅读经典能高效率学习的概率也大一些(或者是学的较慢但是很扎实)。写完本文心情好多了,要调整一下学习策略了。祝各位好运。
原创
发布博客 2024.07.04 ·
627 阅读 ·
10 点赞 ·
0 评论 ·
12 收藏

C++中的enum(枚举)是什么,以及与C中enum的不同之处

最近在看《A Tour of C++ 3rd》的时候发现 C 和 C++ 的 enum虽然使用起来比较相似,但是目的却略有不同。关于枚举的概念还请见之前写过一篇关于 C 的那篇博客《C语言中enum(枚举)详解》,这里不再赘述。本文侧重 C++ 与 C 不同的地方。首先,默认情况下与 C 一样,值的类型为整数,所以下面样式的代码依旧可以使用:
原创
发布博客 2024.06.16 ·
478 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏
加载更多