离散数学(荣誉) 作业一

离散数学(荣誉)作业一

一、在一阶逻辑中构造下面推理的证明:

1. 学会的成员都有高级职称并且是专家。有些成员是青年人。所以有的成员是青年专家

解:
命题符号化:
F ( x ) : x F(x):x F(x):x是学会成员 G ( x ) : x G(x):x G(x):x是专家 H ( x ) : x H(x):x H(x):x有高级职称 R ( x ) : x R(x):x R(x):x是青年人
前提: ∀ x ( F ( x ) → G ( x ) ∧ H ( x ) ) , ∃ x ( F ( x ) ∧ R ( x ) ) ∀x(F(x)→G(x)∧H(x)),∃x(F(x)∧R(x)) x(F(x)G(x)H(x)),x(F(x)R(x))
结论: ∃ x ( F ( x ) ∧ G ( x ) ∧ R ( x ) ) ∃x(F(x)∧G(x)∧R(x)) x(F(x)G(x)R(x))
证明:
∃ x ( F ( x ) ∧ R ( x ) ) ∃x(F(x)∧R(x)) x(F(x)R(x))        前提引入
F ( y ) ∧ R ( y ) F(y)∧R(y) F(y)R(y)           EI规则
∀ x ( F ( x ) → G ( x ) ∧ H ( x ) ) ∀x(F(x)→G(x)∧H(x)) x(F(x)G(x)H(x))    前提引入
F ( x ) → G ( x ) ∧ H ( x ) F(x)→G(x)∧H(x) F(x)G(x)H(x)      UI规则
F ( y ) F(y) F(y)               ②化简
G ( y ) ∧ H ( y ) G(y)∧H(y) G(y)H(y)           ④⑤假言推理
R ( y ) R(y) R(y)               ②化简
G ( y ) G(y) G(y)               ⑥化简
F ( y ) ∧ G ( y ) ∧ R ( y ) F(y)∧G(y)∧R(y) F(y)G(y)R(y)       合取
∃ x ( F ( x ) ∧ G ( x ) ∧ R ( x ) ) ∃x(F(x)∧G(x)∧R(x)) x(F(x)G(x)R(x))     EG规则

2. 每个喜欢步行的人都不喜欢坐汽车. 每个人或者喜欢坐汽车或者喜欢骑自行车.有的人不喜欢骑自行车. 因而有的人不喜欢步行.(个体域人类集合)

解:
命题符号化:
F ( x ) : x F(x): x F(x):x喜欢步行 G ( x ) : x G(x):x G(x):x喜欢坐汽车 H ( x ) : x H(x):x H(x):x喜欢骑自行车
前提: ∀ x ( F ( x ) → ¬ G ( x ) ) , ∀ x ( G ( x ) ∨ H ( x ) ) , ∃ x ¬ H ( x ) ∀x(F(x)→¬G(x)),∀x(G(x)∨H(x)),∃x¬H(x) x(F(x)¬G(x)),x(G(x)H(x)),x¬H(x)
结论: ∃ x ¬ F ( x ) ∃x¬F(x) x¬F(x)
证明:
∃ x ¬ H ( x ) ∃x¬H(x) x¬H(x) 前提引入
¬ H ( y ) ¬H(y) ¬H(y) EI规则
∀ x ( G ( x ) ∨ H ( x ) ) ∀x(G(x)∨H(x)) x(G(x)H(x)) 前提引入
G ( y ) ∨ H ( y ) G(y)∨H(y) G(y)H(y) UI规则
G ( y ) G(y) G(y) ②④析取三段论
∀ x ( F ( x ) → ¬ G ( x ) ) ∀x(F(x)→¬G(x)) x(F(x)¬G(x)) 前提引入
F ( y ) → ¬ G ( y ) F(y)→¬G(y) F(y)¬G(y) UI规则
¬ F ( y ) ¬F(y) ¬F(y) ⑤⑦拒取式
∃ x ¬ F ( x ) ∃x¬F(x) x¬F(x) EG规则

