最近AI、区块链异常火爆,简单了解一下,发现需要了解不少数学知识。本身数学也是自己的一个短板,把基本数据知识捡一捡。
积分求解圆的面积
将圆垂直切分成N条线段,每条线段的宽度是2 * radius / N,长度是在(0, 2 * radius]之间。不断扩大N的值,汇总N条线段的总面积,就可以近似取得圆的面积。
public class CircleArea {
public static void main(String[] args) {
// 圆的半径
int radius = 1;
// 分割的线段条数(越大π值越精确)
int N = 20;
for (int i = 1; i < 100000000; i *= 10) {
double area = getArea(radius, N * i);
System.out.println("N=" + N * i + ", area=" + area);
}
}
/**
* 获取第N条线段的长度
*
* @param radius
* @param N
* @param width
* @param n
* @return
*/
public static double getLength(int radius, int N, double width, int n) {
// 线段长度 (勾股定理)