Maxi发明了一种生成随机数列的方法。
假定给一个数组A,它包括1到n。Maxi为每个元素A[i]赋一个随机的优先级P[i],然后依据优先级对数组中的元素进行排序。例如,如果初始数组A=<1,2,3,4>且选择随机的优先级P=<36,3,97,19>,将得到数列B=<2,4,1,3>,因为第2个优先级最小,接着是第4个,然后是第1个,最后是第3个。
其中随机的优先级P是Maxi从1,2,3...n^3这n^3个整数中随机选取的n个数。为了使数组A的排列唯一,元素的优先级应该两两不等。
Maxi的疑问是,这n个随机的优先级两两不等的概率是多少。
- 输入
-
第一行一个整数T表示数据的组数(多组数据)。
每组只有一行,包括一个整数n(1≤n≤10000),表示优先级的个数。 - 输出
-
优先级两两不等的概率(小数形式),保留小数点后9位
- 样例输入
-
3 1 2 3
- 样例输出
-
1.000000000 0.875000000 0.891632373
又是一道数学题,求概率
#include <stdio.h> main() { int number,te; double n; double k; int i; double result; scanf("%d",&number); for(te=1;te<=number;te++) { result=1; scanf("%lf",&n); k=n*n*n; for(i=1;i<n;i++) result=result*(k-i)/k; printf("%.9lf\n",result); } }