- 短链服务查询不存在的 ID 时容易穿透缓存直达数据库。本文用 Python 位数组实现布隆过滤器,按预期元素数和误判率计算位数组大小与哈希次数,通过双哈希构造多个哈希函数,并给出插入、查询和误判率验证的最小可运行代码。 短链服务查询不存在的 ID 时容易穿透缓存直达数据库。本文用 Python 位数组实现布隆过滤器,按预期元素数和误判率计算位数组大小与哈希次数,通过双哈希构造多个哈希函数,并给出插入、查询和误判率验证的最小可运行代码。
- 冒泡排序实验笔记:从轮次优化到边界控制今天在华为云 KooLabs 完成了“Python3 冒泡排序”云实验,把一个基础算法重新过了一遍,过程中有三点体会特别适合记录下来。 1. 冒泡排序的核心是“相邻比较 + 逐轮沉淀”每一轮从左到右比较相邻元素,较大的值不断向后交换;每一轮结束后,当前未排序区间的最大值会落到右端。因此,如果列表长度是 n,最多需要 n-1 轮。def bubble_so... 冒泡排序实验笔记:从轮次优化到边界控制今天在华为云 KooLabs 完成了“Python3 冒泡排序”云实验,把一个基础算法重新过了一遍,过程中有三点体会特别适合记录下来。 1. 冒泡排序的核心是“相邻比较 + 逐轮沉淀”每一轮从左到右比较相邻元素,较大的值不断向后交换;每一轮结束后,当前未排序区间的最大值会落到右端。因此,如果列表长度是 n,最多需要 n-1 轮。def bubble_so...
- 一、问题从哪里来做爬虫时,同一个 URL 被重复抓取几十次,既浪费带宽还可能被目标站封 IP;做缓存时,大量根本不存在的 key 穿透到数据库,直接把 DB 打垮;做消息推送时,同一条消息被重复下发,用户体验极差。这些场景的共同点是:需要快速判断“某个元素之前是否出现过”,而且数据量巨大,动辄上亿。最直观的做法是把所有元素塞进 HashSet。假设有 1 亿个 URL,每个平均 64 字节,... 一、问题从哪里来做爬虫时,同一个 URL 被重复抓取几十次,既浪费带宽还可能被目标站封 IP;做缓存时,大量根本不存在的 key 穿透到数据库,直接把 DB 打垮;做消息推送时,同一条消息被重复下发,用户体验极差。这些场景的共同点是:需要快速判断“某个元素之前是否出现过”,而且数据量巨大,动辄上亿。最直观的做法是把所有元素塞进 HashSet。假设有 1 亿个 URL,每个平均 64 字节,...
- 斜率在垂直线处没有定义,在近垂直线处放大误差,还会丢掉方向。用「两个点 + 叉积」或「中点 + 法向量 + 点积」表示直线和半平面,表示与判断阶段不需要除以坐标差;除法只留在确实需要求交的地方,并且每一处都能说清分母在什么条件下不为零。 斜率在垂直线处没有定义,在近垂直线处放大误差,还会丢掉方向。用「两个点 + 叉积」或「中点 + 法向量 + 点积」表示直线和半平面,表示与判断阶段不需要除以坐标差;除法只留在确实需要求交的地方,并且每一处都能说清分母在什么条件下不为零。
- 缓存穿透那阵子,恶意请求用不存在的ID狂刷接口,每次都回源打数据库。加了个布隆过滤器做前置判断,不存在的key直接拦下,数据库QPS立刻回落。这个结构的误判特性值得每个做缓存的人理解一遍。结构与原理一个m位的位数组加k个哈希函数。插入元素时,k个哈希各算出一个位置,置1。查询时同样算k个位置,全为1才「可能存在」,任一为0就「一定不存在」:importhashlibclassBloomFil... 缓存穿透那阵子,恶意请求用不存在的ID狂刷接口,每次都回源打数据库。加了个布隆过滤器做前置判断,不存在的key直接拦下,数据库QPS立刻回落。这个结构的误判特性值得每个做缓存的人理解一遍。结构与原理一个m位的位数组加k个哈希函数。插入元素时,k个哈希各算出一个位置,置1。查询时同样算k个位置,全为1才「可能存在」,任一为0就「一定不存在」:importhashlibclassBloomFil...
- 三角网格可以用一条整数等式做体检:3F = 2E − h,h 是只属于一个三角形的边数。这条式子很便宜,能抓非流形边和重复三角形;但如果 E 和 h 都从同一份三角形列表推出来,它接近恒真,抓不到一个干净的洞。这篇讲清公式怎么来、h 为什么不能换成凸包顶点数,以及它真正的检验力在哪里。 三角网格可以用一条整数等式做体检:3F = 2E − h,h 是只属于一个三角形的边数。这条式子很便宜,能抓非流形边和重复三角形;但如果 E 和 h 都从同一份三角形列表推出来,它接近恒真,抓不到一个干净的洞。这篇讲清公式怎么来、h 为什么不能换成凸包顶点数,以及它真正的检验力在哪里。
- 一个永远返回 0 违规的检查器,看起来最稳定,却什么也没证明。空圆性判据就是例子:5×5 网格曾报 32 处误报,复现后最大残差约 1.8×10⁻¹²。这篇讲怎么用已知错误的剖分给检查器做负例,以及为什么容差要跟着尺度走。 一个永远返回 0 违规的检查器,看起来最稳定,却什么也没证明。空圆性判据就是例子:5×5 网格曾报 32 处误报,复现后最大残差约 1.8×10⁻¹²。这篇讲怎么用已知错误的剖分给检查器做负例,以及为什么容差要跟着尺度走。
- 一、定时任务的常见做法及其瓶颈在后端开发中,定时任务无处不在:订单超时自动取消、缓存过期清理、心跳检测、失败重试。最直观的做法是为每个任务创建一个计时器(比如 Go 里的 time.AfterFunc),或者用一个最小堆维护所有任务的触发时间。任务量不大时,这两种做法都工作得很好。但当任务规模涨到十万、百万级别,问题就暴露出来了:海量计时器:每个任务一个 time.Timer,意味着同样数... 一、定时任务的常见做法及其瓶颈在后端开发中,定时任务无处不在:订单超时自动取消、缓存过期清理、心跳检测、失败重试。最直观的做法是为每个任务创建一个计时器(比如 Go 里的 time.AfterFunc),或者用一个最小堆维护所有任务的触发时间。任务量不大时,这两种做法都工作得很好。但当任务规模涨到十万、百万级别,问题就暴露出来了:海量计时器:每个任务一个 time.Timer,意味着同样数...
- 不调用几何库,从一个凸包扇形开始,逐点插入、拆三角形、用栈做 Lawson 翻边,最后全局合法化。这篇按执行顺序拆开五个环节:初始网、点定位、边上点的拆分、翻边栈与全局合法化、零面积清理,并说明每一步的容差为什么不一样。 不调用几何库,从一个凸包扇形开始,逐点插入、拆三角形、用栈做 Lawson 翻边,最后全局合法化。这篇按执行顺序拆开五个环节:初始网、点定位、边上点的拆分、翻边栈与全局合法化、零面积清理,并说明每一步的容差为什么不一样。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签