-->
当前位置:首页 > 题库 > 正文内容

编程题:7005 弹球游戏

Luz3年前 (2022-04-21)题库556
这道题目是受日本流行的弹球游戏Pachinko的启发。传统的弹球机器混合了垂直的弹球台和老虎机的特点,玩家从机器顶部放进去一个钢球,钢球在降落时会通过机器内的迷宫而到达底部,最终钢球要不是从孔里出局,要不就会通过标志不同奖励额度的门卡,玩家就会获得相应的球,玩家收集越多的球,就可以交换到越多的现金奖励。
本题采用的是线性弹球机,它由一个或多个以下字符构成的序列:孔(“.”)、地板(“”)、墙壁(“|”)、山峰(“/\”)。在游戏中,一个墙壁或山峰永远不会与另一个墙壁或山峰相邻。游戏的玩法是:在机器的上方把球扔到游戏机中,该球将会随机通过这些字符。如果弹球通过孔,它将穿过机器;如果弹球落到地板上则停下来;如果弹球落到山峰的左边,则弹球反弹,通过所有连续的地板直到掉到孔里去或者出了机器的边界,或者撞到墙壁或山峰则停下来;如果弹球落到山峰的右边,结果类似;如果弹球抛到墙壁的上方,则分别以50%的概率做类似落到山峰左、右边的处理。
本题要求解的是,如果弹球随机的从机器上方抛下(随机的意思就是从每个字符位置上方垂直抛下的机会均等),那么弹球最终能通过孔和出边界的几率是多少?
例如,考虑如图所示的机器,其中的数字表明字符的位置,并不是机器的一部分。




当在字符上方抛下弹球时,弹球通过孔或出界的几率分别为:1=100%,2=100%,3=100%,4=50%,5=0%,6=0%,7=0%,8=100%,9=100%。因此最终对整个机器,在机器上方随机抛下弹球,弹球通过孔和出边界的几率为以上几率的平均值,即为61.111%。

### 输入格式:

输入文件包含多组测试数据,每个测试数据表示一个弹球游戏,包含1~79个字符,占一行。最后一行为字符“#”,表示输入结束。

### 输出格式:

对每个弹球游戏,要求精确地计算随机抛下弹球后,弹球出局(通过孔或出边界)的几率并输出。每个弹球游戏的输出占一行,对求得的几率(百分比)精确到整数(舍弃小数部分)。

### 输入样例:

in
/\.|__/\.
_._/\_|.__/\./\_
...
___
./\.
_/\_
_|.|_|.|_|.|_
____|_____
#


### 输出样例:

out
61
53
100
0
100
50
53
10







答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。