自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 5.3-6

不如重新生成一次key好了

2015-06-03 23:16:48 241

原创 5.3-5

P=∏n−1i=0(1−in3)≥∏n−1i=0(1−nn3)=(1−1n2)n≥1−1nP=\prod_{i=0}^{n-1}(1-\frac{i}{n^3})\geq \prod_{i=0}^{n-1}(1-\frac{n}{n^3})=(1-\frac1{n^2})^n\geq 1-\frac1n

2015-06-03 23:00:08 297

原创 5.3-4

dest=(i+offset) mod ndest = (i + offset)\ mod\ n offset有n种取值,则dest也有n种,概率为1/noffset有n种取值,则dest也有n种,概率为1/n 事实上,这个算法只能生成n种序列

2015-06-03 22:52:33 238

原创 5.3-3

该算法会生成nn种序列n^n种序列,必然不会是随机序列

2015-06-03 22:46:23 267

原创 5.3-2

无法生成一个和A相同的序列

2015-06-03 22:44:07 218

原创 5.3-1

在循环开始前随机将一个元素和第一个元素互换,然后i从2开始循环

2015-06-03 22:37:53 239

原创 5.2-5

记Xij=I{第i项和第j项构成逆序对}记X_{ij}=I\{第i项和第j项构成逆序对\} 因为对于i,j两项,只有第i项大于第j项或第j项大于第i项两种可能,两种概率相同 ∴E[Xij]=P(Xij)=1/2\therefore E[X_{ij}]=P(X_{ij})=1/2 E[X]=∑n−1i=1∑nj=i+11/2=n(n−1)4E[X]=\sum_{i=1}^{n-1}\sum_{j

2015-06-03 22:28:58 204

原创 5.2-4

记Xi为第i人拿到帽子事件,E(Xi)=1/n记X_i为第i人拿到帽子事件,E(X_i)=1/n E(X)=∑ni=1E(Xi)=1E(X)=\sum_{i=1}^nE(X_i)=1 即期望有1个人拿到正确的帽子

2015-06-03 22:19:27 133

原创 5.2-3

Xi为第i次点数,则E(Xi)=3.5X_i为第i次点数,则E(X_i)=3.5 E(X)=∑ni=1E(Xi)=3.5nE(X)=\sum_{i=1}^n E(X_i)=3.5n

2015-06-03 22:14:29 210

原创 5.2-2

最好的人在i位的概率为1/n,前i−1人中,最好的在第1位的概率为1/(i−1)(i>1)最好的人在i位的概率为1/n,前i-1人中,最好的在第1位的概率为1/(i-1)(i>1) P=∑n21n1i−1=1nln(n−1)P=\sum_2^n\frac1n\frac1{i-1}=\frac1nln(n-1)

2015-06-03 22:12:07 218

原创 5.2-1

雇用1次,则最好的人一定在第一位,p=1/np=1/n 雇佣n次,说明每次面试的人都比上一个好,是一个唯一序列,故p=1/n!p=1/n!

2015-06-03 22:00:41 202

原创 5.1-3

1.利用BIASED−RANDOM先后生成两个数a,b利用BIASED-RANDOM先后生成两个数a,b 2.若a>b输出1,若a<b输出0,否则重复1若a>b输出1,若a<b输出0,否则重复1每一次能输出结果的概率是P=2p(1−p),E=12p(1−p)P=2p(1-p),E=\frac{1}{2p(1-p)} 故T=O(2E)=O(1p(1−p))T=O(2E)=O(\frac{1}{p(

2015-06-03 21:54:28 132

原创 5.1-2

令n=b−a,c=⌈lgn⌉令n=b-a,c=\lceil lgn\rceil 1. 运行c次RANDOM(0,1),将生成的序列视为输出数m的二进制表示 2. 若m大于n,则重复1,否则输出m+am小于n的概率为p=n/2c,则期望E=2c/np=n/2^c,则期望E=2^c/n 故T=O(Ec)=O(c2c/n)=O(lg(b−a))T=O(Ec)=O(c2^c/n)=O(lg(b-a))

2015-06-03 21:47:26 199

原创 5.1-1

能够对任何两个应聘者确定序关系,就必然能够排序

2015-06-03 21:38:56 232

原创 4-6

a) 若所有坏芯片检测到怀芯片都报告好,检测到好芯片都报告坏,则坏芯片组内部互相检测均为好,检测好芯片组均为坏,其行为与好芯片组完全一样,则不能区分好坏组 b) 我们先假设芯片总数是偶数,则将所有芯片两两一组,每组进行一次测试,若均报告好,则从中取出一个芯片,否则不取任何芯片。则操作后问题规模至少下降一半。 由于好芯片多于坏芯片,所以好好组合多于坏坏组合,故挑选后的芯片好芯片多于一半。 若芯片

2015-06-03 21:38:51 205

原创 4-4

a) a=3,b=2,符合主定理情况1,T=Θ(nlg3)a=3,b=2,符合主定理情况1,T=\Theta(n^{\lg 3}) b) 不能用主定理解决,第i层的代价为nlgn−i第i层的代价为\frac{n}{\lg n-i},非叶子结点代价合计为 ∑lgn−1i=0nlgn−i=nlglgn\sum_{i=0}^{lgn-1}\frac{n}{lgn-i}=nlglgn,叶子结点代价为nT

