《大数据:互联网大规模数据挖掘与分布式处理》(第二版)第三章习题答案

参考书籍:《大数据:互联网大规模数据挖掘与分布式处理》(第二版)

原版英文书籍:Mining of Massive Datasets

注:答案为本人自己做的,并非标准答案,仅供参考。
如有错误,请私信我,我将及时修改。

《大数据:互联网大规模数据挖掘与分布式处理》(第二版)第三章习题答案

注:本书包含大量习题,较难的习题或习题中较难的部分都会用!标记,最难的习题用!!标记。

习题3.1.1

设A={1, 2, 3, 4},B={2, 3, 5, 7},C={2, 4, 6}。

则,SIM(A, B)=2/6=1/3,SIM(A, C)=2/5,SIM(B, C)=1/6。

习题3.1.2

设A={1, 1, 1, 2},B={1, 1, 2, 2, 3},C={1, 2, 3, 4}。

则,SIM(A, B)=3/9=1/3,SIM(A, C)=2/8=1/4,SIM(B, C)=3/9=1/3。

!!习题3.1.3

在这里插入图片描述

习题3.2.1

3.2节的第一句话的前10个3-shingle是:{“The”, "he “, “e m”, " mo”, “mos”, “ost”, "st “, “t e”, " ef”, “eff” }。

若采用基于词的构造方法,则为:{“The most effective”, “most effective way”, “effective way to”, “way to represent”, “to represent documents”, “represent documents as”, “documents as sets”, “as sets for”, “sets for the”, “for the purpose”}。

习题3.2.2

若采用3.2.4节所示的基于停用词的shingle的表示方法,3.2节的第一句话的shingle有:{“The most effective”, “way to represent”, “as sets for”, “for the purpose”, “the purpose of”, “of identifying lexically”, “is to construct”, “to construct from”, “the document the”, “the set of”, “set of short”, “of short strings”, “it If we”, “If we do”, “we do so”, “do so then”, “so then documents”, “as short as”, “as sentences or”, “or even phrases”, “in their sets”, “if those sentences”, “in different orders”, “in the two”, “the two documents”, “two documents In”, “In this section”, “we introduce the”, “the simplest and”, “and most common”, “as well as”, “as an interesting”, “an interesting variation”}。

习题3.2.3

长度为n个字节的文档中k-shingle最多有24*n个。

习题3.3.1

(a)

组合Jaccard相似度
S1-S20.4
S1-S30.4
S1-S40.4
S2-S30.3
S2-S40.3
S3-S40.4

!(b)

组合比例
S1-S20.4
S1-S30.4
S1-S40.4
S2-S30.3
S2-S40.3
S3-S40.4

习题3.3.2

哈希函数:

S1S2S3S4x+1 mod 53x+1 mod 52x+4 mod 53x-1 mod 5
01001114-1
100102412
201013230
310114003
400100321
  1. 初始化签名矩阵:

    S1S2S3S4
    h1
    h2
    h3
    h4
  2. 考虑第0行:

    S1S2S3S4
    h111
    h211
    h344
    h4-1-1
  3. 考虑第1行:

    S1S2S3S4
    h1121
    h2141
    h3414
    h4-12-1
  4. 考虑第2行:

    S1S2S3S4
    h11321
    h21241
    h34313
    h4-102-1
  5. 考虑第3行:

    S1S2S3S4
    h11321
    h20200
    h30300
    h4-102-1
  6. 考虑第4行:

    S1S2S3S4
    h11301
    h20200
    h30300
    h4-101-1

最终得到的最小哈希签名矩阵为:

S1S2S3S4
h11301
h20200
h30300
h4-101-1

习题3.3.3

(a)

哈希函数:

