势函数和鞅的停时定理
前置芝士
鞅:
鞅是一类特殊的随机过程,假设我们从一开始就在观察一场赌博游戏,现在已经得到了前t秒的观测值,那么当第t+1 秒观测值的期望等于第t秒的观测值时,我们称这是一个公平赌博游戏。
具体来说,对于一个随机过程 A 1 , A 2 , . . . {A_1,A_2,...} A1,A2,...,如果 E ( A n + 1 ∣ A 0 , A 2 , . . A n ) = A n E(A_{n+1}|A_0,A_2,..A_n)=A_n E(An+1∣A0,A2,..An)=An,我们称该随机过程为鞅。
鞅的停时定理:
设时停时间(在不知道随机过程的中间状态下停止的时刻)为t,则 E ( t ) = E ( 0 ) E(t)=E(0) E(t)=E(0)
这个E到底是什么,由具体的情境而定,但是只要一个随机过程是一个鞅,它就有该结论
势函数
接下来我们考虑一个很常见的问题:
对于一个随机过程 A 1 , A 2 , . . . {A_1,A_2,...} A1,A2,...,如果其终止状态 A t A_t At是确定的,求 E [ t ] E[t] E[t],即时停时刻的期望(注意这里我们不要求该随机过程是一个鞅)
为此,我们引入一个势函数 ϕ ( X ) \phi(X) ϕ(X)
并且 ϕ ( x ) \phi(x) ϕ(x)满足如下性质:
- ∀ n < t , E ( ϕ ( A n + 1 ) − ϕ ( A n ) ∣ A 0 , A 1 , . . . A n ) = − 1 \forall n<t, E(\phi(A_{n+1})-\phi(A_n)|A_0,A_1,...A_n)=-1 ∀n<t,E(ϕ(An+1)−ϕ(An)∣A0,A1,...An)=−1,即势能不断降低
- E ( ϕ ( A t ) ) = C E(\phi(A_t))=C E(ϕ(At))=C,是一个常值
那么如果我们令 X t = ϕ ( A t ) + t X_t=\phi(A_t)+t Xt=ϕ(At)+t,则 E ( X n + 1 − X n ∣ x 0 , x 1 . . . x n ) = E ( ϕ ( A n + 1 ) − ϕ ( A n ) + 1 ∣ x 0 , x 1 . . . x n ) = E ( ϕ ( A n + 1 ) − ϕ ( A n ) ∣ x 0 , x 1 . . . x n ) + 1 = 0 E(X_{n+1}-X_n|x_0,x_1...x_n)=E(\phi(A_{n+1})-\phi(A_n)+1|x_0,x_1...x_n)=E(\phi(A_{n+1})-\phi(A_n)|x_0,x_1...x_n)+1=0 E(Xn+1−Xn∣x0,x1...xn)=E(ϕ(An+1)−ϕ(An)+1∣x0,x1...xn)=E(ϕ(An+1)−ϕ(An)∣x0,x1...xn)+1=0
我们发现随机过程 X t X_t Xt就是一个鞅了
那么由鞅的停时原理, E ( X t ) = E ( X 0 ) E(X_t)=E(X_0) E(Xt)=E(X0),即 E ( ϕ ( A t ) + t ) = E ( ϕ ( A 0 ) + 0 ) E(\phi(A_t)+t)=E(\phi(A_0)+0) E(ϕ(At)+t)=E(ϕ(A0)+0),也即 E ( ϕ ( A t ) ) + E ( t ) = E ( ϕ ( A 0 ) ) E(\phi(A_t))+E(t)=E(\phi(A_0)) E(ϕ(At))+E(t)=E(ϕ(A0))
所以我们得到 E ( t ) = E ( ϕ ( A 0 ) ) − E ( ϕ ( A t ) ) E(t)=E(\phi(A_0))-E(\phi(A_t)) E(t)=E(ϕ(A0))−E(ϕ(At)),根据我们之前定义的性质, E ( ϕ ) A t E(\phi)A_t E(ϕ)At为一个常值,而 E ( ϕ ( A 0 ) ) E(\phi(A_0)) E(ϕ(A0))显然也是一个常值,所以只要能找到这个满足条件的势函数,就能很方便的求出 E ( t ) E(t) E(t)
这里我们只是在随机过程 X t X_t Xt中应用了停时定理,对原本的随机过程 A t A_t At并没有做什么限制
接下来结合具体的题目来讨论一下如何构造这样的一个势函数
CF1349D
大意:
有n个人在玩传球游戏,一开始第 i i i个人有 a i a_i ai个球。每一次传球,等概率随机选中一个球,设其当前拥有者为 i i i, i i i将这个球等概率随机传给另一个人 j ( j ≠ i ) j(j\neq i) j(j=i)。当某一个人拥有所有球时,停止游戏。问游戏停止时的期望传球次数。
记球的总数为m
不妨记状态 A t = ( a t , 1 , a t , 2 . . . a t , n ) A_t=(a_{t,1},a_{t,2}...a_{t,n}) At=(at,1,at,2...at,n),一个n维向量,分别表示 在时刻t,第i个人手中球的数量,显然它唯一地表示了某一个时刻的全局状态
也就是说,我们现在就把这个游戏过程抽象成了一个随机过程 A 0 , A 1 . . . . A_0,A_1.... A0,A1....,并且其停时为t。那么按照之前所说,我们需要去定义一个势函数 ϕ ( A t ) \phi(A_t) ϕ(At),为了计算方便,我们可以将 ϕ \phi ϕ具体到A的每一维向量,不妨记为 ϕ ( A t ) = ∑ i = 1 n f ( a t , i ) \phi(A_t)=\sum_{i=1}^{n}f(a_{t,i}) ϕ(At)=∑i=1nf(at,i),这里f是什么我们并不知道,但是如果我们知道了f,其实也就是相当于构造出了这个势能函数
这里再把我们定义的 ϕ \phi ϕ的性质再放一下
ϕ ( x ) \phi(x) ϕ(x)满足如下性质:
- ∀ n < t , E ( ϕ ( A n + 1 ) − ϕ ( A n ) ∣ A 0 , A 1 , . . . A n ) = − 1 \forall n<t, E(\phi(A_{n+1})-\phi(A_n)|A_0,A_1,...A_n)=-1 ∀n<t,E(ϕ(An+1)−ϕ(An)∣A0,A1,...An)=−1,即势能不断降低
- E ( ϕ ( A t ) ) = C E(\phi(A_t))=C E(ϕ(At))=C,是一个常值
那么我们首先来考虑第一个性质,为了方便,不妨先考虑 E ( ϕ ( A n + 1 ) ∣ A 0 , A 1 , . . . A n ) E(\phi(A_{n+1})|A_0,A_1,...A_n) E(ϕ(An+1)∣A0,A1,...An)
发现传球过程就是一个 M a r k o v Markov Markov过程,并且该时刻的状态只与上一个时刻的状态有关,所以 E ( ϕ ( A n + 1 ) ∣ A 0 , A 1 , . . . A n ) = E ( ϕ ( A n + 1 ) ∣ A n ) E(\phi(A_{n+1})|A_0,A_1,...A_n)=E(\phi(A_{n+1})|A_n) E(ϕ(An+1)∣A0,A1,...An)=E(ϕ(An+1)∣An)
考虑一次转移的所有可能
i传球给j的概率是 a t , i m 1 n − 1 \large \frac{a_{t,i}}{m}\frac{1}{n-1} mat,in−11
E ( ϕ ( A n + 1 ) ∣ A n ) = ∑ i = 1 n ∑ j ≠ i a t , i m 1 n − 1 [ f ( a t , i − 1 ) + f ( a t , j + 1 ) + ∑ k ∉ ( i , j ) f ( a t , k ) ] E(\phi(A_{n+1})|A_n)=\sum_{i=1}^{n}\sum_{j\neq i}\frac{a_{t,i}}{m}\frac{1}{n-1}[f(a_{t,i}-1)+f(a_{t,j}+1)+\sum_{k\notin(i,j)}f(a_{t,k})] E(ϕ(An+1)∣An)=∑i=1n∑j=imat,in−11[f(at,i−1)+f(at,j+1)+∑k∈/(i,j)f(at,k)]
= ∑ i = 1 n a t , i m f ( a t , i − 1 ) + m − a t , i m ( n − 1 ) f ( a t , i + 1 ) + ( m − a t , i ) ( n − 2 ) m ( n − 1 ) f ( a t , i ) =\sum_{i=1}^{n}\frac{a_{t,i}}{m}f(a_{t,i}-1)+\frac{m-a_{t,i}}{m(n-1)}f(a_{t,i}+1)+\frac{(m-a_{t,i})(n-2)}{m(n-1)}f(a_{t,i}) =∑i=1nmat,if(at,i−1)+m(n−1)m−at,if(at,i+1)+m(n−1)(m−at,i)(n−2)f(at,i)
根据我们定义的性质 E ( ϕ ( A n + 1 ) − ϕ ( A n ) ∣ A 0 , A 1 , . . . A n ) = − 1 E(\phi(A_{n+1})-\phi(A_n)|A_0,A_1,...A_n)=-1 E(ϕ(An+1)−ϕ(An)∣A0,A1,...An)=−1
E ( ϕ ( A n + 1 ) − ϕ ( A n ) ∣ A 0 , A 1 , . . . A n ) = E ( ϕ ( A n + 1 ) − ϕ ( A n ) ∣ A n ) E(\phi(A_{n+1})-\phi(A_n)|A_0,A_1,...A_n)=E(\phi(A_{n+1})-\phi(A_n)|A_n) E(ϕ(An+1)−ϕ(An)∣A0,A1,...An)=E(ϕ(An+1)−ϕ(An)∣An)
= ( ∑ i = 1 n a t , i m f ( a t , i − 1 ) + m − a t , i m ( n − 1 ) f ( a t , i + 1 ) + ( m − a t , i ) ( n − 2 ) m ( n − 1 ) f ( a t , i ) ) − ∑ f ( a t , i ) = − 1 =(\sum_{i=1}^{n}\frac{a_{t,i}}{m}f(a_{t,i}-1)+\frac{m-a_{t,i}}{m(n-1)}f(a_{t,i}+1)+\frac{(m-a_{t,i})(n-2)}{m(n-1)}f(a_{t,i}))-\sum f(a_{t,i})=-1 =(∑i=1nmat,if(at,i−1)+m(n−1)m−at,if(at,i+1)+m(n−1)(m−at,i)(n−2)f(at,i))−∑f(at,i)=−1
所以 ∑ f ( a t , i ) = ( ∑ i = 1 n a t , i m f ( a t , i − 1 ) + m − a t , i m ( n − 1 ) f ( a t , i + 1 ) + ( m − a t , i ) ( n − 2 ) m ( n − 1 ) f ( a t , i ) ) + 1 \sum f(a_{t,i})=(\sum_{i=1}^{n}\frac{a_{t,i}}{m}f(a_{t,i}-1)+\frac{m-a_{t,i}}{m(n-1)}f(a_{t,i}+1)+\frac{(m-a_{t,i})(n-2)}{m(n-1)}f(a_{t,i}))+1 ∑f(at,i)=(∑i=1nmat,if(at,i−1)+m(n−1)m−at,if(at,i+1)+m(n−1)(m−at,i)(n−2)f(at,i))+1
那么我们可以把末尾的1分配到每一个和式里面去,这样左右的形式就统一了
所以 ∑ f ( a t , i ) = ∑ i = 1 n [ a t , i m f ( a t , i − 1 ) + m − a t , i m ( n − 1 ) f ( a t , i + 1 ) + ( m − a t , i ) ( n − 2 ) m ( n − 1 ) f ( a t , i ) + a t , i n ] \sum f(a_{t,i})=\sum_{i=1}^{n}[\frac{a_{t,i}}{m}f(a_{t,i}-1)+\frac{m-a_{t,i}}{m(n-1)}f(a_{t,i}+1)+\frac{(m-a_{t,i})(n-2)}{m(n-1)}f(a_{t,i})+\frac{a_{t,i}}{n}] ∑f(at,i)=∑i=1n[mat,if(at,i−1)+m(n−1)m−at,if(at,i+1)+m(n−1)(m−at,i)(n−2)f(at,i)+nat,i]
那么不妨记 f ( a ) = a m f ( a − 1 ) + m − a m ( n − 1 ) f ( a + 1 ) + ( m − a ) ( n − 2 ) m ( n − 1 ) f ( a ) + a n f(a)=\frac{a}{m}f(a-1)+\frac{m-a}{m(n-1)}f(a+1)+\frac{(m-a)(n-2)}{m(n-1)}f(a)+\frac{a}{n} f(a)=maf(a−1)+m(n−1)m−af(a+1)+m(n−1)(m−a)(n−2)f(a)+na
这样和式还是成立的,我们也成功抽象出了f函数
再转化一下, f ( a + 1 ) = m + a n − 2 a m − a f ( a ) − a ( n − 1 ) m − a ( f ( a − 1 ) + 1 ) f(a+1)=\frac{m+an-2a}{m-a}f(a)-\frac{a(n-1)}{m-a}(f(a-1)+1) f(a+1)=m−am+an−2af(a)−m−aa(n−1)(f(a−1)+1)
代入边界条件 a = 0 a=0 a=0时,有 f ( 1 ) = f ( 0 ) f(1)=f(0) f(1)=f(0),所以我们可以设 f ( 1 ) = f ( 0 ) = 0 f(1)=f(0)=0 f(1)=f(0)=0,毕竟势函数的初值并不重要
这样就得到了f,也就是相当于得到了势函数 ϕ ( x t ) = ∑ i f ( x t , i ) \phi(x_t)=\sum_{i}f(x_{t,i}) ϕ(xt)=∑if(xt,i)
然后考虑势函数的第二个性质: E ( ϕ ( A t ) ) = C E(\phi(A_t))=C E(ϕ(At))=C是一个常值
显然 E ( ϕ ( A t ) ) = ∑ i f ( a t , i ) = f ( m ) + ( n − 1 ) f ( 0 ) E(\phi(A_t))=\sum_{i}f(a_{t,i})=f(m)+(n-1)f(0) E(ϕ(At))=∑if(at,i)=f(m)+(n−1)f(0)是一个常值
所以根据我们的结论, E ( t ) = E ( ϕ ( A 0 ) ) − E ( ϕ ( A t ) ) = ∑ i f ( a 0 , i ) − f ( m ) − ( n − 1 ) f ( 0 ) = ∑ i f ( a 0 , i ) − f ( m ) E(t)=E(\phi(A_0))-E(\phi(A_t))=\sum_{i}f(a_{0,i})-f(m)-(n-1)f(0)=\sum_{i}f(a_{0,i})-f(m) E(t)=E(ϕ(A0))−E(ϕ(At))=∑if(a0,i)−f(m)−(n−1)f(0)=∑if(a0,i)−f(m)
这样我们就非常方便的得到了停时的期望
不妨来看一个近一点的例子
杭电多校09 Coins
大意:
n个人,每个人手中初始有 a i a_i ai个硬币,每次随机选择两个人,第一个人给第二个人一个硬币,如果某个人手中没有硬币了,则立即退出游戏,不再回来。当某一个人拥有全部硬币时,游戏结束
问停时的期望
题意与上一题十分相像,但是该题存在人数不固定的情况,所以我们描述游戏局面的时候要稍微改变一下
还是令 m = ∑ a i m=\sum a_i m=∑ai
令 A t = ( a t , 1 , a t , 2 . . . a t , h t ) A_t=(a_{t,1},a_{t,2}...a_{t,h_t}) At=(at,1,at,2...at,ht)来描述第t个时刻的局面,其中 h t h_t ht表示当前的剩余人数,显然它不是一个固定的值。但是我们能保证 ∀ i ≤ h t , a t , i > 0 \forall i\leq h_t,a_{t,i}>0 ∀i≤ht,at,i>0
仿照上一题的思路,我们令 ϕ ( A t ) = ∑ i = 1 n f ( a t , i ) \phi(A_t)=\sum_{i=1}^{n}f(a_{t,i}) ϕ(At)=∑i=1nf(at,i)作为势函数,尝试确定f
E ( ϕ ( A n + 1 ) ∣ A n ) = ∑ i = 1 h t ∑ j ≠ i 1 h t ( h t − 1 ) [ f ( a t , i − 1 ) + f ( a t , j + 1 ) + ∑ k ∉ ( i , j ) f ( a t , k ) ] E(\phi(A_{n+1})|A_n)=\sum_{i=1}^{h_t}\sum_{j\neq i}\frac{1}{h_t(h_t-1)}[f(a_{t,i}-1)+f(a_{t,j}+1)+\sum_{k\notin(i,j)}f(a_{t,k})] E(ϕ(An+1)∣An)=∑i=1ht∑j=iht(ht−1)1[f(at,i−1)+f(at,j+1)+∑k∈/(i,j)f(at,k)]
= ∑ i = 1 h t 1 h t f ( a t , i − 1 ) + 1 h t f ( a t , i + 1 ) + h t h t − 2 f ( a t , i ) =\sum_{i=1}^{h_t}\frac{1}{h_t}f(a_{t,i}-1)+\frac{1}{h_t}f(a_{t,i}+1)+\frac{h_t}{h_t-2}f(a_{t,i}) =∑i=1htht1f(at,i−1)+ht1f(at,i+1)+ht−2htf(at,i)
代入 E ( ϕ ( A n + 1 ) − ϕ ( A n ) ∣ A 0 , A 1 , . . . A n ) = − 1 E(\phi(A_{n+1})-\phi(A_n)|A_0,A_1,...A_n)=-1 E(ϕ(An+1)−ϕ(An)∣A0,A1,...An)=−1,也就是 E ( ϕ ( A n + 1 ) − ϕ ( A n ) ∣ A n ) = − 1 E(\phi(A_{n+1})-\phi(A_n)|A_n)=-1 E(ϕ(An+1)−ϕ(An)∣An)=−1(显然这里当前局面也只与上一个局面有关),有
∑ i = 1 h t f ( a t , i ) = [ ∑ i = 1 h t 1 h t f ( a t , i − 1 ) + 1 h t f ( a t , i + 1 ) + h t h t − 2 f ( a t , i ) ] + 1 \sum_{i=1}^{h_t} f(a_{t,i})=[\sum_{i=1}^{h_t}\frac{1}{h_t}f(a_{t,i}-1)+\frac{1}{h_t}f(a_{t,i}+1)+\frac{h_t}{h_t-2}f(a_{t,i})]+1 ∑i=1htf(at,i)=[∑i=1htht1f(at,i−1)+ht1f(at,i+1)+ht−2htf(at,i)]+1
= ∑ i = 1 h t ( 1 h t f ( a t , i − 1 ) + 1 h t f ( a t , i + 1 ) + h t h t − 2 f ( a t , i ) + 1 h t ) =\sum_{i=1}^{h_t}(\frac{1}{h_t}f(a_{t,i}-1)+\frac{1}{h_t}f(a_{t,i}+1)+\frac{h_t}{h_t-2}f(a_{t,i})+\frac{1}{h_t}) =∑i=1ht(ht1f(at,i−1)+ht1f(at,i+1)+ht−2htf(at,i)+ht1)
抽象出 f ( a ) = 1 h f ( a − 1 ) + 1 h f ( a + 1 ) + h h − 2 f ( a ) + 1 h f(a)=\frac{1}{h}f(a-1)+\frac{1}{h}f(a+1)+\frac{h}{h-2}f(a)+\frac{1}{h} f(a)=h1f(a−1)+h1f(a+1)+h−2hf(a)+h1
f ( a + 1 ) − f ( a ) = f ( a ) − f ( a − 1 ) − 1 f(a+1)-f(a)=f(a)-f(a-1)-1 f(a+1)−f(a)=f(a)−f(a−1)−1
令 g ( a ) = f ( a ) − f ( a − 1 ) , 有 g ( a ) = g ( 0 ) − a g(a)=f(a)-f(a-1),有g(a)=g(0)-a g(a)=f(a)−f(a−1),有g(a)=g(0)−a,则 f ( a ) = f ( 0 ) + a g ( 0 ) − a ( a + 1 ) 2 f(a)=f(0)+ag(0)-\frac{a(a+1)}{2} f(a)=f(0)+ag(0)−2a(a+1)
取 f ( 0 ) = g ( 0 ) = 0 f(0)=g(0)=0 f(0)=g(0)=0,则 f ( a ) = − a ( a + 1 ) 2 f(a)=-\frac{a(a+1)}{2} f(a)=−2a(a+1)
所以 E ( t ) = E ( ϕ ( A 0 ) ) − E ( ϕ ( A t ) ) = ∑ i = 1 n f ( a 0 , i ) − f ( m ) E(t)=E(\phi(A_0))-E(\phi(A_t))=\sum_{i=1}^{n}f(a_{0,i})-f(m) E(t)=E(ϕ(A0))−E(ϕ(At))=∑i=1nf(a0,i)−f(m)
未完待续
相关文章:
势函数和鞅的停时定理
前置芝士 鞅: 鞅是一类特殊的随机过程,假设我们从一开始就在观察一场赌博游戏,现在已经得到了前t秒的观测值,那么当第t1 秒观测值的期望等于第t秒的观测值时,我们称这是一个公平赌博游戏。 具体来说,对于…...

