Π
上学学的东西都还给老师了,都忘了Π是什么了,怎么长得有点像n呢,怎么回事...
Π百度百科
Π,希腊字母。数学中常指代圆周率。圆周率,一般以π来表示,是一个在数学及物理学普遍存在的数学常数。它定义为圆形之周长与直径之比。它也等于圆形之面积与半径平方之比。是精确计算圆周长、圆面积、球体积等几何形状的关键值。
我的理解:
许多物理和数学公式都会用到,圆的直径我们可以直接使用尺子测出来,圆的周长我们可以滚动圆片测量周长(将圆片放在尺子滚动一圈就测量出圆的周长),绕绳法测量圆的周长(将绳绕圆一周),测量出来的周长是直径的3被多一点(比如说直径为1厘米圆,圆的周长是3.1厘米),同时Π还是一个无限不循环小数(即无理数),那么什么是无理数呢
无理数百度百科
无理数,也称为无限不循环小数,不能写作两整数之比。若将它写成小数形式,小数点之后的数字有无限多个,并且不会循环。
我的理解:
比如我们常见的1/3,是一个有理数,无限循环小数0.333333333…,3.1/1(圆的周长除以直径)就是无理数,2019年3月14日,谷歌宣布圆周率现已到小数点后31.4万亿位。
写着写着感觉是在讲数学了...
根据阈值和关系式求圆周率
为什么会写到写这个,今天学c语言看见这题,我一下懵逼了
圆周率关系式
通过公式找规律写成代码
c
# include <stdio.h>
int main()
{
/**
根据关系式找规律,将公式变成程序
*/
//不难发现第一项和后面的不一样我们把第一项独立出来
//圆周率的值,即关系式的和,定义一个变量pi求和
double pi = 1;
//使用变量来表示分子、分母(当然我们也可以定义项来代替),第一项独立出来,分支分母初始值为1
double fz=1.0,fm=1.0;
//定义一个变量y,接收传入的阈值
double y;
scanf("输入阈值:%lf",&y);
//关系式的分子和分母是变化的,定义一个自增变量
double i = 1.0;
//结束条件:最后一项的值小于给定的阈值
while(fz/fm>=y){
//严格按照关系式写
//从第二项开始,分子求的是阶层
fz*=i; //1.0 1.0* 2.0 2.0*3.0
//分母1/3、1/5、1/7
fm*=2.0*i+1; //1/3 1/3*1/5 1/3*1/5*1/7
//求和
pi+=fz/fm;
//自增,改变变量的值(即分子、分母的值)
i++;
}
//打印 Π,输出格式要求保留小数点后6位,我们求的是Π,但是关系式上是Π/2,所以要乘2
printf("Π=>%.6lf",2*pi);
}
java
public static void main(String[] args) {
//不难发现第一项和后面的不一样我们把第一项独立出来
//求圆周率的值,在关系式中表现位求和,定义变量求和
double pi=1;
//使用变量来表示分子、分母(当然我们也可以定义项来代替),第一项独立出来,分支分母初始值为1
double fz = 1.0,fm=1.0;
//定义变量接收阈值,java中局部变量必须给初始值
double y=0;
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
y = new Double(line);
//关系式的分子和分母是变化的,定义一个自增变量
int i = 1;
//结束条件:最后一项的值小于给定的阈值
while(fz/fm>=y){
//严格按照关系式写
//从第二项开始,分子求的是阶层
fz*=i; //1.0 1.0* 2.0 2.0*3.0
//分母1/3、1/5、1/7
fm*=2.0*i+1; //1/3 1/3*1/5 1/3*1/5*1/7
//求和
pi+=fz/fm;
//自增,改变变量的值(即分子、分母的值)
i++;
}
//打印 Π,输出格式要求保留小数点后6位,我们求的是Π,但是关系式上是Π/2,所以要乘2
System.out.println("Π =>"+pi*2);
}