标签:java 球从100米高度自由落下
/**
* 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
* 时间:2015年7月28日15:34:18
* 文件:Lianxi10.java
* 作者:cutter_point
*/
package bishi.zuixin50.t2015728;
public class Lianxi10
{
//这个是一个等比数列
public static double getAn(double begin, double n)
{
//求第n次落地的时候反弹的高度,也就是第11次的高度
//类似等比数列a:n = a:1 / pow(2, n-1)
double pow = Math.pow(2.0, n);
return begin / pow;
}
//计算进过的距离
/**
* 等比数列求和
* @param begin 球开始落下的地方
* @param q 我们比值
* @param n 几个数
* @return
*/
public static double getLength(double begin, double q, double n)
{
//我们的公式是S:n = (a:1 * ( 1 - q(n次方))) / (1 - q)
//这里得公式是S:n = 0.5 * S:n-1 + 150==》S:n = -((100)/pow(2, n-2)) + 300
//这个歌sn是:100(3*n + 1/(2:(n-2)) - 4)
double length = begin * (3 - Math.pow(q, n - 2));
return length;
}
public static void main(String[] args)
{
System.out.println("第10次反弹的高度是:" + getAn(100, 10));
System.out.println("走过的距离是:" + getLength(100, 0.5, 10));
double h = 100,s = 100;
for(int i = 1; i < 10; ++i)
{
s += h;
h /= 2;
}
System.out.println("经过路程:" + s);
System.out.println("反弹高度:" + h / 2);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:java 球从100米高度自由落下
原文地址:http://blog.csdn.net/cutter_point/article/details/47379821