计算机逻辑判断问题

[日期:2014-05-19] 作者:信息技术 次浏览 [字体: ]

计算机可以模拟人的思维推理过程来解决智力判断、逻辑推理问题。利用计算机高速的计算功能,可以使用枚举法解决此类问题。所谓枚举法,就是将各种可能都试一下,以找到满足条件的解。
      解决逻辑判断问题的关键是怎样描述条件。一道题中可能有几种判断,每个判断可以用一个关系式描述。这几个关系式有真有假,找到符合题目要求的关系式即可找到问题的答案。
      例  甲、乙、丙、丁四个人中有一个人是小偷,请根据四个人的谈话判断谁是小偷。已知四人中有一个人说假话。
      甲:我不是小偷。 乙:丙是小偷。
      丙:丁是小偷。   丁:丙说谎。
      分析:可以采用枚举法,依次假设甲、乙、丙、丁是小偷,再根据他们的谈话找到关系式。由于有一个人说谎,所以四个关系式相加值为-3时即可找到小偷。
FOR X=1 TO 4
   P=(X<>1)+(X=3)+(X=4)+(X<>4)
   IF P=-3 THEN PRINT X: END
NEXT X
END
    例   四大湖问题(湖南省1986年青少年程序设计竞赛试题)。
    上地理课时,四个学生回答我国四大淡水湖的大小时说:
    甲:洞庭湖最大,洪泽湖最小,鄱阳湖第三。
    乙:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。
    丙:洪泽湖最小,洞庭湖第三。
    丁:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。
    对于每个湖的大小,每人仅答对了一个。请判断四个湖的大小。
    分析:用变量A、B、C、D分别表示洞庭湖、洪泽湖、鄱阳湖和太湖,变量的值表示湖是第几大。让A、B、C、D分别从1到4变化,找出满足条件的解。由于四个变量的值各不相同,所以四个变量的和为10,积为24,为减少循环次数,用三个变量的值,即可确定第四个变量的值。
FOR A=1 TO 4
   FOR B=1 TO 4
       FOR C=1 TO 4
          D=10-A-B-C
          IF A*B*C*D<>24 THEN GOTO 5
          P1=(A=1)+(B=4)+(C=3)
          P2=(B=1)+(A=4)+(C=2)+(D=3)
          P3=(B=4)+(A=3)
          P4=(C=1)+(D=4)+(B=2)+(A=3)
          IF NOT(P1=-1 AND P2=-1 AND P3=-1 AND P4=-1) THEN GOTO 5
          PRINT "洞庭湖", "洪泽湖", "鄱阳湖", "太湖"
          PRINT A,B,C,D
5 NEXT C,B,A
END

 

 

 

 

 

以一道简单例题看策略的谋划:

对于某一个具体问题,如何思考分析,从而谋划策略,是十分重要的。策略的谋划过程是一个思维发散的过程。问题本身千变万化,解决问题的策略也比较多,谋划策略的方法不一而足,根据人们的思维方式,我们论述以下几种谋划策略的思想。

1)、降格思想

从问题的特殊和简单状态的分析种归纳出问题的实质内涵或规律,从而得到问题的一般解法,也就是我们常说的“投石问路”或者叫做“尝试归纳”。这种通过特殊求得一般、通过实际求得抽象得思想再谋划策略得过程中是十分有效的,特别是当题目中所给的数据比较打或者很抽象而难以入手时。

问题:(台阶问题)一个人登上一个10级的台阶,可以一步登1级,也可以一步登2级。问:一共有几种登法?

这道题种的台阶数为10,虽然不是很大,但一时也很难入手。我们运用降格思想分析这个问题,先看几种简单的情形:

A、 仅有1级台阶时,登法只有1种:一步1级。

B、 2级台阶时,登法有2种:一步2级;1+1级(两步)。

C、 3级台阶时,登法有3种:

1+1+1级;1+2级;2+1级。

D、4级台阶时,登法有5种:

1+1+1+1级;

1+1+2级;

1+2+1级;