S1S2S3S42x+1 mod 63x+2 mod 65x+2 mod 6
00101122
10100351
21001520
30010155
40011324
51000553
  1. 初始化签名矩阵:

    S1S2S3S4
    h1
    h2
    h3
  2. 考虑第0行:

    S1S2S3S4
    h111
    h222
    h322
  3. 考虑第1行:

    S1S2S3S4
    h111
    h222
    h312
  4. 考虑第2行:

    S1S2S3S4
    h1511
    h2222
    h3010
  5. 考虑第3行:

    S1S2S3S4
    h15111
    h22252
    h30150
  6. 考虑第4行:

    S1S2S3S4
    h15111
    h22222
    h30140
  7. 考虑第5行:

    S1S2S3S4
    h15111
    h22222
    h30140

最终得到的最小哈希签名矩阵为:

S1S2S3S4
h15111
h22222
h30140

(b)

这些哈希函数中只有h3是真正的排列转换。

©

Jaccard相似度S1-S2S1-S3S1-S4S2-S3S2-S4S3-S4
估计值1/31/32/32/32/32/3
真实值001/401/41/4

Jaccard相似度的估计值和真实值差距很大。

!习题3.3.4

S和T集合经随机排列之后得到的两个最小哈希值相等的概率等于S和T的Jaccard相似度。

!习题3.3.5

两列的Jaccard相似度为0,说明两列经随机排列之后得到的两个最小哈希值相等的概率为0。

故最小哈希的方法总能得到正确的估计结果。

!!习题3.3.6

S1S2
10
01
11
00
11

循环排列转换得到的Jaccard相似度:3/5

真正的Jaccard相似度:1/2

!习题3.3.7

Map函数:
input:矩阵的行(或列)集合mi(huomj)、所有的哈希函数
output:一系列键-值对,键为(mi,h(mi)),即mi和与其对应的哈希函数,值为最小哈希签名

Reduce函数:
input:按键聚合的键-值对,值为最小哈希签名的集合
output:一系列键-值对,键为行号或列号,值为最小哈希签名

习题3.4.1

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
    double r = 3;
    double b = 10;
    double s[] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9};
    for (int i = 0; i < 9; i++)
        printf("%lf\n", 1 - pow(1 - pow(s[i], r), b));

    system("pause");
    return 0;
}

(1) r=3, b=10

s1-(1-sr)b
0.10.009955
0.20.077181
0.30.239449
0.40.483871
0.50.736924
0.60.912267
0.70.985015
0.80.999234
0.90.999998

在这里插入图片描述

(2) r=6, b=20

s1-(1-sr)b
0.10.000020
0.20.001279
0.30.014479
0.40.078809
0.50.270187
0.60.615415
0.70.918186
0.80.997712
0.91.000000

在这里插入图片描述

(3) r=5, b=50

s1-(1-sr)b
0.10.000020
0.20.001279
0.30.014479
0.40.078809
0.50.270187
0.60.615415
0.70.918186
0.80.997712
0.91.000000

在这里插入图片描述

!习题3.4.2

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
    double r = 3;
    double b = 10;
    double s[] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9};
    double true_s;
    double guess_s;
    for (int i = 0; i < 9; i++)
        printf("%lf\n", 1 - pow(1 - pow(s[i], r), b));

    true_s = pow(1 - pow(0.5, 1 / b), 1 / r);
    guess_s = pow(1 / b, 1 / r);
    printf("真实阈值:%lf\n", true_s);
    printf("估计阈值:%lf\n", guess_s);
    printf("误差:%lf\n", (guess_s - true_s) / true_s);
    system("pause");
    return 0;
}

(1) r=3, b=10

真实阈值:0.406088
估计阈值:0.464159
误差:0.143000

(2) r=6, b=20

真实阈值:0.569353
估计阈值:0.606962
误差:0.066055

(3) r=5, b=50

真实阈值:0.424394
估计阈值:0.457305
误差:0.077547

!习题3.4.3

当sr趋于0时,1-(1-sr)b≈1-e-sr*b

!习题3.4.4

(a)

Map函数:

input:签名矩阵元素,每个元素都是键-值对,键为列号,值为签名
output:键-值对,键为桶号,值为签名、列号

Reduce函数:

input:键-值对,键为桶号,值为签名、列号
output:键-值对,键为桶号,值为签名、列号i、满足j>i的列组成的列表