2015-06-03 21:38:20 243

原创 4-5

a) z+zF(z)+z2F(z)=z+∑∞i=2Fi−1zi+∑∞i=3Fi−2ziz+zF(z)+z^2F(z)=z+\sum_{i=2}^\infty F_{i-1}z^i+\sum_{i=3}^\infty F_{i-2}z^i   =0+z+z2+∑∞i=3Fizi=F(z)\ \ = 0+z+z^2+\sum_{i=3}^\infty F_{i}z^i=F(z)b) 太显然了。。。移项

2015-06-03 21:37:12 280

原创 4-3

a) 1) T(n)=T(n/2)+c,T=Θ(lgn)T(n)=T(n/2)+c, T=\Theta(\lg n) 2) T(n)=T(n/2)+cN,T=cNlgn=Θ(nlgn)T(n)=T(n/2)+cN, T=cN\lg n=\Theta(n\lg n) 3) T(n)=T(n/2)+cn,根据主定理a=1,b=2,f(n/2)<23f(n)T(n)=T(n/2)+cn, 根据主定

2015-06-03 21:36:44 251

原创 4-2

代码戳这里基本思路为循环⌈lgn⌉基本思路为循环\lceil\lg n\rceil次,第i步中寻找数组中和缺失数关于2i同余的数第i步中寻找数组中和缺失数关于2^i同余的数 ,最终的余数就是答案 设第i次循环开始前,待搜索数组的大小为sizeisize_i,则按照前面的思路,该数组中的元素和缺失数关于2i−1同余2^{i-1}同余。若我们将这些数连同缺失数从小到大排序,则会发现它们的前i−1i-1位

2015-06-03 21:35:56 234

原创 4-1

a) a=2,b=2,f(n)=n3a=2,b=2,f(n)=n^3 f(n)=Ω(nlog22+2),2f(n/2)=n3/4≤0.5f(n)f(n)=\Omega(n^{log_22+2}),2f(n/2)=n^3/4\leq0.5f(n) 故T(n)=Θ(n3)故T(n)=\Theta(n^3) b) a=1,b=10/9,f(n)=na=1,b=10/9,f(n)=n f(n)=

2015-06-03 18:51:37 276

原创 4.4-3

不进行严格的数学证明了 ∵af(n/b)≤cf(n)\because af(n/b)\leq cf(n) ∴f(n)≥(a/c)logbnd=nlogba/c(d为常数)\therefore f(n)\geq (a/c)^{log_bn}d=n^{log_ba/c}(d为常数) ∴f(n)=Ω(nlogba/c)=Ω(nlogba+ε)(因为c<1)\therefore f(n)=\Omega

2015-06-03 18:26:55 367

原创 4.4-2

