Java练习: 数列/级数求和
来源:互联网 发布:交换机镜像端口抓包 编辑:程序博客网 时间:2024/06/06 17:34
返回 Java编程练习目录
级数通常指无穷级数,而有穷级数通常称为数列。数列/级数求和或求近似值是常见的循环编程练习。
下面将给出一些题目。
1.调和数
调和级数Harmonic numbers,H(n)= 1/1 + 1/2 + 1/3 + 1/4 + ... + 1/n。求调和级数前n项的和
/** * 调和级数Harmonic numbers, * H(n)= 1/1 + 1/2 + 1/3 + 1/4 + ... + 1/n */ public static double harmonic (int n) { double sum = 0.0; for (int i = 1; i <= n; i++) { sum += 1.0 / i; } return sum; }harmonic(10) =2.9289682539682538
harmonic(50000) =11.397003949278504
2.e的幂
ex= 1+ x/1! + x**2 / 2! + x**3 / 3!+...,求e(double x)。虽然可以求ex如e1、e0.5等,参数x我们这里不关心。我们关心的是循环结束的条件,比如计算精确到10-6。
public static double e(double x) { double sum = 0.0,xn=1,f=1,item =0;//近似值、x的幂、n! int itemIndex = 1; do{ xn *= x;// f *= itemIndex;// n! item = xn/f;pln(item); itemIndex++; sum += item; }while(item>1E-6); return sum; }
3.求Pi
pi/8 = 1/(1*3)+1/(5*7)+1/(9*11)+...,求pi/8的a到b项的和。为什么不是前n项的和?因为要和sum_integers求a到b项的代数和,sum_cubes求a到b项的立方数的代数和统一。
λ表达式作为实参。
/** * the sum of a sequence of terms in the series 1/(1*3)+1/(5*7)+1/(9*11)+... */ public static double item(int x){ return 1.0/(x*(x+2)); } public static double pi(int a,int b){ double sum=0; for(int i =a;i<=b;i+=4){ sum+=item(i); } return sum; }pln("pi="+8*pi(1,5000)) 输出
pi=3.14119265360579
请设计大统一的、通用函数。
0 0
- Java练习: 数列/级数求和
- Vijos P1127 级数求和【数列】
- JAVA学习初步 级数求和
- Java练习:Fibonacci级数
- Java 数列求和
- java数列求和
- 数列求和(java)
- 级数求和
- 级数求和
- 级数求和
- 级数求和
- 级数求和
- 级数求和
- 级数求和
- 级数求和
- 数列求和
- 数列求和
- 数列求和
- 中断及中断处理
- 0.ring0-更改dbgport地址偏移过掉dbgport清0
- leetcode 95. Unique Binary Search Trees II-分治算法|动态规划|卡特兰数
- 二维数组名与地址的对应
- Javascript笔记——Javascript的基本数据类型
- Java练习: 数列/级数求和
- UITableView 的操作
- android4.4系统源码编译(四)_问题总结
- hdu 1852(积性函数)
- int (*a)[10] 和 int *a[10]
- REST--深入浅出REST
- Android平台访问https 双向认证(下)
- U盘装系统进不去pe界面
- 对Handler,Looper,messagequeue,HandlerThread的深入理解,Handler常见面试题