#18287. 猜数游戏

猜数游戏

题目描述 1s 512MB

小明在和朋友们一起玩一个游戏,名叫“猜数游戏“。

游戏的内容很简单:kk个小朋友排成一排,裁判从1,...,n1,...,n中随机挑选一个数字xx

然后,小朋友们按照1,...,k,1,...,k,...1,...,k,1,...,k,...的顺序,依次猜数。

该这个小朋友的时候,这个小朋友可以猜一个数字yy,如果y=xy=x,则裁判会给这个小朋友脸上贴一张纸条,其他小朋友获胜,游戏结束。否则,裁判会告诉所有人,yy是比xx大,还是比xx小。

后面的每一个小朋友,都必须猜答案可能范围内的数字,不能乱猜

每个小朋友都不想输,所以他们决定以实时的最优策略去猜,以最大化自己获胜的概率,如果有多个决策可以让自己获胜概率最大化,他会尽量猜小的数字。

请算一下每个小朋友获胜的概率是多少。

输入格式

第一行输入T,kT,k,表示游戏的次数,以及小朋友的个数。

接下来TT行,每行一个数字nn,表示这次的xx是从1,...,n1,...,n中随机挑选的。

输出格式

对于每一次游戏,输出kk个实数在单独的一行,用空格隔开,保留66位小数。

4 2
2
3
5
199
0.500000 0.500000
0.666667 0.333333
0.400000 0.600000
0.502513 0.497487

样例解释 #1

对于n=2n=2不解释,n=3n=3,第一个人直接猜22,踩雷的概率是13\frac{1}{3},只要不踩雷,就必赢。

10 3
2
3
5
199
0.500000 0.500000 1.000000
0.666667 0.666667 0.666667
0.800000 0.600000 0.600000
0.673367 0.663317 0.663317

大样例

数据范围

对于30%的数据:k=2k=2

对于50%的数据:n1000,k10n\leq 1000,k\leq 10

对于70%的数据:n1000n\leq 1000

对于100%的数据:T20,n10000,k100T\leq 20,n\leq 10000,k\leq 100