当前位置: 首页 > news >正文

第三十九天(5.6)

第三十九天
所花时间(包括上课):约 7.5 小时(概率论 2h + 算法练习(二分) 4h + 博客整理 1h + 其他 0.5h)
代码量(行):约 250 行(主要为二分查找基础模板复写、二分答案相关题目的编写与边界调试)
博客量(篇):1 篇
了解到的知识点:
概率论与数理统计:数学期望的性质与方差 —— 今天在前期数学期望的基础上,深入学习了期望的运算性质(如独立随机变量乘积的期望、期望的线性组合)。随后引入了极其重要的概念——方差。学习了方差的定义及其反映随机变量取值分散程度的物理意义,掌握了常用计算公式 ,以及方差的性质(如常数项的处理、独立变量和的方差等于方差之和)。这些指标为衡量系统的稳定性和风险评估提供了数学依据。
算法练习与沉淀:系统性地学习和练习了二分法(Binary Search)。不仅复习了最基础的在有序数组中查找特定元素的二分模板,还重点攻克了“二分查找上下界”(类似 C++ 中的 lower_bound 和 upper_bound)以及竞赛中极常考的“二分答案”思想(即“最大化最小值”或“最小化最大值”问题)。在练习中深刻体会到,二分法的难点不在于二分本身,而在于如何构建单调性、如何编写正确的 check() 函数,以及如何极其严谨地处理 left 和 right 的边界更新,以避免死循环。
总结:
今天理论与实践并重。概率论中期望与方差的学习让我掌握了描述数据集中趋势和离散程度的利器;而在算法层面,二分法看似简单,实则“细节极多”。在做“二分答案”类型的题目时,我发现只要能证明问题存在单调性,就可以把求解问题转化为判定问题,大大降低了时间复杂度。但在编码过程中,因为 mid 取值偏左或偏右导致死循环的情况时有发生。今晚通过集中画图推演,终于彻底理清了 left = mid 与 right = mid - 1 时 mid 必须向上取整的配套关系。后续还要多加练习,形成肌肉记忆。
表 3 缺陷记录日志示例
学生:马昀昀_________
日期:5.6_______
程序号:算法练习-二分答案(最大化最小值问题)
日期:5.6
编号:1
类型:20 (注:PSP标准中20代表逻辑/控制/条件错误)
引入阶段:编码
排除阶段:测试
修复时间:20min
修复缺陷:
描述:在编写一道求“最大化最小值”的二分答案题目时,程序在某些测试用例上发生 TLE(超时)。通过打印输出调试发现,程序陷入了死循环。分析边界更新逻辑后查明,当前面的条件满足时,我使用了 left = mid 来更新左边界,但计算中间值时使用的是向下取整 mid = (left + right) / 2。当 right - left == 1(即区间只剩两个元素)且满足 check(mid) 时,mid 等于 left,更新后 left 的值不变,区间无法缩小,导致死循环。
修复方法:将 mid 的计算公式修改为向上取整,即 mid = left + (right - left + 1) / 2(或者 mid = (left + right + 1) / 2)。这样当 right - left == 1 时,mid 会取到右侧的值,从而打破死循环。修改后重新运行测试,区间正确收敛,所有测试样例均顺利 AC。

http://www.jsqmd.com/news/765592/

相关文章:

  • [具身智能-596]:为什么传统的机器人自动控制的算法不适合通用具身智能的运动控制?
  • 手把手教你写一个Linux下的mdio调试工具(附完整C代码)
  • 从MP3到FLAC:你的音乐文件到底‘损失’了什么?一次搞懂音频压缩的取舍艺术
  • 绝地求生终极压枪指南:5个技巧教你用罗技鼠标宏实现完美后坐力控制
  • 物理知识点
  • 【AI提效】AI完成质量体系建设专题实践分享-背景
  • 你的QQ空间记忆,值得被永久珍藏:GetQzonehistory备份指南
  • 开源免费的WPS AI 软件 察元AI文档助手:链路 033:buildDocumentProcessingExecutionPlan 包装执行计划
  • 从零到一:手把手教你用Kali Linux通关HackTheBox入门靶机Meow(附完整命令截图)
  • TestDisk PhotoRec:你的终极数据恢复解决方案,轻松找回丢失的分区和文件
  • 三步搭建本地AI聊天界面:Ollama Web UI Lite终极指南
  • 终极指南:如何用xEdit快速清理和优化你的游戏Mod
  • 大模型优化实战:LoRA与量化技术降低70亿参数模型显存需求
  • 3个颠覆性策略:构建智能知识网络的全新指南
  • Dify工作流总在“pending”状态?5分钟诊断清单+3种curl+curl -v级调试命令,紧急故障秒级响应
  • 纯视觉无感定位筑根基,孪生实时坐标创未
  • LeetCode 1861. 旋转盒子【详细题解|双指针+模拟两种解法】
  • Cursor智能体开发:Agent 故障排查
  • Dante Cloud v4.0.6.0 版本发布:开源新功能,支持多架构灵活切换!
  • 百万上下文之后,拼什么?
  • WeakAuras Companion终极指南:5分钟实现魔兽世界光环自动同步
  • Cortex-A7的运行模式
  • 从0到1构建奶牛行为智能监控系统(一)
  • 生物科学插图的免费宝库:Bioicons让你的科研可视化更专业
  • PubSubClient:Arduino MQTT客户端库终极指南
  • 突破反爬与动态渲染:Selenium + Chrome 深度实战
  • 你的旧安卓手机别扔!用Termux API把它改造成智能家居控制中心(支持红外/通知/传感器)
  • 告别盲猜:用Process Monitor给你的软件行为做一次“全身体检”(以Chrome/微信为例)
  • 探索模型广场功能并找到适合文本摘要任务的最佳模型
  • 从哈工大论文到你的DSP:ESO谐波抑制算法移植实战,附C代码核心片段与调试心得