途乐证券-炒股开户流程是怎样的?
炒股是一种危险较大但收益也相对较高的出资方法,而开户则是出资炒股的前提。跟着科技的开展,炒股开户已经能够在线完结,但流程相对来说仍是比较繁琐的。那么,炒股开户流程是怎样的呢?下面从多个视点剖析。 一、炒股开户…...

Eclipse如何设置快捷键
在eclopse设置注释行和取消注释行 // 打开eclipse,依次打开:Window -> Preferences -> General -> Key,...
刷享全球美好 中信银行信用卡推出跨境消费系列活动
来源 | 镭射财经(leishecaijing) 日前,文旅部办公厅发布通知,恢复全国旅行社及在线旅游企业经营中国公民赴有关国家和地区(第三批)出境团队旅游和“机票酒店”业务,出境跟团游国家和地区由此前…...

LeetCode算法心得——限制条件下元素之间的最小绝对差(TreeSet)
大家好,我是晴天学长,今天用到了Java一个非常实用的类TreeSet,能解决一些看起来棘手的问题。 1 )限制条件下元素之间的最小绝对差 2) .算法思路 初始化变量:n为列表nums的大小。 min为整型最大值,用于记录…...
MySQL表的基础操作(crud)
1. 新增(Create) insert into 表名 values (值, 值…); 此处列出的这些值,的数目和类型要和表的列相匹配。 -- 在student 表中插入学号1,姓名zhangsan的数据 insert into student values(1, zhangsan); -- 指定列插入 insert into student …...
vue中的activated和deactivated
目录 一、简介二、使用 一、简介 当页面被keep-alive缓存下来的时候,vue提供两个钩子函数 activated被 keep-alive 缓存的组件激活时调用。deactivated被 keep-alive 缓存的组件失活时调用。 当keepalive页面缓存,有activated钩子和created钩子函数时 …...
unity 发布报错 The type or namespace name `UnityEditor‘ could not be found.
引用了UnityEditor的内容,发布当然会报错啦 加上宏判断就好啦...

在ubuntu中将dict.txt导入到数据库sqlite3
将dict.txt导入到数据库 #include <head.h> #include <sqlite3.h> int do_insert(int i,char *str,sqlite3 *db); int main(int argc, const char *argv[]) {//创建泵打开一个数据库sqlite3 *db NULL;if(sqlite3_open("./my.db",&db) ! SQLITE_OK){…...
nginx 代理postgresql
首先,Nginx为我们的数据库增加了额外的安全层。Nginx提供了一整套的选项,这使得管理访问和保护数据库变得很容易。例如,我们可以配置为只有一小部分IP地址可以访问数据库。 PostgreSQL不使用HTTP或HTTPS,而是使用一个新块儿strea…...

小程序 CSS-in-JS 和原子化的另一种选择
小程序 CSS-in-JS 和原子化的另一种选择 小程序 CSS-in-JS 和原子化的另一种选择 介绍快速开始 pandacss 安装和配置 0. 安装和初始化 pandacss1. 配置 postcss2. 检查你的 panda.config.ts3. 修改 package.json 脚本4. 全局 css 注册 pandacss5. 配置的优化与别名 weapp-pand…...
flutter项目 环境搭建
开发flutter项目 搭建工具环境 flutter项目本身 所需开发工具环境 flutter 谷歌公司开发 系统支持库 镜像库 搭建流程: flutter 官网: https://flutter.dev/community/china //步骤1 .bash_profile touch .bash_profile pwd /Users/haijunyan open ~ e…...
PG-DBA培训12:PostgreSQL物理备份与恢复实战
一、风哥PG-DBA培训12:PostgreSQL物理备份与恢复实战 课程目标: 本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL备份恢复与迁移升级阶段之PostgreSQL物理备份与恢复实战,学完本课程可以掌握࿱…...

饿了么大数据开发凉经
1 一个mapreduce进程会启动多少map进程多少reduce进程* 1)map数量由处理的数据分成的block数量决定default_num total_size / split_size; 2)reduce数量为job.setNumReduceTasks(x)中x 的大小。不设置的话默认为 1。 2 讲下shuffle的过程 shuffle分为…...
前端安全:XSS 与 CSRF 安全防御
在当今数字化的时代,前端安全性变得愈发重要。跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是常见的前端安全威胁,但通过一些简单的防御策略,我们可以有效地保护我们的应用程序和用户信息。本文将为您…...

应用层读取wfp防火墙阻断记录
前言 之前的文档中,描写了如何对WFP防火墙进行操作[链接在此],这篇文档中,描述如何获取WFP防火墙进行阻断的操作记录。 需要注意的坑点 使用FWPM_NET_EVENT_TYPE获取防火墙日志时,需要注意,只有丢弃和内核丢弃&…...

web基础和tomcat的安装,部署jpress应用
目录 1. 简述静态网页和动态网页的区别。 2. 简述 Webl.0 和 Web2.0 的区别。 3. 安装tomcat8,配置服务启动脚本,部署jpress应用。 1. 简述静态网页和动态网页的区别。 【1】定义区别 请求响应信息,发给客户端进行处理,由浏览…...

idea git命令使用
这个标签标识单签分支:(标签图标) 标识关联分支:(五角星) 本地切换分支:如当前分支是dev ,git branch 显示的是dev ,然后通过 git checkout -b release 切换到release分支 git checkout re…...
软件测试技术之单元测试—工程师 Style 的测试方法
什么是单元测试? Wikipedia 对单元测试的定义: 在计算机编程中,单元测试(Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 在实际…...

C#学习....
1.基础 //引用命名空间using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;//项目名或者命名空间 namespace _01_MY_First_Demo {//Program类class Program{//程序的主入口或者Main函数static void Main(S…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...

【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...