题号:NC318505
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
甲乙在玩一个游戏,这个游戏初始有

到

这

个数字。一局游戏中,游戏系统首先会随机在

到

中选择一个整数

交给甲,而乙不知道这个整数。然后甲乙进行操作。
每次操作为:
1. 甲先手删数,如果当前没被删除的最小正整数为

,则该局游戏结束,甲得

分,乙不得分,否则甲需要从当前最小正整数开始删至少一个数,至多删到最小正整数为

。
2. 乙后手,如果本次操作该局游戏还未结束,则乙可以选择结束该局游戏或什么都不做。如果选择结束该局游戏,令当前没被删除的最小正整数为

,则乙的得分为

,甲不得分。
操作将会一直重复直到该局游戏结束。
令甲该局游戏的得分为

,乙该局游戏的得分为

,则甲希望

尽可能大,而乙希望

尽可能大。甲乙足够聪明,一定会采取最优策略。
求

的期望,答案保留

位小数。
输入描述:
第一行一个整数
,表示数据组数。
接下来
行,每行一个整数
,意义如题所示。
保证单个测试点内所有数据中
的和不超过
。
输出描述:
对于每组数据,输出一行一个
位小数,表示答案。
示例1
输出
复制
-1.000000
0.000000
0.222222
0.291667
0.285794