- 博客(88)
- 收藏
- 关注
原创 从生日悖论看哈希函数的冲突问题
最简单的想法就是 每个人的生日不相同的概率与直觉相违背。比如:我们知道 367 个人里必然有两个人同生日;但很少人知道其实 23 个人时概率就超过 50%;当人数达到 100 人时概率接近 99.997%。生日悖论(Birthday Paradox) 指的是这样一个现象:在只有 23 个人的群体里,至少有两个人生日相同的概率就超过 50%;当人数达到 100 时,这个概率几乎是 100%。
2025-09-09 21:37:01
887
原创 python闭包的解释
这里的h函数就是闭包函数,注意看,这个代码的全局变量有n,f,g,这一步执行之后,f将被写为h,对于这个h函数,它是内嵌在g函数内部的,h函数是会记住g函数执行之后的数据14的。h执行之后,将计算后的数据传给了全局变量g,python的灵活性在于全局变量既可以是数字,也可以是函数,第16行的f就是函数h(),第17行的g就是个数字15。的变量,并且外部函数返回了这个内部函数时,这个内部函数就是一个闭包。然后是进入执行阶段,注意顺序是倒着执行,先执行f,进入f里的参数g函数的内部。作为参数传入匿名函数。
2025-08-21 11:12:56
346
原创 python中的生成器
生成器是按需生成数据的迭代器。用yield关键字创建生成器函数。用圆括号()创建生成器表达式。它们的主要优点是内存高效和延迟计算。如果你需要处理大量数据或者进行无限序列的操作,生成器是 Python 中一个非常有用的工具。
2025-08-21 10:49:32
1430
原创 蒙特卡洛算法用python实现
蒙特卡洛算法(Monte Carlo method)是一种通过随机抽样和统计模拟来解决复杂计算问题的数值方法。其核心思想是利用随机数或伪随机数对概率模型进行大量实验,通过统计结果来近似求解问题。该方法因摩纳哥公国的蒙特卡洛赌场而得名,象征其概率统计的本质。
2025-07-06 22:36:37
428
原创 stm32学习笔记——TIM定时中断
TIM 定时中断是嵌入式系统中一种重要的功能,它基于定时器(TIM)实现。这个中断信号会使 CPU 暂停当前正在执行的主程序,转而执行预先编写好的中断服务程序(ISR),执行完中断服务程序后,CPU 再返回到主程序继续执行。TIM 定时中断的核心在于 “定时”,它可以实现精确的时间控制,为系统提供周期性的处理机制,广泛应用于需要定时执行任务的场景,如数据采集、信号生成、通信协议实现等。调用 TIM_ITConfig 函数,使能定时器的中断功能,选择要使能的中断源,如更新中断(TIM_IT_Update)。
2025-06-27 14:02:41
1190
原创 STM32学习笔记(个人记录)
推挽模式:高低电平都有驱动能力(可以反接LED,还可以点亮)开漏输出:高电平相当于高阻态,高电平没有驱动能力(不可以反接LED,无法点亮)代码组成:分为两部分,声明变量和写入while循环。
2025-06-23 11:49:22
192
原创 哈希表学习笔记
这个感觉好用很多,需要注意的是只需要开一个数组就行了,尽量用质数,而且是两倍多的。简单来说就是开一个比原数据小的多的数组,如果有冲突,在有冲突的节点下引入链表。要注意的就是N最好是质数。
2024-11-19 18:40:45
143
原创 位运算技巧
lowbit操作,知道该二进制数的最后一个1在第几位。样例,一个10进制数转化成二进制数的小程序。另外一个,知道一个二进制第k位是几的。位运算基础是了解源码,反码和补码。这里补充一些别的技巧。
2024-10-27 19:02:41
233
原创 C++的随机数操作
如果不引入种子,它的随机数不是随机数,是固定的一串数字。首先想到的肯定是rand()函数,但是这个有点问题。srand()函数,产生随机的种子。引入头文件<stdlib.h>产生0-99的随机数。
2024-10-13 12:52:22
433
原创 C++中cout的一些扩展
cout有许多扩展功能,比如一直很麻烦的保留小数数位的问题。需要添加<iomanip>头文件。cout实现保留小数数位。这里用几个问题来引入。
2024-10-13 12:33:50
298
原创 ACwing题目分享 756
这个题看起来比较简单,但实际上有些思维难度,现在想到的是模拟法,我们可以设好边界,然后从左上角开始遍历,沿着题目要求的顺序,沿着top left right bottom这四个边依次来做。模拟过程有很多坑,比如边界问题。我采用的是把遍历一次过后,把这个调节往里缩小一个单位。当两侧边界重合的时候结束循环。每一个小的循环,需要考虑每一处的边界,是否重合。
2024-10-13 01:17:31
348
原创 杭电合集小tips
主要大家还是用C和C++多,但是注意的是,#include这个文件是G++自带的,这意味着调节语言的时候需要导到G++这个语言,不然会显示查不到此文件。同理,或者这个问题还是有问题,在配置vscode的时候,输入这个头文件会报错,但是只要你把他错误波浪线提示删去,不报错的同时,还可以正常运行。这个杭电自己写的代码是可以看到的,在自己的主页那里,找自己做过的题目,可以查到源代码。杭电从2000开始,有很多基础题可以做,具体可以看这些题收录的位置。
2024-10-07 18:15:55
246
原创 杭电刷题合集:2021-2030
这个C语言版本的过了,但是底下C++版本就过不了。涉及字符串的就感觉不会了,这个也有点问题。有些字符串的输入我不了解。
2024-10-07 17:58:48
198
原创 KMP算法介绍
给定一个字符串,如"ABCDABC",我们可以通过拆分前缀和后缀来理解这个概念。想解释KMP算法,我们首先要知道这是处理什么问题的。(尤其要注意的是,这个后缀不是CB这样,就是还是按照原来的顺序)以一个元素作为结尾,统计这个字串的最大前缀和最大后缀的重复。首位可以考虑为-1或0,这是个规定。
2024-09-23 22:19:48
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