- 博客(32)
- 收藏
- 关注
原创 并行途径和并行性等级
分解为多个微操作(取指、译码、访存、计算、写回),这些微操作可以在 CPU 内部的不同部件上。一个浏览器标签(进程)中,GUI渲染是一个线程,JS执行是一个线程,网络请求是一个线程。:做菜的流水线——一个人洗菜,一个人切菜,一个人炒菜,多条指令(菜)在流水线上重叠。:在厨房炒一个菜时,你同时“开火热锅”和“切菜”(两个动作重叠)。Chrome浏览器每个标签页是一个独立的进程(任务级并行)。它们是“小活”,共享同一个标签页的内存空间。是硬件设计层面的流水线技术,目的是。粒度:一个进程内的多个线程。
2025-12-20 16:54:33
399
原创 哈夫曼压缩与关键字检索
2.1.1 哈夫曼树节点(encoder.h)// 字符频次(权值)int par;// 父节点索引int lc, rc;// 左右孩子节点索引} htnode;2.1.2 编码信息结构(encoder.h)// 源字符// 编码长度(位)// 编码数据(最大支持127位编码)} huffcode;2.1.3 解码树节点(decoder.h)// 叶子节点存储的字符// 左孩子指针(编码位0)// 右孩子指针(编码位1)2.1.4 查找模块编码节点(finder.h)
2025-12-18 12:20:15
617
原创 [概率论与随机过程]一个例子对马尔可夫链所有知识进行梳理(持续更新)(理解记忆复习用)
摘要:《概率论与随机过程》教材以赌徒破产模型为主线,系统讲解马尔可夫链的核心概念。该模型通过赌徒资金变化(0到n元)直观展示状态分类(吸收态、暂态)、转移概率、周期性和遍历性等特性。重点包括:状态可达性判断、常返/暂态区分(有限链必正常返)、互通状态性质一致性、平稳分布存在条件(不可约有限链唯一)等。通过模型分析可快速掌握马尔可夫链的状态空间分解定理、极限分布求解方法等核心内容,为计算机专业学生提供理论与实践相结合的学习框架。(149字)
2025-12-07 12:04:56
864
原创 verilog实现n分频,n为奇数
高电平位置:count ≥ (N-1)/2 且 < N-1。奇数N无法直接实现50%占空比(N/2非整数):在计数到(N-1)/2时置1,N-1时清0。单信号占空比:(N-1)/2N → 非50%单边沿触发只能做到近似占空比。:模N计数(0到N-1):相同逻辑,但下降沿触发。分频比 = N(奇数):两信号相或(OR)组合后占空比:50%
2025-12-03 20:29:05
240
原创 realloc用法
情况返回值原指针原数据需要手动free原指针?原地扩容新地址=原地址失效保持原位不需要异地搬迁新地址≠原地址失效复制到新位置不需要分配失败NULL仍然有效保持原位需要。
2025-11-01 20:54:08
368
原创 栈实现表达式求值
(运算符栈 + 操作数栈)实现中缀表达式求值,基于运算符优先级进行比较和计算。优先级低于栈顶:弹出运算符和两个操作数进行计算,结果压回操作数栈。优先级等于栈顶(括号匹配):弹出左括号。遇到数字:解析完整数字后压入操作数栈。:使用C++整数除法,会截断小数部分。:遇到非法表达式直接崩溃,无友好提示。:运算符栈压入'#'作为结束标志。:不支持求模、幂运算等其他运算符。:不支持负号作为一元运算符(如。优先级高于栈顶:压入运算符栈。:内存分配失败时直接退出。:最多1000个字符。:输入中不能包含空格。
2025-10-31 21:14:59
314
原创 c++循环链表约瑟夫问题
/ 指向下一个节点的指针// 编号、性别、年龄// 姓名(最大20字符)2、宏定义define man 1 // 男性标识define woman 0 // 女性标识define maxnamelength 20 // 姓名最大长度3、函数功能说明3.1- 功能:初始化带头节点的循环链表- 参数:链表头指针的引用- 实现:分配头节点内存,设置next指向自身,标志空表- 功能:销毁整个链表,释放内存- 参数:链表头指针的引用。
2025-10-28 12:50:09
732
原创 json与yaml以及在langchain中应用(序列化模版)
JSON/YAML 本质:只是配置数据的序列化格式,不是编程语言能做的定义类名和构造参数嵌套对象结构引用外部资源文件不能做的任何动态执行逻辑函数定义和调用变量操作和计算。
2025-10-14 21:43:37
174
原创 PipelinePromptTemplate的替代品
方面替代方案思想模块化重用零件✅ 保留复杂度高,需要学习特定类✅ 低,用基础语法灵活性受限✅ 高,可自定义逻辑调试困难✅ 容易结论:Pipeline 思想很好,但实现方式从"专用类"回归到"基础语法",体现了简单优于复杂的设计原则!
2025-10-14 20:44:22
448
原创 示例选择器超时问题及如何免费接大模型api
对于这两个代码,如果直接使用书上这种写法,有可能就会导致超时的问题,原因是默认会调用 OpenAI 的嵌入 API需要 OpenAI API Key需要能访问 OpenAI 服务器(可能需要翻墙)如果不指定,会使用官方 OpenAI 端点实质上是因为需要用openai的,让ai去在线选择,因此首先要有梯子进入openai,其次要有额度,把openai的api key填到环境变量里。
2025-10-13 19:28:46
259
原创 段页式理解
分段负责逻辑组织、保护和共享(通过独立的段和段表实现)。分页负责物理内存的非连续分配和置换(通过段内的页表实现)。而在实际中,像x86这样的架构,为了兼容和历史原因,其实现方式(基于段寄存器+线性地址)可以看作是这个理想模型的一种变形和优化。
2025-10-04 12:32:02
592
原创 langchain多层组合链输出不匹配输入
本来的思路是根据propmt1的模版生成一种颜色color,然后分别传给propmt2,propmt3,生成颜色对应的国家和水果,再把国家和水果传给propmt4生成对应的颜色,但是大模型输出的结果却展示了输入的问题。
2025-09-30 00:57:46
249
原创 学完csapp对多维数组,malloc,指针的理解
中,`a` 是一个常量指针(准确说是数组名,在大多数表达式中退化为指向首元素的指针,类型是 `int*`,但 `a` 不是可修改的左值,所以不能 `a++`)。- 访问 `a[i]` 等价于 `*(a + i)`,通过首地址加偏移(`i * sizeof(int)`)得到元素地址。---
2025-09-25 12:26:33
203
原创 csapp 练习3.14答案有问题!!
这道题的C是有问题的,seta本质是把~CF&~ZF给%al,testb是&运算不可能溢出,CF一定是0,只取决于ZF ,那TEST应该是!但是答案这样写,忽视了seta和无符号<没有必然关系的事实(只有在前面有一条语句cmp S,D才可以根据本质把~CF&~ZF给D的操作翻译成D无符号<S)运行完编译器不可能给出题目所示的汇编指令,直接setne就行,不信可以拿去gcc看汇编代码。而且这道题本身代码就是为了教学而编出来的,如果真的是。递归的题目目前更不了,csapp看的我想si。
2025-04-30 22:44:40
248
原创 行末多余空格(散列应用:集合求差题解)
这是一道散列的简单题,只是行末的空格不太会处理正常思维是前几个都是打一个数字打一个空格,最后一个不打空格但是这道题难以确定是不是最后一个一个笨办法是,再开一个数组,把所有要输出的存进去,就能找到最后一个但是浪费空间,因此可以换个思路,只有第一个要输出的前面没有空格,其余前面都要打空格设置标记变量is,每次输出前,确定是不是第一个,不是就打空格。
2025-02-23 10:41:40
239
原创 二维数组qsort基础到拔高
怎么表示排名相同的情况?我的想法是,排好序后,正常循环打印,第一次遇到和上一个元素相同的元素时进入循环,一直打印这个相同的成绩和排名,直到遇到一个不相同的,或者打印到了最后描述简单,但写起来细节很多1,描述相邻元素相等关系时我选择了i-1和i,那就要想,有没有两个及以上的元素,分类第一次2,如果和上一个元素不相同就好办,不用管前面的元素内部有没有相同的,当前元素排名就是下标+13,如果和上一个元素相同进入循环,有循环就一定要想好能退出循环的所有条件,不同或全部结束。
2025-02-22 12:15:48
259
原创 滑动窗口(一一相依题解)
这道题我最开始以为是贪心,先统计所有连续的1字符串,所有连续的0字符串有几个0或1,在考虑一个0在连接左右1串的效率,即如果把这个0变成1,会使多长的1串受益,发现并不好实现问了ai才发现这是一种特殊的算法技巧:滑动窗口leftrightleftrightrightleft。
2025-02-19 13:07:20
343
原创 字符串处理
由于没有告知总共有多少个单词,因此我们可以使用while EOF的写法,每次读入一个单词并存储到二维字符数组里。接下来按倒着的顺序将所有单词输出即可。
2025-02-16 11:36:29
275
原创 日期加法&&周七迷踪题解
scanf()函数能不能直接用正确读入1900-01-01,1900-09-09呢,答案是可以的,scanf会将01,09先按八进制尝试读入,对于01可以正确读入,但09不符合八进制规则,最终还是会解释为十进制,成功读入9至于输出,则应该按照题目要求,用0补空位。
2025-02-15 10:43:04
737
原创 含相同元素的矩阵鞍点
当然这道题原题是保证矩阵各个元素不同,所以元素相同的测试用例是缺乏的,如果有什么测试用例,这段代码给不出正确结果的话,欢迎留言或给出改进意见。这个矩阵,显然右上角的两个2都是鞍点,那应该怎么处理多返回值呢,这里采用数组的方法。该元素为所在行的最大值,并且也是所在列中的最小值。找矩阵[M*N]中的鞍点。即查找矩阵中的元素,谢舍友@醇醛酸醚酮酯 邀。
2024-12-12 23:31:11
246
2
原创 递归打印日历
大一学生好玩爱玩,欢迎测试return 0;return 31;= 0)return 29;= 0?= 0?for (i = 0;i++) {t++;day++) {t++;
2024-11-12 18:48:52
492
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