在我的一本老书中的一个谜题中,定义了一个游戏,其中两个玩家选择掷硬币的顺序,他们认为当硬币被反复掷硬币时,硬币掷序列会首先出现。(实际上掷骰子是奇数,甚至是掷骰子,但是就问题对等而言,这个小细节并不重要。)
注意,如果玩家1选择,TTT
而玩家2选择HTT
,则该玩家2赢得游戏的机会为7/8,因为唯一的方法TTT
可能HTT
是前三局都是尾巴。
您的工作是创建一个程序或函数,以推断出两个选定序列之一首先出现的可能性。您的程序将接受两行输入(或两个字符串作为参数),每行代表长度为10或更短的序列:
HTT
TTT
并以小数或小数形式输出第一个玩家获胜的概率:
7/8
0.875
以任何语言执行此操作的最短代码都会胜出。
6
序列是否总是彼此相同的长度?
—
乌里·格兰塔
@UriZarfaty不,不一定。
—
Joe Z. 2015年
尽管大概顺序必须是不同的(因为输出不能指定平局)。
—
乌里·格兰塔
是的,顺序必须是不同的。
—
Joe Z.
更具体地说,一个不能是另一个的终端子串。
—
Joe Z. 2015年