3. 东北人都不怕冷。王国端怕冷。所以王国端不是东北人。

解:
命题符号化:
F ( x ) : x F(x): x F(x):x是东北人 G ( x ) : x G (x): x G(x):x怕冷 a : a: a:王国端
前提: ∀ x ( F ( x ) → ¬ G ( x ) ) , G ( a ) ∀x(F(x)→¬G(x)),G(a) x(F(x)¬G(x)),G(a)
结论: ¬ F ( a ) ¬F(a) ¬F(a)
证明:
∀ x ( F ( x ) → ¬ G ( x ) ) ∀x(F(x)→¬G(x)) x(F(x)¬G(x)) 前提引入
F ( a ) → ¬ G ( a ) F(a)→¬G(a) F(a)¬G(a) UI规则
G ( a ) G(a) G(a) 前提引入
¬ F ( a ) ¬F(a) ¬F(a) ②③拒取式

4. 每个大学毕业生不是继续读硕士就是找工作就业。每个大学毕业生只有成绩优秀才继续读硕士。有些毕业生成绩优秀,但并非每个毕业生成绩均优秀。因此,有些毕业生找工作就业。

解:
命题符号化:
集合 A : A: A大学生 P ( x ) : x P (x): x P(x):x继续读硕士 Q ( x ) : x Q(x):x Q(x):x找工作就业 R ( x ) : x R(x):x R(x):x成绩优秀
前提: ∀ ( x ∈ A ) ( P ( x ) ⋁ Q ( x ) ) ∀ ( x ∈ A ) ( P ( x ) → R ( x ) ) ∃ ( x ∈ A ) ( ¬ R ( x ) ) ∀(x∈A)(P(x)⋁Q(x)) ∀(x∈A)(P(x)→R(x)) ∃(x∈A)(¬R(x)) (xA)(P(x)Q(x))(xA)(P(x)R(x))(xA)(¬R(x))
结论: ∃ ( x ∈ A ) ( Q ( x ) ) ∃(x∈A)(Q(x)) (xA)(Q(x))
证明:
∀ ( x ∈ A ) ( P ( x ) ⋁ Q ( x ) ) ∀(x∈A)(P(x)⋁Q(x)) (xA)(P(x)Q(x))
∀ ( x ∈ A ) ( P ( x ) → R ( x ) ) ∀(x∈A)(P(x)→R(x)) (xA)(P(x)R(x))
∃ ( x ∈ A ) ( ¬ R ( x ) ) ∃(x∈A)(¬R(x)) (xA)(¬R(x))
¬ R ( y ) ¬R(y) ¬R(y)
∀ ( x ∈ A ) ( ¬ P ( x ) ⋁ R ( x ) ) ∀(x∈A)(¬P(x)⋁R(x)) (xA)(¬P(x)R(x))
¬ P ( y ) ⋁ R ( y ) ¬P(y)⋁R(y) ¬P(y)R(y)
¬ P ( y ) ¬P(y) ¬P(y)
P ( y ) ⋁ Q ( y ) P(y)⋁Q(y) P(y)Q(y)
Q ( y ) Q(y) Q(y)
∃ ( x ∈ A ) ( Q ( x ) ) ∃(x∈A)(Q(x)) (xA)(Q(x))

二、证明

1. 已知 a , b ∈ R , a ≠ b a,b∈R, a≠b a,bR,a=b. 证明a和b的算数平均小于其几何平均即 a + b 2 > a b \frac{a+b}{2}>\sqrt{ab} 2a+b>ab

解:
若证明: a + b 2 > a b \frac{a+b}{2}>\sqrt{ab} 2a+b>ab ,只需证 a + b > 2 a b a+b>2\sqrt{ab} a+b>2ab
若证明: a + b > 2 a b a+b>2\sqrt{ab} a+b>2ab ,只需证 ( a + b ) 2 > ( 2 a b ) 2 (a+b)^2>(2\sqrt{ab})^2 (a+b)2>(2ab )2
化简得 a 2 − 2 a b + b 2 > 0 a^2-2ab+b^2>0 a22ab+b2>0,即 ( a − b ) 2 > 0 (a-b)^2>0 (ab)2>0
显然成立,故得证。