!习题3.5.1

( a ) max(x,y)

不满足非负、点到自身为0

( b ) diff(x,y)=|x-y|

是距离测度。

( c ) sum(x,y)=x+y
不满足非负、点到自身为0、三角不等式

习题3.5.2

L 1 = ∣ 5 − 8 ∣ + ∣ 6 − 2 ∣ + ∣ 7 − 4 ∣ = 10 L_1=|5-8|+|6-2|+|7-4|=10 L1=∣58∣+∣62∣+∣74∣=10

L 2 = ( 5 − 8 ) 2 + ( 6 − 2 ) 2 + ( 7 − 4 ) 2 = 34 L_2=\sqrt{(5-8)^2+(6-2)^2+(7-4)^2}=\sqrt{34} L2=(58)2+(62)2+(74)2 =34

!!习题3.5.3

如果 i i i j j j是任意的正整数,且 i i i< j j j,那么任意两点的 L i L_i Li范式距离一定大于它们的 L j L_j Lj范式距离。

习题3.5.4

(a) 1-3/5=0.4

(b) 1-0/6=1

习题3.5.5

( a ) c o s ( [ 3 , − 1 , 2 ] , [ − 2 , 3 , 1 ] ) = − 7 14 = − 1 2 cos([3,-1,2],[-2,3,1])=\frac{-7}{14}=-\frac{1}{2} cos([3,1,2],[2,3,1])=147=21

( b ) c o s ( [ 1 , 2 , 3 ] , [ 2 , 4 , 6 ] ) = 28 28 = 1 cos([1,2,3],[2,4,6])=\frac{28}{28}=1 cos([1,2,3],[2,4,6])=2828=1

( c ) c o s ( [ 5 , 0 , − 4 ] , [ − 1 , − 6 , 2 ] ) = − 13 41 cos([5,0,-4],[-1,-6,2])=\frac{-13}{41} cos([5,0,4],[1,6,2])=4113

( d ) c o s ( [ 0 , 1 , 1 , 0 , 1 , 1 ] , [ 0 , 0 , 1 , 0 , 0 , 0 ] ) = 1 2 cos([0,1,1,0,1,1],[0,0,1,0,0,0])=\frac{1}{2} cos([0,1,1,0,1,1],[0,0,1,0,0,0])=21

!习题3.5.6

任意两个相同维度的布尔向量之间的夹角余弦一定非负,故它们的余弦距离最多为90度。

习题3.5.7

( a ) 4
( b ) 5
( c ) 6

!习题3.5.8

( a ) 4
( b ) 4
( c ) 4

!习题3.5.9

满足非负、点到自身距离为0、对称性、三角不等式,所以是一个距离测度。

习题3.5.10

设x1=000000,x2=110011,x3=010101,x4=011100

组合海明距离
x1-x24
x1-x33
x1-x43
x2-x33
x2-x45
x3-x42

习题3.6.1

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
    double p[] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9};

    for (int i = 0; i < 9; i++)
        printf("%lf\n", pow(1-pow(1-pow(p[i],2),2),2));

    system("pause");
    return 0;
}

( a ) 2路与构造+3路或构造

p1-(1-p2)3
0.10.029701
0.20.115264
0.30.246429
0.40.407296
0.50.578125
0.60.737856
0.70.867349
0.80.953344
0.90.993141

( b ) 3路或构造+2路与构造

p(1-(1-p)3)2
0.10.073441
0.20.238144
0.30.431649
0.40.614656
0.50.765625
0.60.876096
0.70.946729
0.80.984064
0.90.998001

( c ) 2路与构造+2路或构造+2路与构造

p(1-(1-p2)2)2
0.10.000396
0.20.006147
0.30.029550
0.40.086671
0.50.191406
0.60.348572
0.70.547452
0.80.757596
0.90.929103

( c ) 2路或构造+2路与构造+2路或构造+2路与构造

