自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(210)
  • 收藏
  • 关注

原创 复杂网络能控性鲁棒性研究进展

本文综述有向复杂网络能控性鲁棒性研究进展,系统比较了能控性鲁棒性的度量方法(如控制节点密度曲线、节点中心性、排序指标),分析随机、特征驱动与启发式攻击对能控性的影响,并总结模型设计、重新连边等优化策略。核心结论为:在给定节点数与边数下,极同质(全齐)网络经验上具有最优能控性鲁棒性。研究强调能控性与连通性不可混同,提出“矛与盾”关系,指出深度学习可显著加速能控性预测。

2026-10-14 12:25:57 179

原创 Controllability Robustness of Henneberg-Growth Complex Networks

本文研究Henneberg增长网络的可控性鲁棒性,提出新度量 $R_T$,仅计算至网络断裂峰值(#dc 最大时),更真实反映抗毁能力。实验发现:完整多边形环(type-I)比破环(type-II)更抗造,且环越大(如六边形)鲁棒性越强;但可控性鲁棒性与连通性鲁棒性几乎无关,提示二者不可互换。该研究为复杂网络设计提供结构优化依据。

2026-10-12 14:56:35 124

原创 Approximating the Controllability Robustness of Directed Random‑graph Networks Against Random Edge‑r

本文提出HyA混合近似法,解决有向随机网络在随机删边攻击下可控鲁棒性曲线难以快速计算的问题。核心思想:随机删边等价于生成边数更少的随机图(引理1)。通过双阈值$\sigma_1,\sigma_2$将网络分为稠密、中等、稀疏三类,分别采用三段式或两段式近似公式,避免耗时仿真。实验证明,该方法精度高(低MSE)、速度快,为复杂网络可控性分析提供了高效解析工具。

2026-10-10 15:24:57 136

原创 模拟大厂大模型方向面试题

答案自注意力机制,让句子里每一个token(单词/字)都能和句子里所有其他token计算关联程度,捕捉上下文依赖关系。传统RNN是串行处理,长距离信息容易衰减;CNN只能捕捉局部窗口信息。自注意力可以直接建立任意两个位置token之间的联系,一步拿到全局上下文。举例子:“小明喜欢吃苹果吗”,模型看到“苹果”,能知道前面的“吃”是搭配苹果,看到“小明”知道是谁在吃。答案MHA多头注意力:Q、K、V头数量完全相等。每个Q头对应独立K头、V头。效果最好,但KV头多,KV Cache显存占用大。

2026-09-12 09:52:31 295

原创 尼康Z30|P/A/S/M四大档位完整详解

适合小白|含实操用法+底层原理前置基础:摄影曝光三要素,照片明暗由三者共同决定。四大档位本质:相机自动固定1~2项参数,剩余参数交由拍摄者手动调控。

2026-07-29 09:47:24 349

原创 【无标题】

摘要:本文介绍了相机不同档位的适用场景及光圈使用技巧。S档适合拍摄运动题材,A档光圈优先适合风光摄影。拍摄风光时建议缩小光圈增大景深,拍摄人像则使用大光圈实现背景虚化。前拨轮可调整虚化程度:F值越小(光圈越大)虚化效果越强,F值越大(光圈越小)虚化越弱。曝光调整方面,前波轮向下转动可减少曝光量。这些技巧帮助摄影爱好者更好地掌握相机操作,实现理想的拍摄效果。

2026-04-24 13:30:40 36

原创 国名排序题笔记(字符串函数 + fgets 详解)

本文介绍了C语言中处理国家名称排序的关键技术。重点讲解了fgets安全读取字符串的方法及换行符处理技巧,使用strcspn定位和清除换行符,通过strcmp实现字典序比较,结合strcpy完成字符串交换。文章提供了完整的冒泡排序实现代码,并总结了常见错误点,包括fgets残留换行、参数类型错误等问题。这套字符串处理组合适用于需要读取、排序和输出字符串的编程场景,是C语言字符串操作的经典范例。

2026-03-19 16:13:04 203

原创 最长连续因子问题 - C语言学习笔记

本文介绍了如何求解一个整数的最长连续因子序列。关键步骤包括:1) 遍历可能的起始因子(优化到√n);2) 内层循环判断连续因子,通过temp /= current缩小判断范围;3) 处理质数等特殊情况。原代码存在中文符号、逻辑错误和格式问题,修正后能正确输出最长连续因子序列(如60输出2 3 4 5 6)。核心要点是掌握双层循环结构和边界条件处理,同时注意编程细节如符号使用和输出格式。