2. 已知n∈N, 且n不能被2或3整除,请证明 n 2 − 1 n^2-1 n21能被24整除。

∵对于连续三个整数 n − 1 、 n 、 n + 1 n-1、n、n+1 n1nn+1 n n n不能被3整除,则 n − 1 n-1 n1 n + 1 n+1 n+1有且仅有一个数能够被3整除。
又∵n不能被2整除,则 n − 1 n-1 n1 n + 1 n+1 n+1都必能被2整除。
又∵连续两个2的倍数,必有一个数能被4整除。
n − 1 n-1 n1 n + 1 n+1 n+1有且仅有一个数能够被4整除。
( n − 1 ) ( n + 1 ) (n-1)(n+1) (n1)(n+1)必能被24整除( 2 ∗ 3 ∗ 4 = 24 2*3*4=24 234=24
又∵ n 2 − 1 = ( n − 1 ) ( n + 1 ) n^2-1=(n-1)(n+1) n21=(n1)(n+1)
n 2 − 1 n^2-1 n21能被24整除
故得证

3. 证明 3 \sqrt{3} 3 是无理数。

假设 3 \sqrt{3} 3 为有理数,则 3 \sqrt{3} 3 为有理数。根据有理数定义有 3 = m / n \sqrt{3}=m/n 3 =m/n(其中m与n互质)。
对等式两侧平方有: 3 n 2 = m 2 3n^2=m^2 3n2=m2 。即m为3的倍数。不妨令 m = 3 k m=3k m=3k(k为整数)
化简得 n 2 = 3 k 2 n^2=3k^2 n2=3k2 即n也为3的倍数。这与前提m与n互质矛盾,故假设不成立。即 3 \sqrt{3} 3 为无理数。故得证。

4. 证明存在某个整数,可以用两种不同的方式将其表示成整数的立方和。

a 3 + b 3 = c 3 + d 3 a^3+b^3=c^3+d^3 a3+b3=c3+d3(a,b,c,d互不相等)
通过计算机编程得当a,b,c,d都小于30时有4组符合条件的解。
分别如下:
1 3 + 1 2 3 = 1729 1^3 + 12^3 = 1729 13+123=1729    9 3 + 1 0 3 = 1729 9^3 + 10^3 = 1729 93+103=1729
2 3 + 1 6 3 = 4104 2^3 + 16^3 = 4104 23+163=4104    9 3 + 1 5 3 = 4104 9^3 + 15^3 = 4104 93+153=4104
2 3 + 2 4 3 = 13832 2^3 + 24^3 = 13832 23+243=13832    1 8 3 + 2 0 3 = 13832 18^3 + 20^3 = 13832 183+203=13832
2 3 + 3 4 3 = 39312 2^3 + 34^3 = 39312 23+343=39312    1 5 3 + 3 3 3 = 39312 15^3 + 33^3 = 39312 153+333=39312
故得证

5. 证明存在无理数x,y, 使得 x y x^y xy为有理数。

x = e x=e x=e y = ln ⁡ ⁡ 2 y=\ln⁡2 y=ln2时,x与y均为无理数 x y x^y xy为有理数。
故得证。

6. 证明可用4分和5分邮票组成n分邮资, n≥12.

∵12=3×4 13=2×4+5 14=2×5+4 15=3×5
任何大于12的整数都可以转化为12或13或14或15与若干个4的和。故得证。

三、选作题

1. 了解什么是几何平均数,平方平均数,调和平均数,算术平均数,证明它们之间的大小关系,举例说明这几种平均数在做数据统计时不同用处。

①几何平均数 G n G_n Gn): G n = x 1 x 2 x 3 ⋯ x n n G_n=\sqrt[n]{x_1 x_2 x_3⋯x_n } Gn=nx1x2x3xn
几何平均数是对各变量值的连乘积开项数次方根。如果总水平、总成果等于所有阶段、所有环节水平、成果的连乘积总和时,求各阶段、各环节的一般水平、一般成果,此时将使用几何平均数。
用途:
(1)对比率、指数等进行平均;
(2)计算平均发展速度
(3)复利下的平均年利率;
(4)连续作业的车间求产品的平均合格率。
特点:
(1)几何平均数受极端值的影响较算术平均数小;
(2)如果变量值有负值,计算出的几何平均数可能会成为负数或虚数;
(3)它仅适用于具有等比或近似等比关系的数据;
(4)几何平均数的对数是各变量值对数的算术平均数。
例:假定某地储蓄年利率(按复利计算):5%持续1.5年,3%持续2.5年,2.2%持续1年。求此5年内该地平均储蓄年利率。
解:平均储蓄年利率: G = 1.0 5 1.5 × 1.0 3 2.5 × 1.02 2 1 1.5 + 2.5 + 1 − 1 ≈ 3.43 % G=\sqrt[1.5+2.5+1]{1.05^{1.5} ×1.03^{2.5} ×1.022^1}-1≈3.43\% G=1.5+2.5+11.051.5×1.032.5×1.0221 13.43%