p(1-(1-1-(1-p2)2)2)2
0.10.005026
0.20.058760
0.30.204800
0.40.424358
0.50.653824
0.60.834169
0.70.941774
0.80.987745
0.90.999208

上述构造方法得到的函数族都是敏感的。而且,构造次数越多,对应S-曲线越陡峭,效果越好。

习题3.6.2

( a ) 令p=1-(1-p2)3,解得:p=0.3894

( b ) 令p=(1-(1-p)3)2,解得:p=0.1516

( c ) 令p=(1-(1-p2)2)2,无解

( d ) 令p=(1-(1-1-(1-p2)2)2)2,解得:p=0.5249

!习题3.6.3

图3-10:

在这里插入图片描述

p斜率
0.24.000000
0.32.078125
0.41.309645
0.50.872527
0.60.564789
0.70.317882
0.80.122368

最大斜率:4.000000,对应p=0.2。

图3-11:

在这里插入图片描述

p斜率
0.27.678571
0.31.744033
0.40.721656
0.50.345819
0.60.564789
0.70.073766
0.80.026446

最大斜率:7.678571,对应p=0.2。

!!习题3.6.4

函数最大斜率的点就是函数二阶导数为0的点,且满足邻域左正右负。

例如,一个r路与构造+一个b路或构造的函数为: 1 − ( 1 − p r ) b 1-(1-p^r)^b 1(1pr)b

令其二阶导数为0:-b×(1-pr)×(-r×pr-1)=0,解得: p = 0 p=0 p=0 p = 1 p=1 p=1

习题3.7.1

设x1=000000,x2=110011,x3=010101,x4=011100。

组合海明距离
x1-x24
x1-x33
x1-x43
x2-x33
x2-x45
x3-x42

6个函数中的3、5会判定它们是候选对。

习题3.7.2

( a ) 因为v1*x1=4,v2*x1=6,v3*x1=8,v4*x1=10,所以x1的梗概是[+1,+1,+1,+1]。

( b ) 因为v1*x2=-8,v2*x2=10,v3*x2=-4,v4*x2=6,所以x2的梗概是[-1,+1,-1,+1]。

( c ) 因为v1*x3=8,v2*x3=-10,v3*x3=4,v4*x3=-6,所以x3的梗概是[+1,-1,+1,-1]。

组合估计夹角真实夹角
x1-x290°74.9739°
x1-x390°105.0261°
x2-x3180°180°

习题3.7.3

随机向量
v1[+1,+1,+1,+1]
v2[-1,+1,+1,+1]
v3[+1,-1,+1,+1]
v4[+1,+1,-1,+1]
v5[+1,+1,+1,-1]
v6[-1,-1,+1,+1]
v7[-1,+1,-1,+1]
v8[-1,+1,+1,-1]
v9[+1,-1,-1,+1]
v10[+1,-1,+1,-1]
v11[+1,+1,-1,-1]
v12[-1,-1,-1,+1]
v13[-1,-1,+1,-1]
v14[-1,+1,-1,-1]
v15[+1,-1,-1,-1]
v16[-1,-1,-1,-1]

x1的梗概是:[+1,+1,+1,+1,+1,+1,+1,+1,+1,-1,-1,-1,-1,-1,-1,-1]

x2的梗概是:[+1,+1,-1,+1,-1,+1,+1,-1,+1,-1,+1,+1,-1,-1,-1,-1]

x3的梗概是:[-1,-1,+1,-1,+1,-1,-1,+1,-1,+1,-1,-1,+1,+1,+1,+1]

组合估计夹角真实夹角差异
x1-x290°74.9739°20.04%
x1-x390°105.0261°-14.31%
x2-x3180°180°0

习题3.7.4

!(a) 条件:

  1. -a+b+c+d>0
  2. a-b+c+d>0
  3. a+b-c+d>0
  4. a+b+c-d>0

!!(b) 条件:

  1. -a+b+c+d与-e+f+g+h同号
  2. a-b+c+d与e-f+g+h同号
  3. a+b-c+d与e+f-g+h同号
  4. a+b+c-d与e+f+g-h同号