g(n)=∑logbn−1j=0ajf(n/bj)g(n) = \sum_{j=0}^{\log_b{n}-1}a^jf(n/b^j) f(n/bj)=Θ((n/bj)logbalgk(n/bj))f(n/b^j)=\Theta\Big((n/b^j)^{\log_b{a}}\lg^k(n/b^j)\Big) g(n)=Θ(∑logbn−1j=0aj(nbj)logbalgk(nbj))=Θ(A

2015-06-03 18:00:01 265

原创 4.4-1

用数学归纳法证明nj=⌈n/bj⌉用数学归纳法证明n_j=\lceil n/b^j \rceil 当j=0时,n0=n=⌈n⌉显然成立当j=0时,n_0=n=\lceil n\rceil显然成立 假设当j=k时,nk=⌈n/bk⌉假设当j=k时,n_k=\lceil n/b^k \rceil 设t<bk,m,n=mbk+t设t<b^k,m,n=mb^k+t 则当j=k+1时,nk+1=⌈⌈n

2015-06-03 17:23:44 249

原创 4.3-5

令a=1,b=2,f(n)=n(2−cosnπ)=Ω(nlog21+1)a=1,b=2,f(n)=n(2-\cos n\pi)=\Omega(n^{log_21+1}) 为了使af(n/b)=f(n/2)≤cf(n)为了使af(n/b)=f(n/2)\leq cf(n) 当n≡2(mod4)时,cosnπ=1,cosnπ2=−1当n \equiv 2(mod 4)时,cosn\pi = 1, c

2015-06-03 14:59:02 243

原创 4.3-4

∵ω(nlog24)=n2lgn=o(nlog24+ε),ε>0\because \omega(n^{log_24}) = n^2lgn = o(n^{log_24+\varepsilon}),\varepsilon > 0 ∴不能用主定理证明\therefore 不能用主定理证明猜测T(n)≤cn2lg2nT(n)\leq cn^2lg^2n T(n)≤cn2(lgn−1)2=cn2lg2n−

2015-06-03 14:15:37 235

原创 4.3-3

a=1,b=2,f(n)=1a=1,b=2,f(n)=1 f(n)=Θ(nlog21),故T(n)=Θ(nlog21lgn)=Θ(lgn)f(n)=\Theta(n^{log_21}),故T(n)=\Theta(n^{log_21}lgn)=\Theta(lgn)

2015-06-03 13:56:51 329

原创 4.3-2

A递归式中a=7,b=2,f(n)=n2a=7,b=2,f(n)=n^2 f(n)=O(nlog27−log27/4),故T(n)=Θ(nlog27)f(n)=O(n^{log_27-log_2{7/4}}),故T(n)=\Theta(n^{log_27})A′中log4a<log27,故最大的a=48A'中log_4a<log_27,故最大的a=48

2015-06-03 13:50:12 208

原创 4.3-1

a) a=4,b=2,f(n)=na=4,b=2,f(n)=n f(n)=O(nlog24−1),故T(n)=Θ(n2)f(n)=O(n^{log_24-1}),故T(n)=\Theta(n^2) b) a=4,b=2,f(n)=n2a=4,b=2,f(n)=n^2 f(n)=Θ(nlog24),故T(n)=Θ(n2lgn)f(n)=\Theta(n^{log_24}),故T(n)=\Th

2015-06-03 13:35:56 293

原创 4.2-5

设t=min(1/a,1/(1−a))设t=min(1/a,1/(1-a)) 每一层的代价为cn 最深层数为logtnlog_tn 总代价为T(n)=O(cnlogtn)=O(nlgn)T(n)=O(cnlog_tn)=O(nlgn)同理可得T(n)=Ω(nlgn)T(n)=\Omega(nlgn) 故T(n)=Θ(nlgn)T(n)=\Theta(nlgn)

2015-06-03 13:17:24 236

原创 4.2-4

a是常数,故设T(a)=d,d为常数a是常数,故设T(a)=d,d为常数 共n/a层,每一层开销为c(n−ia)+d共n/a层,每一层开销为c(n-ia)+d 故总开销为Θ(n2)+Θ(n)=Θ(n2)\Theta(n^2)+\Theta(n)=\Theta(n^2)猜测T(n)≤m(n+a)2猜测T(n)\leq m(n+a)^2 T(n)≤mn2+cn+d≤m(n+a)2,最后一步只需保证

2015-06-03 12:58:43 252

原创 4.2-3

