24-25-1-离散数学II-期末

5131mod115^{131}\mod11

答案 / 解析

根据费马小定理510mod11=15^{10} mod 11 = 1。因此 5131mod11=5mod115^{131} mod 11 = 5 mod 11,结果即为 5。

1.

19mod14119\mod141 的逆元。

答案 / 解析

使用扩展欧几里得算法

141÷19=7......8141 \div 19 = 7 ...... 8

19÷8=2......319 \div 8 = 2 ...... 3

8÷3=2......28 \div 3 = 2 ...... 2

3÷2=1......13 \div 2 = 1 ...... 1

反过来,既有:

1=32=3(823)=3381 = 3 - 2 = 3 - (8 - 2 \cdot 3) = 3 \cdot 3 - 8

=3(1928)8=31978= 3 \cdot (19 - 2 \cdot 8) - 8 = 3 \cdot 19 - 7 \cdot 8

=3197(141719)=52197141= 3 \cdot 19 - 7 \cdot (141 - 7 \cdot 19) = 52 \cdot 19 - 7 \cdot 141

于是结果为 52。

2.

解方程 19x4  (mod141)19x\equiv4\;(\mod141)

答案 / 解析

由上一题得知了 19 mod 141 的逆元。

于是等式两边同乘 52,得:

1952x452mod14119 \cdot 52 x \equiv 4 \cdot 52 \mod 141

x208mod141x \equiv 208 \mod 141

于是 x=141k+67x=141k+67kk 为整数。

1.

NONSENSE 有多少种排列?

答案 / 解析

根据排列数问题的定理:

对有重复字母的词,重排种数为:总字母数! / (每种字母的个数!)之积。

我们发现 NONSENSE 中有 3 个 N,2 个 S,2 个 E 和 1 个 O,

因此结果为 8!/(3!3!2!1)=5608!/(3!\cdot3!\cdot2!\cdot1)=560

2.

以 O 开头或结尾的又有多少种?

答案 / 解析

只有 1 个 O,故先计算其他字母的排列情况数,为 210 种(方法同上题)。

然后 O 在最前和最后,共两种情况,故结果为 420。

一个打印随机 3 位码且每一位各不相同(如 789, 012, 103)的机器至少需要打印多少 3 位码才能保证有 6 个 完全相同(identical) 的 3 位数?

答案 / 解析

首先我们计算所有位各不相同的三位码的总数,应该有 1098=72010\cdot9\cdot8=720 种。

根据抽屉原理,应生成(5·总数+1)个数,才能保证一定存在 6 个完全相同的。故结果为 3601。

(注:本题的“三位码”指首位可以为 0。如果为“三位数”,则应只有 648 种情况,答案则为 3241)

判断是不是群:

1.

{0,1,2}\{0,1,2\}33 的加法。

答案 / 解析

答案:是群。

证明为群的 4 个条件:

  • 封闭性:发现对任意 {0,1,2}\in\{0,1,2\} 的元素 x,yx, y(x+y)mod3{0,1,2}(x+y) mod 3 \in \{0,1,2\},故封闭性得证;
  • 结合律:对任意 {0,1,2}\in\{0,1,2\} 的元素 x,y,zx, y, z((x+y)mod3+z)mod3=(x+y+z)mod3=(z+(x+y)mod3)mod3((x+y) mod 3 + z) mod 3 = (x+y+z) mod 3 = ( z + (x+y) mod 3) mod 3,结合律得证;
  • 存在 单位元 (identity):我们发现对任意 {0,1,2}\in\{0,1,2\} 的元素 xx(0+x)mod3=(x+0)mod3=x(0+x) mod 3 = (x+0) mod 3 = x,所以 0 就是单位元;
  • 每个元素存在 逆元:0 的逆元是 0,1 的逆元是 2,2 的逆元是 1,所以每个元素都有逆元,得证。

2.

Q\mathbb Qab=a+b2a*b=a+b-2

答案 / 解析

答案:是群。

证明为群的 4 个条件:

  • 封闭性:发现对任意 Q\in\mathbb Q 的元素 x,yx, yx+y2x+y-2 仍然是有理数,所以满足封闭性;
  • 结合律:对任意 Q\in\mathbb Q 的元素 x,y,zx, y, z((x+y2)+z2)=(x+y+z4)=(x+(y+z2)2)((x+y-2)+z-2)= (x+y+z-4) =(x+(y+z-2)-2),结合律得证;
  • 存在 单位元 (identity):我们发现对任意 xx(2+x2)=(x+22)=x(2+x-2)=(x+2-2)=x,所以 2 就是单位元;
  • 每个元素存在 逆元x+(y2)=2x+(y-2)=2,所以 y=4xy=4-x 就是 xx 的逆元。

答案 / 解析

本题没有指出 {0,1}\{0,1\} 上的运算。但我们不妨梳理相关知识点:

  • 要判断这种映射是否为同态,我们只需判断映射是否具有保运算性Z\mathbb Z 中两个数 a,ba, b 的和在 B 中的像是否与 a,ba', b' 在 B 中运算的结果是否相等;
  • 要求 ker(f)ker(f),我们需要求出所有满足 f(a)=ef(a)=e'Z\mathbb Z 中元素 aa
  • Z/ker(f)\mathbb Z/\ker(f)Z\mathbb Z 关于 ker(f) 的商群,即 ker(f) 在 A 中所有左陪集构成的集合。设 Z\mathbb Z 中的元素为 xx,则商群中的每个元素即为 {x+y|y∈ker(f)}。商群中的元素可使用 [该元素中的某一元素] 表示。

