重力加速度

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 0

题目描述

小罗乘着他秘密制造的宇宙飞船来到了另一个未知的星球探索。在下飞船之前,小罗需要确认这个星球的重力加速度。

但是飞船上的加速度仪在着陆的时候受到撞击卡住了。

于是他打算使用一个重锤与打点计时器$(50Hz)$来测量重力加速度。将重锤放在高处,穿入纸带,开启打点计时器,然后使重锤落下。

取纸带与直尺对齐,以与重锤相同的位置为零点,每5个点读数(单位$cm$)。

现在来利用逐差法求出重力加速度的估计值,单位为 $ m/s^{2} $。

如图所示。

输入

9个数据,为纸带的直接读数(图中的O、A、B、C……),精确到小数点后2位。

输出

重力加速度的估计值,保留2位小数

输入样例

0.00 1.00 3.00 6.00 10.00 15.00 21.00 28.00 36.00

输出样例

1.00

输出格式说明

保留2位小数: c++中保留小数需要使用iomanip头文件。像这样

#include<iomanip>

输出一个数的时候这样,

double a;

cin>>a;

cout<<fixed<<setprecision(2)<<a<<endl;

这样即对a这个double数字保留了小数点后两位小数。

hint

高中物理忘差不多的童鞋看这里:

首先用纸带的直接读数作差,算出每两个点之间的距离

$S_1,S_2, S_3,\dots, S_n$

然后代入方程

$S_j - S_i = (j-i) g_i t^2$

用后一半减前一半,

分别解出$g_1,g_2,\dots,g_{\lceil \frac{n}{2} \rceil}$,然后求平均值作为估计值

$$ g = \frac {\sum_{i = 0} ^ {\lceil \frac{n}{2} \rceil} g_i} {\lceil \frac{n}{2} \rceil}$$

相关推荐