python一球从100米高度自由落下,一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,......
首先一開始想到的就是用循環來計算的,所以就寫了以下代碼
#include
#include
#include
#define H 100
#define N 10
int main(void){
int i=1;
float weiyi,distance=0.0f;
while(i<=N){
if(i==1){
distance=H;
weiyi=H/2;}
else{
distance+=2*(H/pow(2,i-1));
weiyi+=(H-weiyi)/2;}
i++;
}
printf("經過路程:%f\n",distance);
printf("位移:%f\n",weiyi);
return 0;
}
然后覺得似乎可以精簡,于是用上高中學的數學歸納法總結一下規律得出一下表
第N次落地/第N次反彈 ? ? ? 1 ? ?????2 ? ? ? 3 ? ? ? ?????4 ? ? ? ? ????5 ? ? ? ? ?????????????公式
經過多少米?????????????????100 ?????200 ? ? 250 ? ?????275 ? ? ?287.5 ? ?????100*(3-1/(2^(N-2)))
反彈多高? ?????????????????????50 ? ????25 ? ? ?12.5 ? ? ??6.25 ? ?3.125 ? 100/(2^N)
#include
#include
#include
#define H 100
#define N 10
int main(void){
printf("經過路程:%f\n",H*(3-1.0/pow(2,N-2)));
printf("位移:%f\n",H-H/pow(2,N));
return 0;
}
貌似精簡多了~
總結
以上是生活随笔為你收集整理的python一球从100米高度自由落下,一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,......的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php如何检测图片背景是白色,javas
- 下一篇: winxp 安装apache php,W