pusofalse 发表于 2011-4-26 22:00:17

a、b两人的精彩对话。

本帖最后由 pusofalse 于 2011-4-28 02:40 编辑

a: b说的是真话。
b: a说的是假话。
谁真谁假?

a: b说的是假话。
b: a说的是真话。
谁真谁假?

a: b说的是假话。
b: a说的是假话。
谁真谁假?

annybaby 发表于 2011-4-26 22:19:54

假定a假
则"b说的是真话"为假,说明b说的是假话,那么"a说的是假话"也是假,也就是说a说的是真话,与假设矛盾,于是,知道假设不成立,可以知道a为真,再由此得出b说的"a说的是假话。"也是假,于是确定b为假,其余两题,类似~~

pusofalse 发表于 2011-4-26 22:32:19

回复 2# annybaby


    a为真的话,那b也是真的。为何b假呢?~

yinbinly 发表于 2011-4-26 23:31:31

好晕,坐等答案{:face (356):}

wsfda 发表于 2011-4-27 10:58:38

好绕哦,无限循环,哈哈

newuser 发表于 2011-4-27 15:50:03

回复 1# pusofalse
细琢磨头疼!

cykefu 发表于 2011-4-29 03:29:38

2字,晕。。

3mile 发表于 2011-4-29 22:45:45

1,2题两人都说的是假话.
第3题若A说的是真话则B一定说假话.若B说真话则A一定说假话.

P大的题很让人晕啊.还是坐等正确答案.

yhn6537 发表于 2011-5-1 17:48:36

本帖最后由 yhn6537 于 2011-5-1 17:51 编辑

解方程
                a               b
假(0)        b=0        a=1
真(1)        b=1        a=0
               
                a               b
假(0)        b=1        a=0
真(1)        b=0        a=1
               
                a               b
假(0)        b=1        a=1
真(1)        b=0        a=0

1,2两题无解的样子
3的话一方为真,一方为假

m765555 发表于 2011-5-2 09:35:17

晕啊,呵呵

yjstone 发表于 2011-5-3 00:01:01

看不懂在搞什么东东。

komaau3 发表于 2011-5-3 14:53:59

蛋疼的表现{:face (411):}

styledream 发表于 2011-5-3 17:20:03

很是有趣的对话~~~
继续观望~~~

zw196512 发表于 2011-5-3 18:22:00

有些事就是真真假假假假真真!!{:face (303):}

papapa314 发表于 2011-5-3 23:12:14

回复 1# pusofalse

写个程序来判断,p版及各位请勿见笑:


Dim $a,$b,$ab,$ba;$a、$b表示a、b的诚实度,诚实记为1,否则为-1;,$ab为$a描述的b是否诚实,诚实记为1,不诚实记为-1,$ba为$b描述的a是否诚实,诚实记为1,不诚实记为-1

Global $count_1=0,$count_2=0;计数器

;如第一题,a: b说的是真话,故 $ab=1. b: a说的是假话,故$ba=-1,以下函数记为panduan(1,-1)

panduan(1,-1)

Func panduan($ab,$ba)
       
$a=1;假设a是诚实的
       
$b=$a*$ab;b的诚实与否等于a的诚实与否与a所说的乘积
       
$a=$b*$ba;a的诚实与否等于b的诚实与否与b所说的乘积

If $a<>1 Then $count_1+=1;MsgBox(0,0,"假设错误");反推回去验证a是否诚实,如果验证错误,那么假设错误,计数器+1
       
$a=-1;假设a是不诚实的

$b=$a*$ab
       
$a=$b*$ba

If $a<>-1 Then $count_2+=1;MsgBox(0,0,"假设错误")

If $count_1+$count_2=2 Then
        MsgBox(0,0,"两人都说假话")
ElseIf $count_1+$count_2=0 Then
        MsgBox(0,0,"两人都说真话")
Else
        If $count_1=1 And $count_2=0 Then MsgBox(0,0,"a说真话,b说假话")
        If $count_1=0 And $count_2=1 Then MsgBox(0,0,"b说真话,a说假话")
EndIf

EndFunc
页: [1] 2
查看完整版本: a、b两人的精彩对话。