B={0,1}\mathbf B=\{0,1\} 和右运算,Z\mathbb Z 上的加法群。

1.

f(x)=xf(x)=x 是否是 Z\mathbb ZB\mathbf B 的同态?

2.

ker(f)\ker(f)

3.

Z/ker(f)\mathbb Z/\ker(f)

H=[101001110100010001]\mathbf H=\left[\begin{matrix}1&0&1\\0&0&1\\1&1&0\\1&0&0\\0&1&0\\0&0&1\end{matrix}\right]

1.

构造 B3B6\mathbf B^3\rightarrow\mathbf B^6 的群码。

答案 / 解析

构造群码的方法:

  1. 找出所有的原码,此题中为 000、001、…111;
  2. 将每个原码与一致性检验矩阵前 m 行(此题中为前 3 行)的每一列计算模 2 点积(即按位与后,计算各位和模 2),得出的结果组成的向量就是码字的后 r 位;

(例如,在本题中,110 与矩阵前三行的第一列按位与,结果为 100,各位和模 2 的结果为 1;与第二列按位与,结果为 000,各位和模 2 的结果为 0;与第三列按位与,结果为 110,各位和模 2 的结果为 0;因此 e(100) 的后三位为 100)

  1. 在每个原码的后面加上步骤 2 中的后 r 位,即为结果。

本题的答案应为:

e(000)=000000e(000)=000000

e(001)=001110e(001)=001110

e(010)=010001e(010)=010001

e(011)=011111e(011)=011111

e(100)=100101e(100)=100101

e(101)=101011e(101)=101011

e(110)=110100e(110)=110100

e(111)=111010e(111)=111010

2.

通过译码表,进行极大似然译码。(给了 3 个序列)

答案 / 解析

此题应使用极大似然规则进行译码。

对于每一个接收到的序列,计算其到每个码字汉明距离(不同位的个数),取汉明距离最小且原码值最小的码字作为实际收到的码字,并写出相应的原码。

3.

求陪集头的特征值。

答案 / 解析

计算步骤:

  1. 让序列与所有码字进行按位运算,所得的结果的集合即为左陪集
  2. 找出左陪集中权值(weight)最小的元素,即为陪集头
  3. 陪集头与一致性检验矩阵做模 2 点积,所得结果即为特征值。

1.

S1S0S\rightarrow1S0S0AS\rightarrow0A, A0A\rightarrow0,写出 10001000 的生成式。

答案 / 解析

S1S010A01000S \rightarrow 1S0 \rightarrow 10A0 \rightarrow 1000

2.

SASS\rightarrow ASS1S\rightarrow1A0AA\rightarrow0A, A0A\rightarrow0,写出 language。

答案 / 解析

我们发现,S 要么直接变为 1,要么变为 0…01,其中 0 的个数不限。

因此,直接写出语言:

L(G)={0n1n=0,1,2...}L(G)=\{0^n1 \mid n=0, 1, 2...\}

3.

构造 {0m1n2m+nm0,n0}\left\{0^m1^n2^{m+n}\mid m\ge0,n\ge0\right\} 的文法。

答案 / 解析

首先我们发现句子可能为空。因此存在生成规则 SλS \rightarrow \lambda

然后我们不妨从对称角度思考,将 0m1n2m+n0^m 1^n 2^{m+n} 拆为 0m1n2n2m0^m 1^n 2^n 2^m

为了生成左端的 0m0^m 和右端的 2m2^m,需要存在产生规则 S0S2S \rightarrow 0S2

同时为了在需要时能终止外侧的 0 和 2 延伸,需要存在切换到内侧的机制 SAS \rightarrow A

为了生成内侧的 1n2n1^n 2^n,需要存在产生规则 A0A2A \rightarrow 0A2

此外,由于 n 也可能为 0,所以加上规则 AλA \rightarrow \lambda

综上,产生规则集合 P 为 {Sλ,S0S2,SA,A1A2,Aλ}\{ S \rightarrow \lambda , S \rightarrow 0S2, S \rightarrow A, A \rightarrow 1A2, A \rightarrow \lambda \}

所有词语组成的集合 V 为 {S,A,0,1,2}\{ S, A, 0, 1, 2 \}

所有终结符组成的集合 T 为 {0,1,2}\{ 0, 1, 2 \}

所有起始符组成的集合 S 为 {S}\{ S \}

文法即为 G=(V,T,S,P)G=(V, T, S, P)

写出 Moore 机:输入的数个数 mod5\mod500 时输出 00,否则输出 11

答案 / 解析
答案9.png

第十题图

第十题图

1.

求表示的 Language。

答案 / 解析

首先观察状态转移图,我们发现被这种状态机接收的语言须满足:含有且只含有 2 个“1”,此外可以含有任意多的“0”。

因此我们写出语言:{0l10m10nl0,m0,n0}\{0^l 1 0^m 1 0^n \mid l \ge 0, m \ge 0, n \ge 0\}

2.

求对应的 regular grammar。

答案 / 解析

文法的产生规则集合 P 为:{SA1A1A,A0A,Aλ}\{ S \rightarrow A1A1A, A \rightarrow 0A, A \rightarrow \lambda \}

所有词语组成的集合 V 为 {S,A,0,1}\{ S, A, 0, 1 \}

所有终结符组成的集合 T 为 {0,1}\{ 0, 1 \}

所有起始符组成的集合 S 为 {S}\{ S \}

文法即为 G=(V,T,S,P)G=(V, T, S, P)