每一层的代价为cn2icn2^i 层数为lgnlgn 故开销为cn2=Θ(n2)cn^2=\Theta(n^2)假设T(n)≤cn2−(n+1),则假设T(n)\leq cn^2-(n+1),则 T(n)≤cn2−2(n+1)+cn≤cn2−(n+1),最后一步只需c=1即可T(n)\leq cn^2-2(n+1)+cn\leq cn^2-(n+1),最后一步只需c=1即可 故T(n)=O(

2015-06-03 11:07:34 185

原创 4.2-2

递归树的深度最浅处为log3nlog_3n 开销为cnlog3n,为Ω(nlgn)cnlog_3n,为\Omega(nlgn)

2015-06-02 23:08:31 191

原创 4.2-1

每一层的开销是(3/2)in(3/2)^in 层数为lgnlgn T(n)=Θ((3/2)lgnn)=Θ(nlg3)T(n)=\Theta((3/2)^{lgn}n)=\Theta(n^{lg3})猜测T(n)≤cnlg3猜测T(n)\leq cn^{lg3} T(n)≤3cn2lg3=cnlg3T(n)\leq 3c\frac n2^{lg3}=cn^{lg3} 所以T(n)=O(nlg3

2015-06-02 22:43:37 221

原创 4.1-6

我们令n=2m,则T(2m)=2T(2m/2)+1我们令n=2^m,则T(2^m)=2T(2^{m/2})+1 令S(m)=T(2m),则S(m)=2S(m/2)+1令S(m)=T(2^m),则S(m)=2S(m/2)+1 容易得证S(m)=Θ(m),则T(n)=Θ(lgn)容易得证S(m)=\Theta(m),则T(n)=\Theta(lgn)

2015-06-02 22:11:48 215

原创 4.1-5

我们假设T(n)≤cnlg(n−34)我们假设T(n)\leq cnlg(n-34) T(n)≤2c(n/2)lg(n/2+17−34)+n=cnlg(n−34)−cn+n,最后一步当c≥1T(n)\leq 2c(n/2)lg(n/2+17-34)+n=cnlg(n-34)-cn+n,最后一步当c\geq1 ∴T(n)=O(nlgn)\therefore T(n)=O(nlgn)

2015-06-02 21:54:57 243

原创 4.1-4

猜测T(n)≤cnlg(n−1)猜测T(n)\leq cnlg(n-1) T(n)≤c⌈n/2⌉lg((n−1)/2)+c⌊n/2⌋lg((n−1)/2)+kn=cnlg(n−1)−cn+kn≤cnlg(n−1),最后一步c≥k即可T(n)\leq c\lceil n/2 \rceil lg((n-1)/2)+c\lfloor n/2 \rfloor lg((n-1)/2)+kn=cnlg(n-1

2015-06-02 21:45:36 244

原创 4.1-3

我们假设T(n)≤cnlgn+n我们假设T(n)\leq cnlgn+n T(n)≤cnlg(n/2)+n/2+n=cnlgn+n+n/2−cn≤cnlgn+n,最后一步只要c≥1即可T(n)\leq cnlg(n/2)+n/2+n=cnlgn+n+n/2-cn\leq cnlgn+n,最后一步只要c\geq1即可 T(1)=1≤1lg1+1T(1)=1\leq1lg1+1

2015-06-02 20:46:42 209

原创 4.1-2

我们猜测T(n)≤cnlgn我们猜测T(n)\leq cnlgn T(n)≤2c(n/2)lg(n/2)+n=cnlgn+n−cn≤cnlgn,最后一步当c≤1成立T(n)\leq 2c(n/2)lg(n/2)+n=cnlgn+n-cn\leq cnlgn,最后一步当c\leq1成立 我们猜测T(n)≥c(n+1)lg(n+1)我们猜测T(n)\geq c(n+1)lg(n+1) T(n)≥2

2015-06-02 20:01:22 273

原创 4.1-1

我们猜测T(n)≤clg(n−1)我们猜测T(n)\leq clg(n-1) T(n)≤clg((n+1)/2−1)+1=clg(n−1)−c+1≤clg(n−1),最后一步当c≥1成立T(n)\leq clg((n+1)/2-1)+1 = clg(n-1)-c+1\leq clg(n-1), 最后一步当c\geq1成立 ∴T(n)=O(lgn)\therefore T(n)=O(lgn)

2015-06-02 19:37:29 262

原创 3-6

f(n)f(n) c f∗c(n)f^*_c(n) n−1n-1 0 Θ(n)\Theta(n) lgn\lg n 1 Θ(lg∗n)\Theta(lg^*n) n/2n/2 1 Θ(lgn)\Theta(lgn) n/2n/2 2 Θ(lgn)\Theta(lgn) n‾‾√\sqrt n 2 Θ(lglgn)\Theta(lglg

2015-06-02 18:59:26 142

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除