三人三鬼过河游戏
- 格式:xls
- 大小:415.00 KB
- 文档页数:2
游戏策略本视频学习起来比较轻松,主要通过玩几个游戏,1、农夫、狼、羊、菜过河,2、牧羊人过河,3、倒水游戏,让我们知道这几个如何操作才能够取胜。
当然这些游戏都是可以在网上找到的,我们也可以自己试着玩一下,看你是不是会玩。
后边的几个例题也会教我们如何玩这些游戏,当然也还有其他操作类型的问题,包括称金币辨真假问题、遗产分牛问题和烧绳计时问题等,通过学习这些问题的解决办法,锻炼我们的思维,让我们思维更加的开阔。
农夫、狼、羊、菜过河游戏假设有一个池塘,里面有无穷多的水。
现有2个空水壶,容积分别为A升和B升(A < B)。
问题是如何只用这2个水壶从池塘里取得 X 升的水?1.1.据说有人给酒肆的老板娘出了一个难题:此人明明知道店里只有两个舀酒的勺子,分别能舀7两和11两酒,却硬要老板娘卖给他2两酒。
聪明的老板娘毫不含糊,用这两个勺子在酒缸里舀酒,并倒来倒去,居然量出了2两酒,聪明的你能做到吗?(回答能或者不能)2.2.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?(回答能或者不能)3.3.假设有一个池塘,里面有无穷多的水。
现有2个空水壶,容积分别为5升和6升。
问题是如何只用这2个水壶从池塘里取得3升的水。
(回答能或者不能)有一个装满葡萄酒的8升罐子,另有一个3升,一个5升的空罐子,问怎么倒可以把葡萄酒分成两个4升的?1.1.两位妇人分别拿着4斤的奶瓶和5斤的奶瓶去奶店各买2斤奶,适逢店的称坏了,这时店里只有两大满奶桶和一些不均匀的空桶(空桶能装奶的重量大于5斤,但是不知道具体能装多少),但聪明的店老板却成功地凭借现有的条件满足了两位妇人的要求。
她是如何做的?(回答能或者不能)2.2.现在有两个空壶,容积分别为65升和78升,能够用这两个空壶到池塘取得38升水吗?能够取得39升水吗?(回答“38”、“39”、“38和39”或者不能)3.3.现在有三个壶,容积分别为6升,10升和45升,能够用这三个空壶到池塘取得31升水吗?(回答能或者不能)对于任意一个自然数 n,当 n为奇数时,加上121;当n为偶数时,除以2;这算一次操作。
⼆年级组合数学趣味题带答案⼀、空瓶⼦换饮料1、促销活动规定:3个空雪碧瓶⼦,可以换1瓶雪碧.如果买3瓶雪碧,那么,最多可以喝到__________瓶雪碧.(组合数学-空瓶⼦换饮料)A. 1B. 3C. 42、商店促销活动,⽤4个空瓶可以换1瓶⽔.⽼师和⼀些⼩朋友进店后,共买了7瓶⽔.如果每⼈喝1瓶⽔,那么最多有⼏⼈能喝到⽔?(组合数学-空瓶⼦换饮料)A.7B.8C.9D.103、师⽣共7⼈外出春游.到达后,⽼师要给每⼈买⼀瓶矿泉⽔.到商店后,他发现商店正在进⾏促销活动,规定每3个空瓶可换1瓶矿泉⽔.那么,⽼师最少买多少瓶矿泉⽔,就可以保证每⼈喝到⼀瓶?(组合数学-空瓶⼦换饮料)A. 5B. 6C.74、促销活动规定:5个空可乐瓶⼦,可以换1瓶可乐.如果买5瓶可乐,那么,最多可以喝到__________瓶可乐.(组合数学-空瓶⼦换饮料)A. 1B. 5C. 6⼆、过河问题1、有6个⼈要过河到对岸(从⼀个岸边到另⼀个岸边算渡河1次).现在只有1条⼩船,1个船夫,并且船上最多能容纳3个⼈.那么⾄少要渡河⼏次,6个⼈才能全部渡到对岸?(组合数学--过河问题)A. 2B. 3C. 52、有8个⼈要过河到对岸(从⼀个岸边到另⼀个岸边算渡河1次).现在只有1条⼩船,并且最多能容纳3个⼈.那么⾄少要渡河⼏次,8个⼈才能全部渡到对岸?(组合数学--过河问题)A. 4B. 5C.73、果果、⾁⾁和⾖⾖,三⼈体重分别为40⽄、50⽄、90⽄.三⼈要乘船到对岸(从⼀个岸边到另⼀个岸边算渡河1次).现在只有1条⼩船,并且最多能承受100⽄.那么⾄少要渡河⼏次,三个⼈才能全部到达对岸?(组合数学--过河问题)A. 2B. 3C. 54、有10个⼈要过河到对岸(从⼀个岸边到另⼀个岸边算渡河1次).现在只有1条⼩船,1个船夫,并且船上最多能容纳5个⼈.那么⾄少要渡河⼏次,10个⼈才能全部渡到对岸?(组合数学--过河问题)A. 5B. 3C. 2三、奇偶性的应⽤1、⼩马乐乐在草坪和花园之间来回奔跑.如果乐乐最初在草坪上,它第1次从草坪上跑到了花园⾥,第2次⼜从花园⾥跑到了草坪上……乐乐这样跑了9次之后,它跑到了草坪上,还是跑到了花园⾥?(组合数学--奇偶性的应⽤)A.草坪上B.花园⾥2、游乐园⾥有三个座位,⽜⽜开始坐在②号座位上,想了想就换到相邻的座位,想想⼜换到相邻的座位……那么⽜⽜换到第6次停下休息的时候,它坐在⼏号座位?(组合数学--奇偶性的应⽤)A.①B.②C.③3、元元在熊猫乐园⾥玩,但只能沿着⿊⾊的线跑来跑去.若规定元元从⼀种颜⾊乐园跑到另⼀种颜⾊乐园叫跑⼀次,如果元元最初在紫⾊乐园,跑12次后,他最后跑到了哪种颜⾊乐园?(组合数学--奇偶性的应⽤)A.黄⾊乐园B.蓝⾊乐园C.紫⾊乐园D.绿⾊乐园3、4、⼩天鹅美美在⼀条⼩河的两岸之间来回的游.若规定美美从⼀岸游到另⼀岸叫渡河1次,如果美美最初在右岸,渡河8次后,美美游到了左岸,还是游到了右岸?(组合数学--奇偶性的应⽤)A.左岸B.右岸四、奇偶性的袜⼦⼤法1、24+39的结果是奇数,还是偶数?(组合数学--奇偶性的袜⼦⼤法)A.奇数B.偶数2、16-7的结果是奇数,还是偶数?(组合数学--奇偶性的袜⼦⼤法)A.奇数B.偶数3、4735-2457的结果是奇数,还是偶数?(组合数学--奇偶性的袜⼦⼤法)A.奇数B.偶数4、31+39的结果是奇数,还是偶数?(组合数学--奇偶性的袜⼦⼤法)A.奇数B.偶数五、奇偶性的捣蛋⿁⼤法1、8+7-6-5+4+3-2-1的结果是奇数,还是偶数?(组合数学--奇偶性的捣蛋⿁⼤法)A.奇数B.偶数2、凡凡第1天把4块糖放进盒⼦⾥,第2天从盒⼦⾥拿出2块糖,第3天⼜把4块糖放进盒⼦⾥,第4天⼜从盒⼦⾥拿出2块糖……过了⼏天后,盒⼦⾥会不会有21块糖?(组合数学--奇偶性的捣蛋⿁⼤法)A.会B.不会3、⼩⼭后的梨树结了50个梨.⽊⽊每天摘2个梨吃,过了若⼲天后,树上可能只剩1个梨吗?(组合数学--奇偶性的捣蛋⿁⼤法)A.可能B.不可能4、9-8+7-6+5-4+3-2+1的结果是奇数,还是偶数?(组合数学--奇偶性的捣蛋⿁⼤法)A.奇数B.偶数六、画图推理1、跑步⽐赛的时候,⼩燕⼦、蒙蒙和⼤雁取得了前3名.其中⼩燕⼦在第2名,蒙蒙在第3名.根据条件,将⼩燕⼦、⼤雁和蒙蒙放到合适的位置.下列选项中,哪个是正确的呢?(组合数学--画图推理)A.B.C.D.2、⼩燕⼦、⼤雁、蒙蒙、⽂⽂四个⼩朋友排成⼀队去游玩.⼩燕⼦排第⼆,⼤雁说:“我紧跟在蒙蒙的后⾯.”⼤雁排第⼏呢?(组合数学--画图推理)A.B.第⼆C.第三D.第四3、饭饭、旦旦、乐乐三个⼩朋友谈论谁的个⼦⾼.饭饭说:“旦旦⽐乐乐⾼.”旦旦说:“饭饭⽐乐乐⾼.”乐乐说:“饭饭⽐旦旦矮.”三个⼩朋友中,谁的个⼦最⾼呢?(组合数学--画图推理)A.饭饭B.旦旦C.乐乐4、跑步⽐赛的时候,⼩燕⼦、蒙蒙和⼤雁取得了前3名.其中⼩燕⼦在第2名,蒙蒙在第3名.根据条件,将⼩燕⼦、⼤雁和蒙蒙放到合适的位置.下列选项中,哪个是正确的呢?(组合数学--画图推理)A.B.C.D.七、有关时间的认识1、以下哪个⽇期是不可能出现的?(组合数学--有关时间的认识)A.6⽉30⽇B.5⽉31⽇C.3⽉31⽇D.2⽉30⽇2、2013年1⽉1⽇是星期⼆,这个⽉有⼏个星期⽇呢?(组合数学--有关时间的认识)A. 3B. 4C. 53、2012年伦敦奥运会是闰年,那么,2014年是闰年吗?(组合数学--有关时间的认识)A.是B.不是4、以下哪个⽇期是不可能出现的?(组合数学--有关时间的认识)A.5⽉31⽇B.4⽉31⽇C.2⽉29⽇D.8⽉31⽇⼋、公元年的认识1、如下图,是公元年的时间轴,那么,公元前5年的时间点,可能在A点,还是在B点?(组合数学--公元年的认识)A.A点B.B点2、公元123年,乐乐8岁了,乐乐出⽣在哪年?(组合数学--公元年的认识)A.公元前131年B.公元131年C.公元前115年D.公元115年3、公元前5年,发⽣了地震.2年后是哪年呢?(组合数学--公元年的认识)A.公元前7年B.公元7年C.公元3年D.公元前3年4、如下图,是公元年的时间轴,那么,公元15年的时间点,可能在A点,还是在B点?(组合数学--公元年的认识)A.A点B.B点九、列表推理1、⽂⽂、星星和旦旦住在三层⼩楼⾥,每⼈单独住⼀层,⽂⽂住在下层,旦旦不住在中层.那么,旦旦住在哪层呢?(组合数学--列表推理)A.上层B.中层C.下层2、李阿姨、张阿姨、赵阿姨三⼈中,⼀位是演员,⼀位是⼯程师,⼀位是教师.已知:(1)李阿姨⽐教师体重重;(2)赵阿姨和教师体重不同;(3)李阿姨和演员是朋友.那么,赵阿姨的职业是什么呢?(组合数学--列表推理)A.⼯程师B.教师C.演员3、有三户⼈家,每户有⼀个⼩孩.他们的名字是:旦旦(⼥)、⽂⽂(⼥)、亮亮(男),孩⼦的爸爸是⽼杨、⽼曹和⽼陈.现在知道:(1)⽼杨家的孩⼦参加了少年⼥⼦体操队;(2)⽼曹的⼥⼉不是旦旦.那么,亮亮是谁家的孩⼦?(组合数学--列表推理)A.⽼杨B.⽼陈C.⽼曹4、饭饭、⼩燕⼦和⼤雁在⼀座三层⼩楼⾥住着,每⼈单独住⼀层,饭饭住在下层,⼤雁不住在中层.那么,⼤雁住在哪层呢?(组合数学--列表推理)A.上层B.中层C.下层⼗、共⽤⽕柴棒1、⽤4根⽕柴棒能摆⼀个正⽅形.如果要摆出三个这么⼤的正⽅形,最少还需要增加⼏根⽕柴棒?(组合数学--共⽤⽕柴棒)A. 4B.8C.10D. 62、⽤4根⽕柴棒能摆⼀个正⽅形.如果要摆出四个这么⼤的正⽅形,最少还需要增加⼏根⽕柴棒?(组合数学--共⽤⽕柴棒)A.8B.9C.12D.163、最少拿掉⼏根⽕柴棒,可以使下图正好构成三个正⽅形?(组合数学--共⽤⽕柴棒)B. 3C. 2D. 14、⽤4根⽕柴棒能摆⼀个正⽅形.如果要摆出两个这么⼤的正⽅形,最少还需要增加⼏根⽕柴棒?(组合数学--共⽤⽕柴棒)A. 2B. 3C. 4D. 5⼗⼀、别闲着1、⾖⾖看电视需要35分钟,吃花⽣需要30分钟,做完这两件事最少需要⼏分钟?(组合数学--别闲着)A.30B.65C.352、⾖⾖起床后做事.刷⽛洗脸需要6分钟,烤⾯包需要10分钟,吃⾯包需要4分钟.那么,⾖⾖最少⽤⼏分钟才能做完所有事情?(组合数学--别闲着)A.20B.10C.143、⼩熊⽤⼀个平底锅煎饼,每次能同时放两块饼,煎⼀块饼需要4分钟(正、反⾯各需2分钟).⼩熊煎完2块饼⾄少需要⼏分钟?(组合数学--别闲着)A. 4B. 6C.84、乐乐洗碗需要20分钟,听⾳乐需要16分钟,做完这两件事最少需要⼏分钟?(组合数学--别闲着)A.16B.20C.36⼗⼆、⽊板问题1、给⼀块⼩⽊板的两⾯刷漆,刷⼀⾯漆需要1分钟,但必须等到2分钟漆⼲后才能给另⼀⾯刷漆.那么刷完1块这样的⼩⽊板最少需要⼏分钟?(组合数学--⽊板问题)A. 2B. 42、给⼀块⼩⽊板的两⾯刷漆,刷⼀⾯漆需要1分钟,但必须等到3分钟漆⼲后才能给另⼀⾯刷漆.那么刷完5块这样的⼩⽊板最少需要⼏分钟?(组合数学--⽊板问题)A.25B. 5C.103、给⼀块⼩⽊板的两⾯刷漆,刷⼀⾯漆需要1分钟,但必须等到4分钟漆⼲后才能给另⼀⾯刷漆.那么刷完3块这样的⼩⽊板最少需要⼏分钟?(组合数学--⽊板问题)A. 6B.8C.184、给⼀块⼩⽊板的两⾯刷漆,刷⼀⾯漆需要1分钟,但必须等到5分钟漆⼲后才能给另⼀⾯刷漆.那么刷完1块这样的⼩⽊板最少需要⼏分钟?(组合数学--⽊板问题)A.7B.12C. 2⼗三、节省等候时间1、⾖⾖和乐乐排队去取餐.⾖⾖取餐需要3分钟,乐乐取餐需要2分钟.如果⾖⾖先付款,那么乐乐的等候时间是⼏分钟?(组合数学--节省等候时间)A. 5B. 3C. 2D.82、⾖⾖和乐乐排队去取餐.⾖⾖取餐需要1分钟,乐乐取餐需要2分钟.那谁先付款,另⼀个⼈的等候时间⽐较短?(组合数学--节省等候时间)A.⾖⾖B.乐乐3、⾖⾖和乐乐排队去取餐.⾖⾖取餐需要3分钟,乐乐取餐需要10分钟.如果要使俩⼈所花的时间总和最短,那最短时间是⼏分钟?(组合数学--节省等候时间)A.13B.16C.234、⾖⾖和乐乐排队去取餐.⾖⾖取餐需要5分钟,乐乐取餐需要2分钟.如果⾖⾖先取餐,那么乐乐的等候时间是⼏分钟?(组合数学--节省等候时间)A.12B. 5C.7D. 2⼗四、扫雷游戏规则1、这是⼀张地雷分布图,其中A的周围是哪⼏格?(组合数学--扫雷游戏规则)A.B、C、H、G、KB.B、C、D、E、FC.B、C、D、E、F、G、H、KD.B、H、G2、这是⼀张地雷分布图,其中既在A的周围,⼜在D的周围的是哪⼏格?(组合数学--扫雷游戏规则)A.B、KB.B、C、E、FC.E、F、PD.B、E、H3、这是⼀张地雷分布图,☆代表的数是⼏?(组合数学--扫雷游戏规则)A. 1B. 2C. 3D. 44、这是⼀张地雷分布图,其中A的周围是哪⼏格?(组合数学--扫雷游戏规则)A. BB.B、FC.E、FD.B、E、F。
翻三皮的规则
哎呀呀,咱来说说翻三皮的规则哈!
翻三皮呢,就像是一场刺激的冒险!比如说,你手里有三张牌,就跟你拥有了三把打开神秘之门的钥匙一样!
这游戏是这么玩的,每个人轮流翻牌,比大小呗。
你看,这多简单直接呀,可别小瞧了,这里头学问大着呢!就好比跑步比赛,你得快速反应、精准判断呢!比如说别人翻了个大牌,你咋办?那你就得想好策略呀。
要是你翻到了特别大的牌,哇塞,那感觉就像中了彩票一样兴奋!但要是翻了个小牌,哎呀,那也别气馁呀,说不定下一把就转运啦!这不就跟人生一样嘛,有起有落。
总之啊,翻三皮超级有趣,能让你玩得不亦乐乎!不用想那么多,直接加入就对啦!。
会议营销互动游戏大全一、吸啤酒游戏:游戏道具:啤酒数瓶每位游戏者配备吸管二条,透明胶一卷游戏规则:各位选手齐站于台前,主持人一些令下即可开始吸啤酒但是必须是用透明胶将二条吸管连接起来,谁在最短的时间内连接好吸管且最快将啤酒吸完的获胜。
二、杀人参加人数:8人以上为佳方式:围坐一圈步骤:1,按人数准备若干纸团,"裁判"一个、“杀手”两个,剩下的纸团是都写上“好人”,抽签,除了“裁判”,其他人都不能公开。
2,夜幕降临,大家沉沉入睡(在“裁判”的指挥下,大家闭上眼睛)。
月黑风高下是杀人时(抽到的“坏人”睁开眼睛,互相悄悄使眼色做手势,决定哪一天个“好人”,裁判看在眼里)。
3、天光大亮,众人从昏睡中醒来(裁判让大家睁开眼睛,告之某人被杀的噩耗)。
4、烈士发表临终遗言(被杀的好人伤感觉判断谁是“杀人凶手”)。
众人表决(大家依次发表意见,凭对每个人的神情举止的推理判断,互相指证,判断谁最有可能是“凶手”)。
5、对凶手绳之以法(大家投票决定谁是凶手,该“凶手”出示他抽到的纸团,有可能错杀)。
6、不管错杀与否,凶手出局,游戏继续进行。
短的一两轮就可以把杀手就地正法,长的要好几轮,经至于最后只剩一个好人、一个坏人、一个裁判。
补充说明:杀人游戏锻炼“好人”的推理能力,也锻炼“坏人”的表演才能。
最初玩时,“坏人”通常会表现得不自然,但多玩几次后,局面会越来越扑朔迷离,游戏也就越来越有意思了。
三、猜数字规则:猜数字(1~100)每猜一次范围缩小,最后猜中的人倒霉挨罚先由一个人来写一个数字,然后大家在1~100间进行猜测。
每猜一次范围缩小,最后猜中的人进行抽签接受这份大奖。
下一轮由受罚者再写数字,依此循环。
道具:准备三个签,1、满汉全席。
那么每个人都为其夹一份食物,必须吃完。
这叫撑死他。
2、替罪羊。
这个可真是中头彩。
你再次进行抽签,那是有每个人名字的签,抽到谁,那么你报复的机会就到了。
在房间内你可以让他做一件事情。
7鬼523(七鬼五二三)七鬼五二三是全国都流行的一款抢分(跑的快)扑克牌游戏,逻辑简单易于上手,老少咸宜,希望游戏七鬼五二三规则这篇文章能给你提供帮助。
七鬼五二三是全国都流行的一款抢分(跑的快)扑克牌游戏,逻辑简单易于上手,老少咸宜,乃居家旅游必备游戏。
【基本规则】:游戏人数最少2人,最多5人可以开始游戏。
第一轮抓到牌最小的玩家第一个出牌,可以出包含最小牌的任意牌型。
游戏无盟友,各自为战,当牌堆里面所有牌都出完,游戏就结束。
游戏牌数一副牌,共54张。
【牌型】:单张:单个牌(如一张红桃7)对牌:数值相同的两张牌(如一张梅花5+一张方块5)三条:单独三张点数一样的牌,不带牌。
三带一对:数值相同的三张牌,带两张一样的。
但如果别的三张要大过它的话必须也带两张一样的,带的牌不参与比大小。
四条:四张点数一样的牌。
四带一:带的牌不参与比大小。
【牌型的比较】:同类型的牌才比较大小,不同类型的牌不参与比较。
单牌按数值比大小,依次是7>大王>小王>5>2>3>A>K>Q>J>10>9>8>6>4,同等点数的牌,黑桃>红桃>梅花>方块。
对牌如果点数一样,则带黑桃的一方大。
【游戏流程】:发牌和出牌流程:发牌所有玩家都点开始后,游戏开始随机发牌(依顺序发牌)出牌,由手上最小的牌的人先出,可以出包含最小牌的任意牌型,出完一轮后补够5张,谓一轮,指出尽手中的牌或者除出牌者外其余人都pass,手中无牌必须pass。
出牌出牌规则有2种,一种玩家会在本轮结束的时候会收入所有分数(下称规则一)一种不会(下称规则二)按逆时针顺序依次出牌,轮到玩家跟牌时,玩家可以选择“不出”或出比上一个玩家大的牌。
规则一:当其他人都选择“不出”规则二:当其他人都选择“不出”在一轮的出牌中,牌最大的人开始下一轮的出牌。
【游戏结束和胜负判断】:游戏结束判断:规则一:在所有的牌都发完,并且任意一家出完牌后结束游戏,如果玩家手里还剩余牌,作废处理。
实验传教士野人过河问题37030602 王世婷一、实验问题传教士和食人者问题(The Missionaries and Cannibals Problem)。
在河的左岸有3个传教士、1条船和3个食人者,传教士们想用这条船将所有的成员运过河去,但是受到以下条件的限制:(1)传教士和食人者都会划船,但船一次最多只能装运两个;(2)在任何岸边食人者数目都不得超过传教士,否则传教士就会遭遇危险:被食人者攻击甚至被吃掉。
此外,假定食人者会服从任何一种过河安排,试规划出一个确保全部成员安全过河的计划。
二、解答步骤(1) 设置状态变量并确定值域M为传教士人数,C 为野人人数,B为船数,要求M>=C且M+C <= 3,L表示左岸,R表示右岸。
初始状态目标状态L R L RM 3 0 M 0 3C 3 0 C 03B 1 0 B 01(2) 确定状态组,分别列出初始状态集和目标状态集用三元组来表示:(ML , CL , BL)(均为左岸状态)其中,BL ∈{ 0 , 1}:(3 , 3 , 1): (0 , 0 , 0)初始状态表示全部成员在河的的左岸;目标状态表示全部成员从河的左岸全部渡河完毕。
(3) 定义并确定规则集合仍然以河的左岸为基点来考虑,把船从左岸划向右岸定义为Pij操作。
其中,第一下标i表示船载的传教士数,第二下标j表示船载的食人者数;同理,从右岸将船划回左岸称之为Qij操作,下标的定义同前。
则共有10种操作,操作集为F={P01,P10,P11,P02,P20,Q01,Q10,Q11,Q02,Q20}P10 if ( ML ,CL , BL=1 ) then ( ML–1 , CL , BL –1 )P01 if ( ML ,CL , BL=1 ) then ( ML , CL–1 , BL –1 )P11 if ( ML ,CL , BL=1 ) then ( ML–1 , CL–1 , BL –1 ) P20 if ( ML ,CL , BL=1 ) then ( ML–2 , CL , BL –1 )P02 if ( ML ,CL , BL=1 ) then ( ML , CL–2 , BL –1 )Q10 if ( ML ,CL , BL=0 ) then ( ML+1 , CL , BL+1 )Q01 if ( ML ,CL , BL=0 ) then ( ML , CL+1 , BL +1 )Q11 if ( ML ,CL , BL=0 ) then ( ML+1 , CL +1, BL +1 )Q20 if ( ML ,CL , BL=0 ) then ( ML+2 , CL +2, BL +1 )Q02 if ( ML ,CL , BL=0 ) then ( ML , CL +2, BL +1 ) (4) 当状态数量不是很大时,画出合理的状态空间图图1 状态空间图箭头旁边所标的数字表示了P或Q操作的下标,即分别表示船载的传教士数和食人者数。
传教士和野人渡河问题刘宪国050422023野人过河问题描述如下:有三个传教士和三个野人过河,只有一条能装下两个人的船,在河的任何一方或者船上,如果野人的人数大于传教士的人数,那么传教士就会有危险.一、算法分析先来看看问题的初始状态和目标状态,假设分为甲岸和乙岸:初始状态:甲岸,3野人,3传教士;乙岸,0野人,0传教士;船停在甲岸,船上有0个人;目标状态:甲岸,0野人,0传教士;乙岸,3野人,3传教士;船停在乙岸,船上有0个人;整个问题就抽象成了怎样从初始状态经中间的一系列状态达到目标状态。
问题状态的改变是通过划船渡河来引发的,所以合理的渡河操作就成了通常所说的算符,根据题目要求,可以得出以下5个算符(按照渡船方向的不同,也可以理解为10个算符):渡1野人、渡1传教士、渡1野人1传教士、渡2野人、渡2传教士。
算符知道以后,剩下的核心问题就是搜索方法了,本文采用深度优先搜索,通过一个FindNext(…)函数找出下一步可以进行的渡河操作中的最优操作,如果没有找到则返回其父节点,看看是否有其它兄弟节点可以扩展,然后用Process(…)函数递规调用FindNext(…),一级一级的向后扩展。
搜索中采用的一些规则如下:1、渡船优先规则:甲岸一次运走的人越多越好(即甲岸运多人优先),同时野人优先运走;乙岸一次运走的人越少越好(即乙岸运少人优先),同时传教士优先运走;2、不能重复上次渡船操作(通过链表中前一操作比较),避免进入死循环;3、任何时候河两边的野人和传教士数均分别大于等于0且小于等于3;4、由于只是找出最优解,所以当找到某一算符(当前最优先的)满足操作条件后,不再搜索其兄弟节点,而是直接载入链表。
5、若扩展某节点a的时候,没有找到合适的子节点,则从链表中返回节点a的父节点b,从上次已经选择了的算符之后的算符中找最优先的算符继续扩展b。
二、基本数据结构定义如下几个数据结构:typedef struct _riverside{ // 岸边状态类型int wildMan; // 野人数int churchMan; // 传教士数}RIVERSIDE;typedef struct _boat{ // 船的状态类型int wildMan; // 野人数int churchMan; // 传教士数}BOAT;typedef struct _question{ // 整个问题状态RIVERSIDE riverSide1; // 甲岸RIVERSIDE riverSide2; // 乙岸int side; // 船的位置, 甲岸为-1, 乙岸为1 BOAT boat; // 船的状态_question* pPrev; // 指向前一渡船操作_question* pNext; // 指向后一渡船操作}QUESTION;用QUESTION来声明一个最基本的链表。