找回密码
 加入
搜索
查看: 8086|回复: 15

a、b两人的精彩对话。

 火.. [复制链接]
发表于 2011-4-26 22:00:17 | 显示全部楼层 |阅读模式
本帖最后由 pusofalse 于 2011-4-28 02:40 编辑

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

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

a: b说的是假话。
b: a说的是假话。
谁真谁假?
发表于 2011-4-26 22:19:54 | 显示全部楼层
假定a假
则  "b说的是真话"为假,说明b说的是假话,那么"a说的是假话"也是假,也就是说a说的是真话,与假设矛盾,于是,知道假设不成立,可以知道a为真,再由此得出b说的"a说的是假话。"也是假,于是确定b为假,其余两题,类似~~
 楼主| 发表于 2011-4-26 22:32:19 | 显示全部楼层
回复 2# annybaby


    a为真的话,那b也是真的。为何b假呢?~
发表于 2011-4-26 23:31:31 | 显示全部楼层
好晕,坐等答案
发表于 2011-4-27 10:58:38 | 显示全部楼层
好绕哦,无限循环,哈哈
发表于 2011-4-27 15:50:03 | 显示全部楼层
回复 1# pusofalse
细琢磨头疼!
发表于 2011-4-29 03:29:38 | 显示全部楼层
2字,晕。。
发表于 2011-4-29 22:45:45 | 显示全部楼层
1,2题两人都说的是假话.
第3题若A说的是真话则B一定说假话.若B说真话则A一定说假话.

P大的题很让人晕啊.还是坐等正确答案.
发表于 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的话一方为真,一方为假

评分

参与人数 1金钱 +15 收起 理由
pusofalse + 15

查看全部评分

发表于 2011-5-2 09:35:17 | 显示全部楼层
晕啊,呵呵
发表于 2011-5-3 00:01:01 | 显示全部楼层
看不懂在搞什么东东。
发表于 2011-5-3 14:53:59 | 显示全部楼层
蛋疼的表现
发表于 2011-5-3 17:20:03 | 显示全部楼层
很是有趣的对话~~~
继续观望~~~
发表于 2011-5-3 18:22:00 | 显示全部楼层
有些事就是真真假假假假真真!!
发表于 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金钱 +50 收起 理由
pusofalse + 50

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-3 00:32 , Processed in 0.078707 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表