2026-03-16 13:52:49 424

原创 字符串翻转/替换操作

本文总结了字符串翻转和替换操作的C语言实现要点:1) 使用<stdio.h>和<string.h>头文件处理输入输出及字符串操作;2) 变量定义需预留足够空间防止溢出;3) 多组输入采用scanf循环读取;4) 命令解析通过ASCII码转换和指针偏移实现;5) 翻转采用双指针原地交换,替换采用三段拼接法;6) 详细对比了strncpy和strcpy的使用差异;7) 重点提示了数组长度预留、指针偏移计算等常见错误。全文提供了一套完整的字符串操作解决方案。

2026-03-06 20:27:08 363

原创 字符串翻转/替换操作

本文总结了字符串翻转和替换操作的C语言实现要点:1) 使用<stdio.h>和<string.h>头文件处理输入输出及字符串操作;2) 变量定义需预留足够空间防止溢出;3) 多组输入采用scanf循环读取;4) 命令解析通过ASCII码转换和指针偏移实现;5) 翻转采用双指针原地交换,替换采用三段拼接法;6) 详细对比了strncpy和strcpy的使用差异;7) 重点提示了数组长度预留、指针偏移计算等常见错误。全文提供了一套完整的字符串操作解决方案。

2026-03-06 19:54:16 396

原创 C语言格式化输出 %02X 学习笔记

%02X是C语言中用于格式化输出十六进制数的控制符,由补零标志(0)、最小宽度(2)和大写格式(X)组成。它能将0-255的十进制数转换为固定2位的大写十六进制,不足位时自动补零,特别适合IP地址转换等场景。例如IP段192.41.6.20会被规范输出为C0290614,确保每段2位十六进制。注意数值超过255会突破2位限制,小写需求可用%02x。该格式保证了输出长度统一,是处理十六进制数据的标准方式。

2026-03-06 19:05:45 324

原创 字母频率1

本文针对VC++6.0环境下的字母频率统计程序进行了优化改进。主要解决了五个核心问题:1)修正了VC++6.0不支持的C99语法;2)添加了必要的ctype.h头文件;3)增加了非字母字符过滤功能;4)优化了max函数的初始化逻辑;5)替换了不安全的gets函数。改进后的代码严格处理字母统计,兼容VC++6.0编译器,并通过测试用例验证了正确性。关键优化包括使用isalpha()过滤非字母字符、tolower()统一大小写、fgets替换gets等,既保留了原程序的核心思路,又提高了代码的健壮性和安全性。

2026-03-05 15:22:23 243

原创 日期差值计算

本文介绍了两种计算日期差值的算法。第一种是分场景计算法,通过区分同年/跨年情况分别处理,需要手动调整2月天数并处理边界条件。第二种是总天数差值法,将日期转换为从公元1年1月1日算起的总天数后求差,逻辑更简洁统一。两种方法都适配VC++6.0的C89语法,特别注意变量声明位置和输入输出格式。总天数差值法更推荐,因其减少了分支判断,代码更易维护且通用性更强。

2026-03-04 11:00:17 401

原创 十进制转八进制代码

摘要:本文分析了十进制转八进制代码的常见错误(变量未初始化、遗漏最后一位余数、未处理0值),给出修正后的VC++6.0适配代码,并通过测试用例验证。核心算法采用"除8取余+逆序拼接"原理,重点强调变量初始化、循环条件设置和特殊值处理等关键点。学习笔记包含完整代码、算法原理说明及注意事项,适用于C语言初学者掌握进制转换方法。

2026-03-04 10:16:12 198

原创 数组查找问题学习笔记

