- 博客(136)
- 收藏
- 关注
原创 Aloha
本项目通过系统化的方法,将传统的协议性能分析问题转化为数据驱动的智能决策问题。通过构建统一的场景表示、标准化的仿真框架和基于深度学习的选择模型,实现了Aloha协议的智能化优化。未来工作方向扩展到更广泛的MAC层协议家族引入在线学习机制,支持模型动态更新结合实际网络部署,验证系统有效性探索强化学习在协议自适应调整中的应用这种方法论不仅适用于Aloha协议,也为整个无线通信协议的智能化管理提供了可借鉴的技术路径。通过数据驱动的方法,我们有望构建更加智能、自适应的未来网络系统。
2025-11-22 01:29:00
539
原创 信号与系统公式理解
摘要:本文系统总结了信号与系统的核心概念与变换关系。重点阐述了时域与频域的对应规律,包括傅里叶变换的六大关键性质(时移、频移、尺度变换、卷积定理等)及其记忆口诀。通过录音带和电梯等生动比喻,深入解析了时移特性(相位延迟)与频移特性(频率生成)的本质区别。文中还归纳了必须掌握的6个核心变换对、采样定理要点,并提供多种实用记忆方法(如因果律记忆法、观察者视角等)。最后强调理解时频域对称性的重要性,为信号分析提供了清晰的思维框架。
2025-11-21 17:58:55
960
原创 最短路问题spfa
SPFA在竞赛和实际应用中很受欢迎,因为对于随机图它的平均时间复杂度接近O(E),比Dijkstra的O(ElogV)常数更小,还能处理负权边。
2025-11-11 15:35:40
277
原创 CSMA(aloha)
本文构建了一个离散时间的CSMA网络仿真模型,重点分析了吞吐量、延迟和稳定性等性能指标。通过微时隙机制和碰撞检测时间x的影响,揭示了CSMA的双稳态特性,并提出了一系列理论公式,包括吞吐量公式(8-13)、双稳态点公式(33-35)和稳定区域边界公式(60-74)。仿真结果表明,微时隙长度a和碰撞检测时间x是决定CSMA性能上限的关键参数,而退避参数的稳定区域随节点数增加而急剧缩小。该研究为CSMA和Aloha协议提供了统一的理论框架,并通过参数扫描验证了理论预测的正确性。
2025-11-07 22:16:28
875
原创 Slotted Aloha with Successive Transmission(SAST)
的前提下大幅提升了数据吞吐量并降低了信令开销。我们的仿真可以先从验证其核心的吞吐量和延迟性能开始,之后再将其与2-step SDT等基准方案进行深入的对比分析。”机制,它通过利用成功的信道接入来最大化后续数据包的传输效率,从而在。:可以明显看出,SAST协议的核心创新在于“论文的仿真模型旨在验证其基于。的理论分析,核心是一个。总成功传输的数据包数。
2025-11-07 01:09:11
973
原创 计算复杂二项分布的定理——De Moivre-Laplace Theorem
摘要:蒂莫夫-拉普拉斯定理是中心极限定理在二项分布中的特例,表明当试验次数n足够大时,标准化后的二项分布随机变量(X_n-np)/√[np(1-p)]会趋近于标准正态分布N(0,1)。该定理适用于np和n(1-p)均≥5的情况,能简化二项概率计算,如1000次抛硬币中正面出现480-520次的概率近似为79.2%。这一定理为统计推断提供了重要工具,是概率论中离散分布正态逼近的基础性结果。
2025-11-05 23:37:11
750
原创 离散数学知识点总结(上半+初步整体总结)
离散数学知识体系主要包括数理逻辑、集合论、代数系统和图论四大模块。数理逻辑涵盖命题逻辑、谓词逻辑及形式系统,研究命题关系与推理规则;集合论包含集合运算、关系与函数等基础概念;代数系统讨论群、环、域、格与布尔代数等代数结构及其性质;图论则涉及图的基本概念、表示方法、操作及连通性分析。各模块相互关联,从抽象逻辑逐步过渡到具体应用,构建了离散数学的完整知识框架,为计算机科学等领域提供理论基础。
2025-11-05 00:43:08
995
原创 另一个角度看牛顿插值法
牛顿插值法是泰勒展开的离散化推广。其核心在于用差商代替导数:一阶差商近似一阶导数,二阶差商近似二阶导数/2!,依此类推。当所有插值节点趋近于同一点时,差商值收敛于相应阶导数与阶乘的比值。这种联系体现在: 差商采用首尾节点距离作分母,保持数学对称性 误差项结构与泰勒展开高度相似 节点越密集,差商越接近导数的离散估计 牛顿插值通过多点函数值信息构建离散逼近,在只有采样数据而无法求导时特别实用,体现了连续与离散数学的统一。
2025-10-29 10:40:57
678
原创 Aloha各协议的演进过程、摘要、意义
所属层级:奠基层主要功能实现完全分布式的无线数据通信。节点有数据即可随时发送,无需中心调度。关键技术采用完全随机接入与指数退避算法。碰撞后随机延时重传。技术贡献开创了多址接入(Multiple Access)的先河,是首个实现去中心化通信的协议。行业影响成功应用于早期的夏威夷大学ALOHANET系统,奠定了无线数据网络的理论基础。后续发展因其低效性被迅速改进,催生了时隙ALOHA及后续所有随机接入协议。通过对随机接入协议近半个世纪的演进梳理,我们可以清晰地看到一条从简单无序到。
2025-10-25 00:00:18
916
原创 Slotted Aloha
思考:可以明显看出,虽然本文提到了slotted Aloha,但其实本质上本文提到的是一个加了K退避优化的slotted Aloha变种,所以我们先做基础的slotted Aloha的简单仿真,之后再考虑进行K退避优化。比较GF、SAST和时隙ALOHA三种协议的信令传输比(STR),即每成功传输一个数据包所需的信令开销。通过图形展示三种协议在不同接入概率下的信令开销性能,验证理论模型的准确性,并为协议选择提供依据。论文的仿真模型是构建其理论分析的基础,其核心是一个。我的仿真代码实现了一个。
2025-10-24 22:51:34
1006
原创 Connection-Based Aloha
文章摘要 本研究挑战了传统认知,证明基于连接的Aloha协议在特定条件下优于无连接方案。通过建立创新的请求队列模型,研究团队精确分析了基于连接的时隙Aloha协议性能,考虑了数据吞吐量和排队延迟等关键指标。研究揭示了连接建立的价值在于将高代价的数据冲突转化为低代价的请求冲突,并推导出连接方案优于无连接方案的关键条件(如数据包长度阈值)。仿真结果表明,在5G M2M典型场景下,基于连接的方案不仅能提供更高吞吐量和更强鲁棒性,甚至可实现更低平均延迟。这项研究为5G/6G网络中的随机接入协议设计提供了新视角,挑战
2025-10-24 02:47:09
867
原创 旅行
旅行这题也太坑了,如果我现场打这题估计要挂掉,不过部分分还是很好拿的其实本题记住一个原则,考虑的是断掉的那条边,这样讨论就不会错,具体来说,对于一个基环点,如果下一点不是基环点,就要直接走(参见图一),而影响当前是否走基环点的只有上一个有环的基环点(参见图一)其实本题记住一个原则,考虑的是断掉的那条边,这样讨论就不会错,具体来说,对于一个基环点,如果下一点不是基环点,就要直接走(参见图一),而影响当前是否走基环点的只有上一个有环的基环点(参见图一)其实本题记住一个原则,考虑的是断掉的那条边,这样讨论就不
2020-11-27 18:10:19
333
原创 跑路
跑路#include<bits/stdc++.h>using namespace std;const int N=110;int n,head[N],cnt=0,m;struct edge{ int link,v;}q[N*N];void put(int u,int v){ q[++cnt].v=v; q[cnt].link=head[u]; head[u]=cnt;}bool dp[N][N][32],f[N][N];bool vis[N];int dis[N]
2020-11-24 22:25:50
405
原创 组合数问题
组合数问题本题是考前缀和,需要注意的是边界的判定,比如本题,并不是取余为0就为0(如0)所以对于Cii,C00,C10,C01要特殊计算所以对于C_i^i,C_0^0,C_1^0,C_0^1要特殊计算所以对于Cii,C00,C10,C01要特殊计算#include<bits/stdc++.h>using namespace std;const int N=2020;int n,m,k;int C[N][N],ans[N][N];int main(){ int t;
2020-11-20 18:39:50
438
原创 卷
卷本题就是一个思路,dp数据(乘法)过大时,可以考虑取log,比较的时候再计算答案#include<bits/stdc++.h>using namespace std;typedef long long ll;int mod=1e9+7;const int N=2e5+5;int w[N],n,head[N],cnt=0;struct edge{ int link,v;}q[N<<1];void put(int u,int v){ q[++cnt].v=v;
2020-11-20 17:40:03
178
原创 wxh-a
wxh-a#include<bits/stdc++.h>using namespace std;typedef long long ll;int mod=1e9+7;const int N=1e5+5;int n,a[N],jc[N];int cnt=0,ans=1;int main(){ scanf("%d",&n); jc[1]=1; for(int i=2;i<=n;i++)jc[i]=1ll*i*jc[i-1]%mod; for(int i=1;i
2020-11-20 17:37:22
202
原创 wxh-b2
wxh-b2本题虽然很容易想,但就像CSPT2一样多坑本题虽然很容易想,但就像CSPT2一样多坑本题虽然很容易想,但就像CSPT2一样多坑———————————————————————————————只要一行一列中有一个就可以用这一列判断一行一列要用或——————————————————————————#include<bits/stdc++.h>using namespace std;const int N=502;int n;char s[N][N];vector
2020-11-20 17:35:31
178
原创 vector
发现vector居然这么容易忘,还是写篇博客记录一下发现vector 居然这么容易忘,还是写篇博客记录一下发现vector居然这么容易忘,还是写篇博客记录一下最常忘的写法vector <int> ::iterator it还要注意的是vector下标并不是从1开始,所以不能直接扫下标链接一份大佬的博客...
2020-11-20 17:03:12
133
原创 wxh-b
wxh-b细节比较多,主要思路就是转换为找最短路#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=5e5+5,M=1e5+5;//int head[N],cnt=0,a,b,c,d,e,m;struct edge{ int link,v,l;}q[M<<1];void put(int u,int v,int w){ q[++cnt].v=v; q[cnt].
2020-11-17 18:16:53
352
原创 骑行
骑行这题解法很简单,但思路很难想对这种题,其实考虑枚举最大值,然后最大值链配对即可#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=3e5+5;int n,cnt=0,head[N];struct edge{ int link,v;}q[N<<1];void put(int u,int v){ q[++cnt].v=v; q[cnt].link=head[
2020-10-30 22:07:26
218
原创 逆流
逆流#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int n,l,t;int x[N],w[N],st=1;int main(){ scanf("%d%d%d",&n,&l,&t); t%=l; for(int i=1;i<=n;i++){ scanf("%d%d",&x[i],&w[i]); if(w[i]==1) x[i]+=t; if(
2020-10-30 21:08:43
256
原创 神奇的操作
神奇的操作仔细思考后发现本题没有什么办法,但是仔细想想好像记忆化可以过(因为每次/2或/3,-1的操作尽量不用),但是,1e9好像没办法记忆化,然后就只能碰碰运气,加个优化不记忆化能过吗?qwq——显然过不了可以当个套路来记,用map记忆化#include<bits/stdc++.h>using namespace std;typedef long long ll;int n;int f1[33],f2[25];map <ll ,int > mp; ll ksm(
2020-10-28 18:14:45
161
原创 构造
构造很容易想到的一个思路,然后用插板法即可#include<bits/stdc++.h>using namespace std;const int N=1e5+5;typedef long long ll;int n,m;ll mod=1e9+7;ll ksm(int x,int pow){ ll ans=1,res=x; while(pow){ if(pow&1) ans=ans*res%mod; res=res*res%mod; pow>>
2020-10-28 18:09:55
236
原创 密码
密码本题是个结论题,每个数都可以用科学计数法表示,然后对于科学计数法的基数部分取三位就行了本题是个结论题,每个数都可以用科学计数法表示,然后对于科学计数法的基数部分取三位就行了本题是个结论题,每个数都可以用科学计数法表示,然后对于科学计数法的基数部分取三位就行了#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,k;int main(){ scanf("%d%d",&n,&k)
2020-10-21 18:40:58
209
原创 字符串
字符串记一个结论,比较a+b和b+a即可#include<bits/stdc++.h>using namespace std;const int N=1e5+5;string a,b;int main(){ int T; scanf("%d",&T); while(T--){ cin>>a>>b; if(a+b>b+a){ puts(">"); } else if(a+b<b+a)
2020-10-20 18:33:06
121
原创 Prince and princess
Prince and princess本题看起来像LCS,所以先提LCS的解法最长公共子序列发现最长公共子其实就是两个序列不同元素的LIS,然后就能在O(nlogn)的时间内求出长度——————————————————————————再考虑本题,发现是一样的性质,所以套用上面的做法再考虑本题,发现是一样的性质,所以套用上面的做法再考虑本题,发现是一样的性质,所以套用上面的做法需要注意的是本题输出方式为Case需要注意的是本题输出方式为Case需要注意的是本题输出方式为Case#include&
2020-10-16 23:02:44
214
原创 永无乡
永无乡怎么感觉一道省选题比一道模板题还水n<=1e5,所以考虑线段树合并,然后本题直接对每个点建线段树就做完了n<=1e5,所以考虑线段树合并,然后本题直接对每个点建线段树就做完了n<=1e5,所以考虑线段树合并,然后本题直接对每个点建线段树就做完了#include<bits/stdc++.h>using namespace std;const int N=1e5+2;int n,m,tnt=0;int p[N],rt[N],ss[N];int fa[N];
2020-10-13 18:16:35
235
原创 Lomsat gelral
Lomsat gelralCF 600E写几个注意点push_up操作直接在函数内做,不然不好统计空间复杂度是O(nlogn),所以在合并子树时要尽量节省空间#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+5;int tnt=0,rt[N];int n,colr[N],cnt=0,head[N];struct edge{ int link,v;}q[N&
2020-10-12 18:48:05
205
原创 可持久化线段树
可持久化线段树可持久化线段树就是对[1,n]的每一个i,都建一颗线段树,然后为了省空间就复制了一部分的树#include<bits/stdc++.h>using namespace std;const int N=2e5+5;struct zxs{ int l,r,sum,ed;}q[N*18*4];int n,m,a[N],b[N],c[N],cnt=0;int rt[N];int newnode(int id){ q[++cnt]=q[id]; return cnt
2020-10-08 15:45:44
259
原创 achen
achen#include<bits/stdc++.h>using namespace std;const int N=1e6+4;typedef long long ll;ll mod=998244353;ll ksm(ll x,ll pow){ ll ans=1,res=x; while(pow){ if(pow&1) ans=1ull*ans*res%mod; res=1ull*res*res%mod; pow>>=1; } return
2020-10-08 15:12:22
220
原创 luck
luck没什么好说的,就是一道裸题但需要注意的是时间是O(n*k),1e7级别,这个级别是会卡常的,所以要进行优化这是90分代码#include<bits/stdc++.h>using namespace std;typedef long long ll;ll ans=0;int mod=1e9+7;const int N=5e4+5;int y,z;int dp[N][505];ll dfs(int dep,int state,int p){ int tmp=y-s
2020-10-08 15:09:31
246
原创 最大后缀值个数
最大后缀值个数本题看看数据范围其实就大概知道怎么做,然后发现是单调的,直接单调栈就行了本题有个很坑的细节(其实是我打得太烂了,调了很久没跳出来,一直80分)#include<bits/stdc++.h>using namespace std;const int N=1e6+5;int n;int val[N],f[N],head[N],tnt=0;struct edge{ int link,v;}q[N<<1];void put(int x,int y){
2020-10-06 23:17:48
432
原创 石头
石头这题我没想到(连正解的边都没挨上),所以直接复述题解这题我没想到(连正解的边都没挨上),所以直接复述题解这题我没想到(连正解的边都没挨上),所以直接复述题解首先发现n太大,所以我们要想办法找到一些答案的限制首先发现n太大,所以我们要想办法找到一些答案的限制首先发现n太大,所以我们要想办法找到一些答案的限制然后我们发现3∗n2−3∗n+1=6∗(n2)+1然后我们发现3*n^2-3*n+1=6*\tbinom{n}{2}+1然后我们发现3∗n2−3∗n+1=6∗(2n)+1任意一个正整数都能写成
2020-09-22 17:38:18
159
原创 洗衣服
洗衣服我记住了1e7要卡常本题随便推一推,发现有许多奇怪的性质,但好像都没什么用(实际上是我没想出来重要的性质)本题随便推一推,发现有许多奇怪的性质,但好像都没什么用(实际上是我没想出来重要的性质)本题随便推一推,发现有许多奇怪的性质,但好像都没什么用(实际上是我没想出来重要的性质)随便搞一搞之后发现前面一连串的数取或不取对答案没有影响所以我们知道最终取得的答案一定是取最后连续几个的答案这时可以记一个后缀算最后连续几个的答案然后我们发现决策点是单调的(很简单证明,这里就不推了)计算答案就是mi
2020-09-21 18:47:09
318
原创 蘑菇
蘑菇仔细思考,发现一个dp就做完了(显然我没想出来)仔细思考,发现一个dp就做完了(显然我没想出来)仔细思考,发现一个dp就做完了(显然我没想出来)好好想一下,树的操作好像就那么几种,想这种求和的怎么看都像树形dp,所以我们就做完了好好想一下,树的操作好像就那么几种,想这种求和的怎么看都像树形dp,所以我们就做完了好好想一下,树的操作好像就那么几种,想这种求和的怎么看都像树形dp,所以我们就做完了f[x][0]表示不包括x联通块的乘积,f[x][1]表示包括x连通块的乘积,随便搞一搞就做完了#inc
2020-09-18 22:16:19
236
原创 PiPi 家族
PiPi 家族仔细想想,好像排序挺管用的,所以就对depth[s]+a[s]排序,因为可以发现若v∈son[s],其中son[s]表示s的子树,仔细想想,好像排序挺管用的,所以就对depth[s]+a[s]排序,因为可以发现若v∈son[s],其中son[s]表示s的子树,仔细想想,好像排序挺管用的,所以就对depth[s]+a[s]排序,因为可以发现若v∈son[s],其中son[s]表示s的子树,若有a[s]+depth[s]>a[v]+depth[v],因为子树要先被访问,所以v一定不会为答
2020-09-18 22:12:01
216
原创 CodeForces 1020C
CodeForces 1020C这题其实挺好像,发现数据范围很小,直接模拟就行了这题其实挺好像,发现数据范围很小,直接模拟就行了这题其实挺好像,发现数据范围很小,直接模拟就行了but这题我不是在CF上打的,看不到数据点,有个细节真的没想到but这题我不是在CF上打的,看不到数据点,有个细节真的没想到but这题我不是在CF上打的,看不到数据点,有个细节真的没想到#include<iostream>#include<cstdio>#include<vector>.
2020-09-18 22:00:47
171
原创 树
树这道题虽然已经做过多次,但比赛时还是不会做。看了题解之后,我觉得要是我自己想肯定是做不出来的 qwq————————————————————————————————f[i]表示i到fath[i]的期望步数,g[i]表示fath[i]到i的期望步数仔细想想这个做法挺显然的,因为要输入多组u,v,所以只有这样才能在log的时间里求出期望长度仔细想想这个做法挺显然的,因为要输入多组u,v,所以只有这样才能在log的时间里求出期望长度仔细想想这个做法挺显然的,因为要输入多组u,v,所以只有这样才能在lo
2020-09-14 18:41:43
156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