习题3.7.5

( a )

x方向的桶号y方向的桶号z方向的桶号
p1=(1,2,3)234
p2=(0,2,4)135
p3=(4,3,2)543

( b )

x方向的桶号y方向的桶号z方向的桶号
p1=(1,2,3)122
p2=(0,2,4)123
p3=(4,3,2)322

( c )

当a=1时,p1和p2是候选对。

当a=2时,p1和p2是候选对,p2和p3是候选对。

!( d )

对p1和p2来说,a=2或a>4时,它们是候选对。

对p1和p3来说,a>4时,它们是候选对。

对p2和p3来说,a>4时,它们是候选对。

习题3.8.1

363/365≈0.9945。

习题3.8.2

(a)

假阳率=1-(1-0.26)2048=0.1228

假阴率=(1-0.23*0.83)2048=0.0224%

(b)

2路与构造:

假阳率=0.12282=0.0151

假阴率=1-(1-0.0224%)2=0.0447%

可以看出,2路与构造再小幅提升假阴率的情况下,大幅度降低了假阳率。

习题3.8.3

n路或构造:

假阳率=1-(1-0.1228)n

假阴率=(0.0224%)n

习题3.8.4

(a) 假阴率=1-(1-0.0224%)2=0.0447%

(b) 假阳率=1-(1-0.26)2048=0.1228

!习题3.8.5

n路或构造:

假阳率=1-(1-0.1228)n

假阴率=(0.0224%)n

设f(n)=假阳率+假阴率=1-(1-0.1228)n+(0.0224%)n

令f’(n)=0得n*(1-0.1228)n-1+n*(0.0224%)n-1=0,解得:n=0

且当n>0时,f’(n)>0,所以,n=2时f(n)取最小值0.2305。

习题3.9.1

(a) eqrtwy
(b) aiudfghjs

习题3.9.2

( a )

L t ≤ L s / 1 − J = 20 / 0.85 = 23.53 L_t≤L_s/1-J=20/0.85=23.53 LtLs/1J=20/0.85=23.53

s s s需要与排在它之后的所以长度为20、21、22、23的字符串进行比较。

( b )

L t ≤ L s / 1 − J = 20 / 0.95 = 21.05 L_t≤L_s/1-J=20/0.95=21.05 LtLs/1J=20/0.95=21.05

s s s需要与排在它之后的所以长度为20、21的字符串进行比较。

( c )

L t ≤ L s / 1 − J = 20 / 0.98 = 20.41 L_t≤L_s/1-J=20/0.98=20.41 LtLs/1J=20/0.98=20.41

s s s需要与排在它之后的所以长度为20的字符串进行比较。

习题3.9.3

( a )

p = ⌊ ( 1 − J ) L s ⌋ + 1 = ⌊ ( 1 − 0.85 ) × 15 ⌋ + 1 = 3 p=⌊(1-J)L_s⌋+1=⌊(1-0.85)×15⌋+1=3 p=⌊(1J)Ls+1=⌊(10.85)×15+1=3,故需要对3个前缀符号进行索引。

( b )

p = ⌊ ( 1 − J ) L s ⌋ + 1 = ⌊ ( 1 − 0.95 ) × 15 ⌋ + 1 = 1 p=⌊(1-J)L_s⌋+1=⌊(1-0.95)×15⌋+1=1 p=⌊(1J)Ls+1=⌊(10.95)×15+1=1,故需要对1个前缀符号进行索引。

!( c )

要满足 p = ⌊ ( 1 − J ) L s ⌋ + 1 = ⌊ ( 1 − J ) × 15 ⌋ + 1 ≤ 4 p=⌊(1-J)L_s⌋+1=⌊(1-J)×15⌋+1≤4 p=⌊(1J)Ls+1=⌊(1J)×15+14

J J J的取值范围是 [ 0.8 , 1 ] [0.8,1] [0.8,1]

习题3.9.4

设字符串 s s s的第 i i i个字符是 s i s_i si

(a)

