SP8335 CNTTEAMS - Counting the teams

题目描述

在一所名为“反乌托邦政治及其他肮脏游戏学校”(DSPDG)的学校,老师正在指导学生进行小组合作活动。她认为,学生们需要在各种规模的小组中进行练习,才能真正理解群体行为。因此,她设计了如下分组方式: 班上有 $N$ 名学生,编号从 $1$ 到 $N$($2 \le N \le 10^5$)。这些学生最初站得很分散。首先,学生 $1$ 前去加入他的目标学生。接着,学生 $2$ 和已经与他在一起的所有学生,加入学生 $2$ 的目标。在第 $i$ 步中,学生 $i$ 和与他一起的所有学生前往加入学生 $i$ 的目标。如果学生 $i$ 的目标已经在他的小组中,将不采取行动。 借助这个过程,所有学生最终加入他们的目标后,班级被分成若干小组。例如,假设班级里有 $6$ 名学生,排列顺序为 $\{2,4,5,6,3,1\}$。首先,学生 $1$ 添加入学生 $2$ 的目标。然后,学生 $1$ 和 $2$ 加入学生 $4$ 的目标。接着,学生 $3$ 加入学生 $5$。随后,学生 $1$、$2$ 和 $4$ 加入学生 $6$。学生 $5$ 已经与学生 $3$ 组团,所以保持不动。类似地,学生 $6$ 也已与学生 $1$ 在一起,因此也不动。最终结果是形成两个小组:$\{1,2,4,6\}$ 和 $\{3,5\}$。 给定 $N$,计算在此分组策略下,将形成的小组数量的期望值。

输入格式

第一行输入一个整数 $T$($1 \le T \le 10^3$),表示测试用例的数量。接下来的 $T$ 行中,每行包含一个整数 $N$($2 \le N \le 10^5$),表示学生的数量。

输出格式

对于每个 $N$,输出形成小组数量的期望值,结果保留到小数点后六位。 **本翻译由 AI 自动生成**