加入新的雕塑之后,很明显,坑的位置很固定,假设圈长为一的话每个坑都距离1/(n+m)所以呢原有的雕塑距离为1/n
这时候只需要保持一个位置不变,其余的都就近靠就可以了,这样一定是距离最近的算法
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
double ans = 0.0;
for(int i = 1; i < n ; i++)
{
double pos = (double)i / n * (n+m);//和图1-4内容完全一样
// cout<<pos<<endl;
ans += fabs(pos- floor(pos+0.5)) / (n+m);//找完最近然后/(n+m)意思是把长度为N+M的环弄成1的环
}
printf("%.4lf\n",ans*10000);
}
return 0;
}
原理的证明书上说的很清楚了我就不多做赘述了