②调和平均数( H n H_n Hn H n = n 1 x 1 + 1 x 2 + 1 x 3 + ⋯ + 1 x n H_n=\frac{n}{\frac{1}{x_1} +\frac{1}{x_2} +\frac{1}{x_3} +⋯+\frac{1}{x_n} } Hn=x11+x21+x31++xn1n
调和平均数又称倒数平均数,是总体各统计变量倒数的算术平均数的倒数。调和平均数是平均数的一种。但统计调和平均数,与数学调和平均数不同,它是变量倒数的算术平均数的倒数。由于它是根据变量的倒数计算的,所以又称倒数平均数。
特点:
(1)调和平均数易受极端值的影响,且受极小值的影响比受极大值的影响更大。
(2)只要有一个标志值为0,就不能计算调和平均数。
(3)当组距数列有开口组时,其组中值即使按相邻组距计算,假定性也很大,这时的调和平均数的代表性很不可靠。
(4)调和平均数应用的范围较小。在实际中,往往由于缺乏总体单位数的资料而不能直接计算算术平均数,这时需用调和平均法来求得平均数。

例:三个分别为10Ω,20Ω,30Ω的电阻并联,求等效电阻
解: H = 1 1 10 + 1 20 + 1 30 = 60 11 Ω H=\frac{1}{\frac{1}{10}+\frac{1}{20}+\frac{1}{30}}=\frac{60}{11} Ω H=101+201+3011=1160Ω

③算数平均数 A n A_n An): A n = x 1 + x 2 + x 3 + ⋯ + x n n A_n=\frac{x_1+x_2+x_3+⋯+x_n}{n} An=nx1+x2+x3++xn
算术平均数又称均值,是统计学中最基本、最常用的一种平均指标,分为简单算术平均数、加权算术平均数。它主要适用于数值型数据,不适用于品质数据。根据表现形式的不同,算术平均数有不同的计算形式和计算公式。
特点:
(1)算术平均数是一个良好的集中量数,具有反应灵敏、确定严密、简明易解、计算简单、适合进一步演算和较小受抽样变化的影响等优点。
(2)算术平均数易受极端数据的影响,这是因为平均数反应灵敏,每个数据的或大或小的变化都会影响到最终结果。

例:某销售小组有5名销售员,元旦一天的销售额分别为520元、600元、480元、750元和500元,求该日平均销售额。
解: A = 520 + 600 + 480 + 750 + 500 5 = 570 A=\frac{520+600+480+750+500}{5}=570 A=5520+600+480+750+500=570

④平方平均数 Q n Q_n Qn): Q n = x 1 2 + x 2 2 + x 3 2 + ⋯ + x n 2 n Q_n=\sqrt{\frac{x_1^2+x_2^2+x_3^2+⋯+x_n^2}{n}} Qn=nx12+x22+x32++xn2
平方平均数,又名均方根,是指一组数据的平方的平均数的算术平方根。
特点:
(1)方均根值并非所有模型均适用, 只有在数值分布呈现正态分布时才适用。
(2)如果分布呈现方波、三角波,那就要用其他的公式, 否则失真会很大。