p = ⌊ ( 1 − J ) L s ⌋ + 1 = ⌊ ( 1 − 0.75 ) × 12 ⌋ + 1 = 4 p=⌊(1-J)L_s⌋+1=⌊(1-0.75)×12⌋+1=4 p=⌊(1J)Ls+1=⌊(10.75)×12+1=4

需要比较 ( s 1 , 1 ) (s_1,1) (s1,1) ( s 1 , 2 ) (s_1,2) (s1,2) ( s 1 , 3 ) (s_1,3) (s1,3) ( s 1 , 4 ) (s_1,4) (s1,4) ( s 2 , 2 ) (s_2,2) (s2,2) ( s 2 , 3 ) (s_2,3) (s2,3) ( s 2 , 4 ) (s_2,4) (s2,4) ( s 3 , 3 ) (s_3,3) (s3,3) ( s 3 , 4 ) (s_3,4) (s3,4) ( s 4 , 4 ) (s_4,4) (s4,4)

(b)

p = ⌊ ( 1 − J ) L s ⌋ + 1 = ⌊ ( 1 − 0.95 ) × 12 ⌋ + 1 = 1 p=⌊(1-J)L_s⌋+1=⌊(1-0.95)×12⌋+1=1 p=⌊(1J)Ls+1=⌊(10.95)×12+1=1

需要比较 ( s 1 , 1 ) (s_1,1) (s1,1)

!习题3.9.5

(a)

J = 0.9 J=0.9 J=0.9 L s = L t = 9 时 L_s=L_t=9时 Ls=Lt=9 8 / 9 < J 8/9<J 8/9<J
s s s t t t的第一个字符必须相等, s s s t t t会被比较的概率是0.01。

(b)

J = 0.9 J=0.9 J=0.9 L s = L t = 10 时 L_s=L_t=10时 Ls=Lt=10 9 / 10 = J 9/10=J 9/10=J
s s s t t t的第一个字符可以不相等,但随后的第二个字符必须相等, s s s t t t会被比较的概率是 0.01 + ( 1 − 0.01 ) ∗ 0.01 = 0.0199 0.01+(1-0.01)*0.01=0.0199 0.01+(10.01)0.01=0.0199

习题3.9.6

(a) L s = 20 L_s=20 Ls=20 J = 0.8 J=0.8 J=0.8

p = ⌊ ( 1 − J ) L s ⌋ + 1 = ⌊ ( 1 − 0.8 ) × 20 ⌋ + 1 = 5 p=⌊(1-J)L_s⌋+1=⌊(1-0.8)×20⌋+1=5 p=⌊(1J)Ls+1=⌊(10.8)×20+1=5,所以接下来必须要考虑 s s s的前5个前缀位置。

我们假定 s s s的后缀长度为 p p p t t t的后缀长度为 q q q

i = 1 i=1 i=1,这里 p = 19 p=19 p=19,因此 q ≤ 19 q≤19 q19。考虑所有的 q q q值。

  1. q = 19 q=19 q=19,由于 20 / ( 19 + j ) ≥ 0.8 20/(19+j)≥0.8 20/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 、 4 、 5 、 6 1、2、3、4、5、6 123456
  2. q = 18 q=18 q=18,由于 19 / ( 19 + j ) ≥ 0.8 19/(19+j)≥0.8 19/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 、 4 1、2、3、4 1234
  3. q = 17 q=17 q=17,由于 18 / ( 19 + j ) ≥ 0.8 18/(19+j)≥0.8 18/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 1、2、3 123
  4. q = 16 q=16 q=16,由于 17 / ( 19 + j ) ≥ 0.8 17/(19+j)≥0.8 17/(19+j)0.8,因此 j j j可以等于 1 、 2 1、2 12
  5. q = 15 q=15 q=15,由于 16 / ( 19 + j ) ≥ 0.8 16/(19+j)≥0.8 16/(19+j)0.8,因此 j j j可以等于 1 1 1
  6. q = 14 q=14 q=14,由于对任意整数 j j j都有 15 / ( 19 + j ) < 0.8 15/(19+j)<0.8 15/(19+j)<0.8,因此此时 j j j不存在。对于更小的 q q q值,情况也是如此。