本文介绍了两种数组查找问题的解法:直接遍历查找和排序+二分查找。直接遍历法逻辑简单,时间复杂度O(n*m),适合小数据量;排序+二分法先对数组排序再用二分查找,时间复杂度优化为O(n logn + m logn),适合多次查询。两种方法均适配VC++6.0环境,需注意C89语法限制。建议根据实际需求选择解法:简单场景用遍历法,算法练习用二分法。关键点包括多组输入处理、变量声明规范和查找优化思路。

2026-03-04 09:59:00 357

原创 基于哈夫曼树的 BMP 图片压缩系统实现

通过这个项目,我们不仅实现了一个实用的工具,更深刻理解了树形数据结构在信息论中的应用,以及位运算在处理底层数据流时的强大威力。可以准备一张 24 位真彩色的 BMP 图片进行压缩演示。展示压缩前后的文件属性对比。展示生成的可以正常打开,证明是无损压缩。您接下来需要我针对某一部分逻辑进行更深入的代码重构或细节补充吗?

2026-01-24 15:58:56 605

原创 Spark 课程核心知识点复习汇总

Spark核心概念包括弹性分布式数据集(RDD)、流处理(Spark Streaming)、PageRank算法和机器学习库(MLlib)。环境配置涵盖单机伪分布式集群搭建步骤,包括JDK安装、Spark解压配置和集群启动。Spark架构采用主从模式,包含Driver、Master、Worker等组件。脚本示例展示了spark-shell启动、HDFS数据上传、RDD创建与操作,以及HiveQL建表和DataFrame查询方法(where/filter/select)。全文提供了一套完整的Spark入门实践

2026-01-08 17:11:10 1118

原创 算法:大数除法

大数除法

2025-12-30 20:43:12 853

原创 进制转换3 学习笔记

摘要:本文探讨了M进制数转换为N进制数的问题。初始方案采用十进制中转法,通过将M进制数先转为十进制再转为N进制,但存在数值溢出风险。优化方案提出大数直接转换法,通过模拟手工除法避免溢出。核心知识点包括进制转换原理、字符与数值转换规则,以及边界条件处理。关键易错点包括数据类型选择、前导零处理等。建议小数据场景使用十进制中转法,大数据场景采用大数直接转换法,确保转换正确性。

2025-12-30 20:37:42 1266

原创 单链表 - 有序插入并输出学习笔记

本文介绍了如何用C语言实现单链表的有序插入与遍历输出。主要内容包括:单链表节点定义、创建节点、有序插入(处理空链表、头部插入和中间/尾部插入三种情况)、遍历输出(避免末尾空格)以及内存释放。关键点在于有序插入时的边界处理与内存管理,强调malloc与free必须成对使用。代码示例展示了从输入5个整数到输出有序链表的完整实现,并提供了命名规范、边界处理等优化建议,适合作为链表基础操作的参考范例。

2025-12-30 19:41:08 920

原创 让程序在读取到整数0时就终止循环

这段C程序实现了一个循环读取整数输入的功能,当输入0时程序终止。核心逻辑包括:1)使用scanf读取整数,返回值判断确保输入有效;2)检测到输入0时跳出循环;3)处理非数字输入等异常情况增强健壮性。程序通过feof/ferror检测输入流结束或错误,并提供了测试示例展示正常和异常输入的处理流程。关键点在于scanf返回值验证和0值判断,确保程序稳定运行。

2025-12-30 10:24:05 211

原创 C语言 qsort 函数实现学生成绩排序学习笔记

本文介绍了C语言中使用qsort函数实现多条件排序的方法。主要内容包括:1)qsort函数的基本用法和比较函数的编写规则;2)使用结构体存储学生学号和成绩;3)实现成绩升序、成绩相同时学号升序的多条件排序。文中提供了完整代码示例,并总结了常见错误及解决方案,如指针类型转换错误、变量名拼写错误等。最后通过测试样例验证了代码的正确性,并提出了按成绩降序排列和增加姓名字段排序的拓展思考。

2025-12-30 09:30:57 466

原创 学习笔记:查找数组第K小的数(去重排名)