例:已知某次期中考试学生成绩为64,80,95,60,42,100,95,92,97,79求标准差
解:标准差 Q = ( 64 − M ) 2 + ( 80 − M ) 2 + ( 95 − M ) 2 + ⋯ + ( 79 − M ) 2 10 ≈ 18.4 Q=\sqrt{\frac{(64-M)^2+(80-M)^2+(95-M)^2+⋯+(79-M)^2}{10}}≈18.4 Q=10(64M)2+(80M)2+(95M)2++(79M)2 18.4

⑤大小关系:
调和平均数≤几何平均数≤算术平均数≤平方平均数( H n ≤ G n ≤ A n ≤ Q n H_n≤G_n≤A_n≤Q_n HnGnAnQn
n 1 x 1 + 1 x 2 + 1 x 3 + ⋯ + 1 x n ≤ x 1 x 2 x 3 ⋯ x n n ≤ x 1 + x 2 + x 3 + ⋯ + x n n ≤ x 1 2 + x 2 2 + x 3 2 + ⋯ + x n 2 n \frac{n}{\frac{1}{x_1} +\frac{1}{x_2} +\frac{1}{x_3} +⋯+\frac{1}{x_n} } \le\sqrt[n]{x_1 x_2 x_3⋯x_n} \le \frac{x_1+x_2+x_3+⋯+x_n}{n} \le \sqrt{\frac{x_1^2+x_2^2+x_3^2+⋯+x_n^2}{n}} x11+x21+x31++xn1nnx1x2x3xn nx1+x2+x3++xnnx12+x22+x32++xn2

证明如下:
对于 x 1 x 2 x 3 ⋯ x n n ≤ x 1 + x 2 + x 3 + ⋯ + x n n \sqrt[n]{x_1 x_2 x_3⋯x_n} \le \frac{x_1+x_2+x_3+⋯+x_n}{n} nx1x2x3xn nx1+x2+x3++xn有:
n = 1 , 2 n=1,2 n=1,2时,不等式显然成立;
n = 2 k ( k ∈ N ∗ ) n=2^k(k∈N^*) n=2k(kN) 时,不等式为 a b ≤ a + b 2 \sqrt{ab}≤\frac{a+b}{2} ab 2a+b的直接推论
n ≠ 2 k ( k ∈ N ∗ ) n≠2^k (k∈N^* ) n=2k(kN)时,不妨设 l ∈ N ∗ l∈N^* lN,使得 2 l − 1 < n < 2 l 2^{l-1}<n<2^l 2l1<n<2l。令
x 1 x 2 x 3 ⋯ x n n = x ˉ \sqrt[n]{x_1 x_2 x_3⋯x_n }=\bar{x} nx1x2x3xn =xˉ
x 1 , x 2 , x 3 … x n x_1, x_2, x_3…x_n x1,x2,x3xn后补上 ( 2 l − n ) (2^l-n) (2ln) x ˉ \bar{x} xˉ,将其扩充为 2 l 2^l 2l个数。此时有:
1 2 l [ x 1 + x 2 + x 3 + ⋯ + x n + ( 2 l − n ) x ˉ ] ≥ ( x 1 x 2 x 3 ⋯ x n x ˉ 2 l − n ) 1 2 l = x ˉ \frac{1}{2^l}[x_1+x_2+x_3+⋯+x_n+(2^l-n)\bar{x}]\ge(x_1x_2x_3⋯x_n{\bar{x}}^{2^l-n})^{\frac{1}{2^l}}=\bar{x} 2l1[x1+x2+x3++xn+(2ln)xˉ](x1x2x3xnxˉ2ln)2l1=xˉ
整理得:
x 1 x 2 x 3 ⋯ x n n ≤ x 1 + x 2 + x 3 + ⋯ + x n n \sqrt[n]{x_1 x_2 x_3⋯x_n} \le \frac{x_1+x_2+x_3+⋯+x_n}{n} nx1x2x3xn nx1+x2+x3++xn
对于上式,不妨用 1 x i \frac{1}{x_i} xi1替换 x i x_i xi此时有:
1 x 1 1 x 2 1 x 3 ⋯ 1 x n n ≤ 1 x 1 + 1 x 2 + 1 x 3 + ⋯ + 1 x n n \sqrt[n]{\frac{1}{x_1}\frac{1}{x_2}\frac{1}{x_3}⋯\frac{1}{x_n}}\le\frac{\frac{1}{x_1}+\frac{1}{x_2}+\frac{1}{x_3}+⋯+\frac{1}{x_n}}{n} nx11x21x31xn1 nx11+x21+x31++xn1
因为 x 1 , x 2 , x 3 ⋯ x n x_{1},x_{2},x_{3}\cdots x_{n} x1,x2,x3xn都大于0,故取倒数并整理后有:
n 1 x 1 + 1 x 2 + 1 x 3 + ⋯ + 1 x n ≤ x 1 x 2 x 3 ⋯ x n n \frac{n}{\frac{1}{x_{1}} + \frac{1}{x_{2}} + \frac{1}{x_{3}} + \cdots + \frac{1}{x_{n}}} \leq \sqrt[n]{x_{1}x_{2}x_{3}\cdots x_{n}} x11+x21+x31++xn1nnx1x2x3xn
依琴生不等式,当 f ( x ) = x f\left( x \right) = \sqrt{x} f(x)=x 得:

x 1 + x 2 + x 3 + … + x n n ≤ x 1 + x 2 + x 3 + ⋯ + x n n \frac{\sqrt{x_{1}} + \sqrt{x_{2}} + \sqrt{x_{3}} + \ldots + \sqrt{x_{n}}}{n} \leq \sqrt{\frac{x_{1} + x_{2} + x_{3} + \cdots + x_{n}}{n}} nx1 +x2 +x3 ++xn nx1+x2+x3++xn

即:
x 1 + x 2 + x 3 + ⋯ + x n n ≤ x 1 2 + x 2 2 + x 3 2 + ⋯ + x n 2 n \frac{x_{1} + x_{2} + x_{3} + \cdots + x_{n}}{n} \leq \sqrt{\frac{x_{1}^{2} + x_{2}^{2} + x_{3}^{2} + \cdots + x_{n}^{2}}{n}} nx1+x2+x3++xnnx12+x22+x32++xn2
因此:

n 1 x 1 + 1 x 2 + 1 x 3 + ⋯ + 1 x n ≤ x 1 x 2 x 3 ⋯ x n n ≤ x 1 + x 2 + x 3 + ⋯ + x n n ≤ x 1 2 + x 2 2 + x 3 2 + ⋯ + x n 2 n \frac{n}{\frac{1}{x_{1}} + \frac{1}{x_{2}} + \frac{1}{x_{3}} + \cdots + \frac{1}{x_{n}}} \leq \sqrt[n]{x_{1}x_{2}x_{3}\cdots x_{n}} \leq \frac{x_{1} + x_{2} + x_{3} + \cdots + x_{n}}{n} \leq \sqrt{\frac{x_{1}^{2} + x_{2}^{2} + x_{3}^{2} + \cdots + x_{n}^{2}}{n}} x11+x21+x31++xn1nnx1x2x3xn nx1+x2+x3++xnnx12+x22+x32++xn2

即调和平均数≤几何平均数≤算术平均数≤平方平均数( H n ≤ G n ≤ A n ≤ Q n H_{n}\mathbf{\leq}G_{n} \leq A_{n} \leq Q_{n} HnGnAnQn

2、自学prolog语言,编程实现,找出谁是凶手,并提交完整代码的实验报告。

已知条件:

  1. 六个嫌疑犯是三男(George、John、Robert)三女(Barbara、Christine、Yolanda)。
  2. 六个嫌疑犯分别待在六个房间:浴室(Bathroom)、饭厅(Dining Room)、厨房(Kitchen)、起居室(Living Room)、 储藏室(Pantry)、书房(Study)。每间房间都有一件可疑的物品,可以当作凶器:包(Bag)、火枪(Firearm)、煤气(Gas)、刀(Knife)、毒药(Poison)、绳索(Rope)。
  3. 厨房里面是一个男人,那里的凶器不是绳索、刀子、包和火枪。
  4. Barbara 和 Yolanda 在浴室和书房。
  5. 带包的那个人不是 Barbara 和 George,也不在浴室和饭厅。
  6. 书房里面是一个带绳子的女人。
  7. 起居室里面那件凶器,与 John 或 George 在一起。
  8. 刀子不在饭厅。
  9. 书房和食品储藏室里面的凶器,没跟 Yolanda 在一起。
  10. George 所在的那间屋子有火枪。
  11. Boddy 先生死在食品储藏室里,那里的凶器是煤气。
man(george). man(john). man(robert).
woman(barbara). woman(christine). woman(yolanda).
person(X):- man(X).
person(X):- woman(X).

location(bathroom). location(dining). location(kitchen).
location(livingroom). location(pantry). location(study).
weapon(bag). weapon(firearm). weapon(gas). 
weapon(knife). weapon(poison). weapon(rope).

uniq_ppl(A,B,C,D,E,F):- person(A), person(B), person(C), person(D), person(E), person(F),  \+A=B, \+A=C, \+A=D, \+A=E, \+A=F, \+B=C, \+B=D, \+B=E, \+B=F, \+C=D, \+C=E, \+C=F, \+D=E, \+D=F, \+E=F.

writeanswers(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope):- 
    write("Bathroom: "), write(Bathroom), nl,
    write("Dining: "), write(Dining), nl,
    write("Livingroom: "), write(Livingroom), nl, 
    write("Pantry: "), write(Pantry), nl,
    write("Study: "), write(Study), nl,
    write("Kitchen: "), write(Kitchen), nl,

    write("Knife: "), write(Knife), nl,
    write("Gas: "), write(Gas), nl,
    write("Rope: "), write(Rope), nl, 
    write("Bag: "), write(Bag), nl,
    write("Poison: "), write(Poison), nl,
    write("Firearm: "), write(Firearm), nl.

clue1(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
   man(Kitchen), 
   \+Kitchen=Rope, \+Kitchen=Knife, \+Kitchen=Bag, \+Kitchen=Firearm.

clue2(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
    barbara=Bathroom, yolanda=Study.
clue2(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
    barbara=Study, yolanda=Bathroom.

clue3(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
    \+barbara=Bag, \+george=Bag, \+Bag=Bathroom, \+Bag=Dining.

clue4(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
    woman(Rope), Rope=Study.

clue5(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
    Livingroom = john.
clue5(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
    Livingroom = george.

clue6(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
    \+Knife=Dining.

clue7(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
    \+yolanda=Pantry, \+yolanda=Study.

clue8(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope) :-
    Firearm=george.

murderer(X) :-
   uniq_ppl(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study),
   uniq_ppl(Bag, Firearm, Gas, Knife, Poison, Rope),
   clue1(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope),
   clue2(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope),
   clue3(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope),
   clue4(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope),
   clue5(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope),
   clue6(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope),
   clue7(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope),
   clue8(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope),
   X = Gas, X = Pantry,
   
   write("KILLER IS :"), write(X), nl, 
   writeanswers(Bathroom, Dining, Kitchen, Livingroom, Pantry, Study, Bag, Firearm, Gas, Knife, Poison, Rope).

运行结果:

KILLER IS :christine
Bathroom: yolanda
Dining: george
Livingroom: john
Pantry: christine
Study: barbara
Kitchen: robert
Knife: yolanda
Gas: christine
Rope: barbara
Bag: john
Poison: robert
Firearm: george
X = christine

即凶手是christine

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

上山打老虎D

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

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

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

打赏作者

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

抵扣说明:

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

余额充值