i = 2 i=2 i=2,这里 p = 18 p=18 p=18,因此 q ≤ 18 q≤18 q18。考虑所有的 q q q值。

  1. q = 18 q=18 q=18,由于 19 / ( 19 + j ) ≥ 0.8 19/(19+j)≥0.8 19/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 、 4 1、2、3、4 1234
  2. q = 17 q=17 q=17,由于 18 / ( 19 + j ) ≥ 0.8 18/(19+j)≥0.8 18/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 1、2、3 123
  3. q = 16 q=16 q=16,由于 17 / ( 19 + j ) ≥ 0.8 17/(19+j)≥0.8 17/(19+j)0.8,因此 j j j可以等于 1 、 2 1、2 12
  4. q = 15 q=15 q=15,由于 16 / ( 19 + j ) ≥ 0.8 16/(19+j)≥0.8 16/(19+j)0.8,因此 j j j可以等于 1 1 1
  5. q = 14 q=14 q=14,由于对任意整数 j j j都有 15 / ( 19 + j ) < 0.8 15/(19+j)<0.8 15/(19+j)<0.8,因此此时 j j j不存在。对于更小的 q q q值,情况也是如此。

i = 3 i=3 i=3,这里 p = 17 p=17 p=17,因此 q ≤ 17 q≤17 q17。考虑所有的 q q q值。

  1. q = 17 q=17 q=17,由于 18 / ( 19 + j ) ≥ 0.8 18/(19+j)≥0.8 18/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 1、2、3 123
  2. q = 16 q=16 q=16,由于 17 / ( 19 + j ) ≥ 0.8 17/(19+j)≥0.8 17/(19+j)0.8,因此 j j j可以等于 1 、 2 1、2 12
  3. q = 15 q=15 q=15,由于 16 / ( 19 + j ) ≥ 0.8 16/(19+j)≥0.8 16/(19+j)0.8,因此 j j j可以等于 1 1 1
  4. q = 14 q=14 q=14,由于对任意整数 j j j都有 15 / ( 19 + j ) < 0.8 15/(19+j)<0.8 15/(19+j)<0.8,因此此时 j j j不存在。对于更小的 q q q值,情况也是如此。

i = 4 i=4 i=4,这里 p = 16 p=16 p=16,因此 q ≤ 16 q≤16 q16。考虑所有的 q q q值。

  1. q = 16 q=16 q=16,由于 17 / ( 19 + j ) ≥ 0.8 17/(19+j)≥0.8 17/(19+j)0.8,因此 j j j可以等于 1 、 2 1、2 12
  2. q = 15 q=15 q=15,由于 16 / ( 19 + j ) ≥ 0.8 16/(19+j)≥0.8 16/(19+j)0.8,因此 j j j可以等于 1 1 1
  3. q = 14 q=14 q=14,由于对任意整数 j j j都有 15 / ( 19 + j ) < 0.8 15/(19+j)<0.8 15/(19+j)<0.8,因此此时 j j j不存在。对于更小的 q q q值,情况也是如此。

i = 5 i=5 i=5,这里 p = 15 p=15 p=15,因此 q ≤ 15 q≤15 q15。考虑所有的 q q q值。

  1. q = 15 q=15 q=15,由于 16 / ( 19 + j ) ≥ 0.8 16/(19+j)≥0.8 16/(19+j)0.8,因此 j j j可以等于 1 1 1
  2. q = 14 q=14 q=14,由于对任意整数 j j j都有 15 / ( 19 + j ) < 0.8 15/(19+j)<0.8 15/(19+j)<0.8,因此此时 j j j不存在。对于更小的 q q q值,情况也是如此。

(a) L s = 20 L_s=20 Ls=20 J = 0.9 J=0.9 J=0.9