题目要求查找数组中第K小的数(相同数值算同一排名)。解题思路包括:1)使用快速排序(qsort)对数组升序排序;2)遍历排序后的数组,通过比较相邻元素进行去重计数;3)当计数等于K时输出结果。关键点包括正确实现qsort的比较函数(防止整数溢出)、处理多组输入以及优化遍历过程。易错点涉及排序参数设置、比较函数实现和循环终止条件等。该算法时间复杂度为O(n log n),适用于题目给定的数据规模。

2025-12-29 19:29:51 813

原创 三类数组(整型、字符串、结构体)使用`qsort`排序的完整代码

本文介绍了使用C语言标准库qsort函数对三种常见数据类型进行排序的方法:1) 整型数组通过三目运算符避免溢出;2) 字符串数组通过转换指针类型后使用strcmp比较;3) 结构体数组通过访问成员变量实现多条件排序。重点在于正确转换指针类型和实现符合要求的比较函数,其中整型需防溢出,字符串需转换二级指针,结构体需指定排序成员。这三种方法涵盖了qsort的主要应用场景。

2025-12-29 19:27:10 391

原创 C语言随机数在考试中的核心考点

C语言随机数考点总结:1) rand()生成0~RAND_MAX的伪随机数,需包含stdlib.h;2) srand()设置种子,需用(unsigned int)time(NULL)且只调用一次;3) [a,b]区间随机数公式为rand()%(b-a+1)+a;4) 常见错误包括循环内调用srand()、种子类型未转换和范围计算错误。考试重点考察头文件、种子设置、范围计算和伪随机数特性,需注意强制类型转换和公式准确性。

2025-12-29 18:50:20 535

原创 幂次方取模

本文总结了快速幂取模算法的核心思想和实现要点。题目要求计算Xⁿ%233333,其中X,N≤10⁹,需采用O(logN)的快速幂算法。关键点包括:1)二进制分解指数减少计算次数;2)利用模运算性质防止溢出;3)正确处理边界条件。文中分析了常见错误(如变量未初始化、取模时机不当等),给出修正代码,并通过示例演示执行流程。该算法适用于大数幂运算、密码学等场景,需注意数据类型选择和取模时机。

2025-12-25 16:34:37 806

原创 十六进制转十进制

摘要: 本文详细解析了北京大学机试题"十六进制转十进制"的解题思路与实现方法。通过分析题目要求,提出了按位加权求和的核心算法,并给出了完整的C语言实现代码。重点修正了原代码中的浮点精度、数值溢出和输出格式等关键错误,总结了字符转换、多组输入处理和数据类型选择等知识点。文章还提供了测试用例验证和拓展思考,帮助读者深入理解进制转换问题。该解决方案高效可靠,适用于各类十六进制转十进制的场景。

2025-12-25 15:39:36 1011

原创 首字母大写

该程序实现将输入字符串中每个单词的首字母大写。核心逻辑是: 用isword标记单词状态:1表示单词开头,0表示单词内部 遇到空白字符时置isword=1,标记下一个字符为单词开头 遇到非空白字符时,若isword=1且是小写字母则转大写,然后统一置isword=0 确保只有每个单词的第一个字母会被处理,后续字符保持原样 优化建议: 预计算strlen(str)避免循环重复计算 用strcspn去除fgets读取的换行符

2025-12-25 15:20:12 321

原创 isspace 函数

isspace是C标准库中用于检测空白字符的关键函数,识别空格、制表符、换行符等5种标准空白符。本文详细讲解其原型、识别范围、典型用法及注意事项,包括参数类型转换、EOF处理等常见问题,并演示如何结合字符串处理实现单词边界识别。该函数能简化代码,避免手动判断ASCII码,是字符串处理的必备工具。

2025-12-25 15:01:04 637

原创 %g的用法

C语言中的%g格式说明符用于浮点数输出,能自动选择%f或%e格式,并去除多余尾随零和无意义小数点。其核心特点是:根据数值大小自动优化输出形式(小数或科学计数法),默认保留6位有效数字,可通过%.ng指定精度。%g适用于需要简洁输出浮点数的场景,但需注意其精度表示有效数字而非小数位数,与%f不同。典型应用包括日志输出、处理不确定范围的数值以及固定有效数字位数的科学数据展示。

2025-12-23 10:57:08 1449