1+1+1级;

2+2级。

E、 5级台阶时,登法有8种:(不再列举)

按照台阶递增的次序把登法的种数排列如下:12358……

容易想到这是菲波那契数列的一部分,这就找到了问题的规律,同时也谋划出解决问题的策略:数学模型(规律)策略。容易得到后继数据是:1321345589……问题得解。

2)升格思想

这种思想与第一种思想恰恰相反,它是把一些过于具体得问题抽象化,目的是忽略其中的一些次要因素,从而更好的把握其中的主要因素,通过解决一般问题从而解决具体问题。有时会发生这样的情况:由于问题中给出的数据过于具体,往往会形成一种思维定势,一直针对具体的数据进行分析,而忽视了问题种显而易见的东西。运用这一思想有利于突破思维定势,更快地找到解决问题的策略,其关键是在于对抽象问题的分析和推理。

我们把“台阶问题”抽象化,设有n级台阶,登台阶规则不变。对于登n级台阶的最后一步有两种情况:

(1)       由第n-1级台阶跨一步(1级)到达第n级;

(2)       由第n-2级台阶跨一步(2级)到达第n级。

显然,以上的两类登法是不同的,n级台阶的总登法就是这两类登法的和。我们用FX)表示X级台阶的登法总数,则有:

FN=FN-1+FN-2)以及F1=1F2=2

这就迅速地得到了问题得数学模型,也就谋划出解决问题得策略:数学模型(规律)策略。

从这个例子的分析中可以看出,对问题的抽象概括,寻求问题的一般解法,对于某些问题的解决是十分简便的。适当运用升格思想往往可以“一箭中的”,迅速描述出问题的本质,从而得到解决问题的策略。

(3)       分格思想

把整个问题划分为几个相联系的子问题或几个连续的解题步骤,再一一设法解决,最后综合各个部分的解就可以得到整个问题的解。作为一种思维方法,在分析问题的时候恰当运用,对于谋划解题粗略是很有效的。划分问题的方法有很多种,最基本的原则是把难以描述的问题化为易于描述的问题,把不易求解的化为易求解的。

仍是看上面的“台阶问题”,由登10级台阶所用的步数不同,可以划分为如下的几种情况:

A、共要登10步(全部都是每步登1级):有1种登法;

B、共要登9步(只有某一步登2级,其余每步登1级):有9种登法;

C、共要登8步(只有某两步每步登2级,其余每步登1级):有28种登法;

D、共要登7步(有三步登2级):有35种登法;

E、共要登6步(四步登2级):有15种登法;

F、 共要登5步(全登2步):有1种登法;

因此总共的登法有1+9+28+35+15+1=89种。

通过上面的对问题划分的过程以及计算的结果的分析,我们可以得到以下的两种策略:

1)、分治策略,直接仿照上面的划分过程由计算机加以实现。

2)、数学模型(规律)策略,从中归纳出:对于n级台阶的登法有:

 

 

 

练习:

1、  求数151830753369的最大公约数。

2、  ABCDE五人为竞赛前5名,他们在名次公布前猜名次。

A说:B得第三名,C得第五名。

B说:D得第二名,E得第四名。

C说:B得第一名,E得第四名。

D说:C得第一名,B得第二名。

E说:D得第二名,A得第三名。

每个人都猜对一半,实际名次是什么?

3、  谁去破案?

某侦察队长接到一项紧急任务,要他在代号为ABCDEF六个队员中挑选出若干人去侦破一件案子,人选的配备要求,必须注意下列各点:

1)、AB二人中至少去一人;

2)、AD不能一起去;

3)、AEF三人中要派两人去;

4)、BC两人中都去或都不去;

5)、CD两人中去一人;

6)、若D不去,则E也不去。

请问应该让谁去?

4、四人分书:把23本书发给甲、乙、丙、丁四人,要求这四人得到得书得数量分别不得超过9本、8本、7本、6本,问有多少种不同的分法?并找出每种具体分法。
上一条:没有啦!
下一条:回溯法