标签:数论
题目
Description
Picks参加了高考。在高考体检中,学校领导为了统计学生的身高情况,在校园中随机抽取了学生进行抽样调查。由于学校的人很多,你可以认为学生的身高在一个区间I内均匀随机分布。由于单位制的不同,你可以认为区间I的宽度可以是R+上的任意实数。学校领导在整个学校中随机抽取了N个人来统计数据,并公布了这些人的身高极差X。对此,学校希望得到全校学生的身高极差,即区间I的宽度,但是学校老师的数学知识不过关,所以他 们找到了聪明的你。 一句话:已知在实数区间(0,L]中随机选取N个数,且这N个数的最大值与最小值之差恰为X。求L的期望。
Input
一行两个数N,X。其中N为整数,X为实数。
Output
输出一行一个实数,表示L的期望。若L的期望趋于无穷大,请输出-1。 当你的答案与标准答案的绝对误差不超过10^-7时,视为你的答案是正确的。
Sample Input
2 1
Sample Output
-1
HINT
\[2<=N<=10^5,1<x<=10^5\]分析
直接搬上题解吧,太菜了看不懂不理解qwq
code
短小精悍并无什么意义的代码。。。
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
#define mem(x,num) memset(x,num,sizeof x)
#define reg(x) for(int i=last[x];i;i=e[i].next)
using namespace std;
inline ll read(){
ll f=1,x=0;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
//**********head by yjjr**********
int main()
{
int n=read();double x;cin>>x;
if(n<=3)puts("-1");else printf("%.10lf\n",(n-1)*x/(n-3));
return 0;
}