原创 fgets()函数的注意事项

本文详细解释了如何在C语言中使用fgets函数正确读取字符串数组(二维字符数组)。要点包括: 字符串数组本质是二维字符数组,如char originstr[M][N],表示M个字符串,每个最长N-1个字符。 fgets的第二个参数必须填单个字符串的缓冲区大小(N或sizeof(originstr[i])),不能填整个数组大小。 给出了正确使用示例,包括循环读取多个字符串、去除换行符等操作。 特别提醒了常见错误,如参数填整个数组大小会导致越界,填单个字符大小会导致无法读取输入。 对于动态分配的字符串数组,同样

2025-12-23 10:02:56 775

原创 如何将字母转换小写或者大写

摘要:C语言中通过toupper()函数实现字母大写转换,该函数定义于<ctype.h>,仅转换小写字母(a-z)为对应大写(A-Z),其他字符保持不变。使用时需注意将char强制转换为unsigned char以避免扩展ASCII码的负数问题。文章详细演示了单个字符转换和字符串整体转换的两种实现方式:直接修改原字符串或返回新字符串(需手动释放内存),并总结了常见错误如忘记包含头文件、字符串常量修改等问题,强调健壮性处理的重要性。

2025-12-22 10:15:52 654

原创 计算机内存访问:TLB、页表与Cache全解析

计算机系统中,TLB、页表、Cache和主存协同工作以优化内存访问效率。TLB缓存虚拟地址到物理地址的映射,命中时直接提供物理地址;未命中则需查询主存中的多级页表。物理地址确定后,Cache查询数据,命中则直接返回;未命中则访问主存。TLB和页表解决地址转换效率问题,Cache和主存解决数据读取效率问题。通过多层缓存设计(TLB作为页表缓存、Cache作为主存缓存),系统将高频访问的映射和数据存储在更快的组件中,显著降低访问延迟。TLB和Cache的命中率是性能关键,未命中时延迟可能增加10-100倍。优化

2025-07-01 14:44:40 2405

原创 cache 写方式

2025-06-30 22:04:00 170

原创 回写缓存为何需要脏位?

摘要:在采用回写策略的Cache中,**脏位(Dirty Bit)**是核心标志位,用于标记Cache块是否被修改(1表示已修改需回写主存,0表示无需回写)。其核心作用是:1)避免未修改数据的冗余写回操作,提升性能;2)确保Cache与主存数据一致性。对比写直达策略(每次写操作同步更新主存,无需脏位),回写策略依赖脏位实现延迟批量回写。脏位与替换策略配合,仅在替换脏数据块时触发主存更新,兼顾效率与正确性。

2025-06-30 21:00:50 967

原创 组相联映射

2025-06-30 20:58:38 130

原创 直接映射、全相联映射和组相联映射

计组

2025-06-30 20:07:57 3321

原创 主存地址与cache地址组成解析

摘要:主存地址由分区号、cache行号和块内地址组成;cache地址包含有效位、主存分区号和数据块副本(32B)。访问过程涉及载入数据块并更新有效位。平均访问时间(Ta)计算为cache命中率与cache时间的乘积加上主存访问时间与未命中率的乘积。主存系统效率为cache时间与Ta的比值。

2025-06-30 11:50:23 528

原创 共享栈如何降低单栈上溢风险

共享栈通过动态分配空间降低单个栈的上溢风险。由于栈空间通常不会完全填满,当一个栈接近满时,可以占用其他栈的剩余空间,避免立即发生上溢。这种灵活的空间分配机制使得极端情况下仍有缓冲余地,从而减少了单个栈因空间不足而溢出可能。

2025-06-29 19:58:47 339

原创 字位扩展-408真题

摘要:题目探讨如何快速将十进制8005转换为二进制并提取末两位,以及利用高位地址线区分芯片组块。分析表明,8005的二进制末两位可直接由其奇偶性确定为01,而高位地址线则用于芯片组块标识(如本题用高2位区分组块),简化了地址解码与芯片选择过程。核心思路是通过数值特性快速定位关键二进制位,优化硬件设计中的地址分配效率。

2025-06-29 19:33:33 255

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除