type
Post
status
Published
date
May 13, 2020
slug
利用微分直角扇形计算PI的值
summary
利用微分直角扇形计算PI的值
tags
数学
category
java
icon
password
Property
Jul 11, 2022 12:50 PM

利用矩形直接计算

package com.company; import java.util.Scanner; /** * @author lyle * @date 2020/5/13 */ public class piConduct1 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入数字:"); //输入直角扇形被等分的份数 double n=scanner.nextDouble(); double[]x=new double[(int)n+1]; for (int i=0;i<x.length;i++){ x[i]=1/n; x[i]=x[i]*i; } //计算每一个x的值 double[]y=new double[(int)n+1]; for (int i=0;i<y.length;i++){ y[i]=Math.sqrt(1-x[i]*x[i]); } //计算每一个y的值 double sum=0; for (int i=1;i<x.length-1;i++){ sum=y[i]/n+sum; }//求出直角扇形的面积 double PI=4*sum; System.out.println(PI); } }

利用小三角形+矩形计算

package com.company; import java.util.Scanner; /** * @author lyle * @date 2020/5/13 */ public class piConduct2 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入数字:"); //输入直角扇形被等分的份数 double n=scanner.nextDouble(); double[]x=new double[(int)n+1]; for (int i=0;i<x.length;i++){ x[i]=1/n; x[i]=x[i]*i; } //计算每一个x的值 double[]y=new double[(int)n+1]; for (int i=0;i<y.length;i++){ y[i]=Math.sqrt(1-x[i]*x[i]); } //计算每一个y的值 double sum1=0; double sum2=0; for (int i=0;i<y.length-1;i++){ sum1=(y[i]-y[i+1])/n/2+sum1; } //计算每个小三角形的面积 for (int i=1;i<x.length-1;i++){ sum2=y[i]/n+sum2; } //计算每个矩形的面积 double PI=4*(sum1+sum2); //直接求出PI的值 System.out.println(PI); } }
春风十里用二维数组记录学生成绩并排序

  • Waline
  • Giscus