p = ⌊ ( 1 − J ) L s ⌋ + 1 = ⌊ ( 1 − 0.9 ) × 20 ⌋ + 1 = 3 p=⌊(1-J)L_s⌋+1=⌊(1-0.9)×20⌋+1=3 p=⌊(1J)Ls+1=⌊(10.9)×20+1=3,所以接下来必须要考虑 3 3 3的前5个前缀位置。

我们假定 s s s的后缀长度为 p p p t t t的后缀长度为 q q q

i = 1 i=1 i=1,这里 p = 19 p=19 p=19,因此 q ≤ 19 q≤19 q19。考虑所有的 q q q值。

  1. q = 19 q=19 q=19,由于 20 / ( 19 + j ) ≥ 0.8 20/(19+j)≥0.8 20/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 、 4 、 5 、 6 1、2、3、4、5、6 123456
  2. q = 18 q=18 q=18,由于 19 / ( 19 + j ) ≥ 0.8 19/(19+j)≥0.8 19/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 、 4 1、2、3、4 1234
  3. q = 17 q=17 q=17,由于 18 / ( 19 + j ) ≥ 0.8 18/(19+j)≥0.8 18/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 1、2、3 123
  4. q = 16 q=16 q=16,由于 17 / ( 19 + j ) ≥ 0.8 17/(19+j)≥0.8 17/(19+j)0.8,因此 j j j可以等于 1 、 2 1、2 12
  5. q = 15 q=15 q=15,由于 16 / ( 19 + j ) ≥ 0.8 16/(19+j)≥0.8 16/(19+j)0.8,因此 j j j可以等于 1 1 1
  6. q = 14 q=14 q=14,由于对任意整数 j j j都有 15 / ( 19 + j ) < 0.8 15/(19+j)<0.8 15/(19+j)<0.8,因此此时 j j j不存在。对于更小的 q q q值,情况也是如此。

i = 2 i=2 i=2,这里 p = 18 p=18 p=18,因此 q ≤ 18 q≤18 q18。考虑所有的 q q q值。

  1. q = 18 q=18 q=18,由于 19 / ( 19 + j ) ≥ 0.8 19/(19+j)≥0.8 19/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 、 4 1、2、3、4 1234
  2. q = 17 q=17 q=17,由于 18 / ( 19 + j ) ≥ 0.8 18/(19+j)≥0.8 18/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 1、2、3 123
  3. q = 16 q=16 q=16,由于 17 / ( 19 + j ) ≥ 0.8 17/(19+j)≥0.8 17/(19+j)0.8,因此 j j j可以等于 1 、 2 1、2 12
  4. q = 15 q=15 q=15,由于 16 / ( 19 + j ) ≥ 0.8 16/(19+j)≥0.8 16/(19+j)0.8,因此 j j j可以等于 1 1 1
  5. q = 14 q=14 q=14,由于对任意整数 j j j都有 15 / ( 19 + j ) < 0.8 15/(19+j)<0.8 15/(19+j)<0.8,因此此时 j j j不存在。对于更小的 q q q值,情况也是如此。

i = 3 i=3 i=3,这里 p = 17 p=17 p=17,因此 q ≤ 17 q≤17 q17。考虑所有的 q q q值。

  1. q = 17 q=17 q=17,由于 18 / ( 19 + j ) ≥ 0.8 18/(19+j)≥0.8 18/(19+j)0.8,因此 j j j可以等于 1 、 2 、 3 1、2、3 123
  2. q = 16 q=16 q=16,由于 17 / ( 19 + j ) ≥ 0.8 17/(19+j)≥0.8 17/(19+j)0.8,因此 j j j可以等于 1 、 2 1、2 12
  3. q = 15 q=15 q=15,由于 16 / ( 19 + j ) ≥ 0.8 16/(19+j)≥0.8 16/(19+j)0.8,因此 j j j可以等于 1 1 1
  4. q = 14 q=14 q=14,由于对任意整数 j j j都有 15 / ( 19 + j ) < 0.8 15/(19+j)<0.8 15/(19+j)<0.8,因此此时 j j j不存在。对于更小的 q q q值,情况也是如此。
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值