「java近似数」java约数

博主:adminadmin 2023-03-18 15:03:10 411

本篇文章给大家谈谈java近似数,以及java约数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中怎么取近似值

public static void main(String[] args) {

BigDecimal d = new BigDecimal(100000); //存款

BigDecimal r = new BigDecimal(0.001875*3); //利息

BigDecimal i = d.multiply(r).setScale(2,RoundingMode.HALF_EVEN); //使用银行家算法

System.out.println("季利息是:"+i);

}

java编程求出e=1+1/1!+1/2!+1/3!+…1/n!+…的近似值,要求误差小于0.0001

3.近似公式为e=(1+1/n)^n,n-无穷大

4.这两个公式都需要运算n到足够大来减少误差

假如你运算到n=k满足精度需要了

那么你首先要保证当n=k-1时算出的值与n=k的值差别小于0.0001

假如需要考虑截断误差,那么你就要考虑到任何一个1/n或者1/n!的形式的截断误差,以及运算中每一步的累计误差,都是可以计算的

从累积误差的角度来说,第一个方法较优

因为每一个求和项目都是整数的倒数,只发生一次截断

之后的误差计算直接将最大误差可能求和就可以了

而且每一次迭代可以应用上一次的结果,效率较高

但是缺点是当n比较大的时候,n!也会是一个比较大的数,n的类型定义得不好会溢出

第二个方法就需要计算一次截断误差,并且计算n次方的误差累积

java编写一个计算圆周率π的近似值π=4*(1-1/3+1/5-1/7+1/9-1/11+....)

import java.io.*;

public class Pi

{

    public static void main(String[] args)

    {

        final int max=1000;

        double item=0;

        double sum=0;

        int flag=-1;

        

        int n=0;

        for(n=0;n=max;n++)

        {

            flag*=-1;

            item=flag*1.0/(2*n+1);

            sum += item;

        }

        System.out.println(4*sum);

    }

}

终于申诉成功~~~

编写程序:计算π的近似值,π的计算公式为

#includestdio.h

main()

{ int n,i; double t,

sum;/*1*/

printf("请输入n的值\n");

scanf("%d",n);

sum=2; i=1; t=2;/*2*/

while(in) { t=t*(2*i)*(2*i)/(2*i-1)/(2*i+1);

/*3*/ // sum=sum*t; i=i+1; }

printf("π的值=%f\n",t);/*4*/ }

或。

写一个Java程序来实现蒙特卡洛法求π的近似值:

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class MonteCarloPi {

public static void main(String[] args) throws Exception{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.print("How many darts shoud I toss at the board?\n");

String s = br.readLine();

int numberOfDarts = Integer.parseInt(s.trim());

double radius = 1.0;

Dartboard d = new Dartboard(radius);

for(int i=1; i=numberOfDarts; i++){

Toss t = Toss.getRandom(radius);

d.strike(t);

}

double fractionIn = d.getFractionIn();

double pi = 4.0 * fractionIn;

System.out.println("Pi is approximately "+pi);

}

}

class Dartboard{

private double radius;

private int insideCircle, outsideCircle;

public Dartboard(double radius){

this.radius = radius;

insideCircle = 0;

outsideCircle = 0;

}

public void strike(Toss toss){

double x = toss.getX();

double y = toss.getY();

if(Math.sqrt(x*x + y*y) radius)

insideCircle++;

else

outsideCircle++;

}

public double getFractionIn() {

double total = (double) (insideCircle + outsideCircle);

return (double) insideCircle/total;

}

}

class Toss{

private double x,y;

public Toss(double x, double y){

this.x = x;

this.y = y;

}

public double getX(){return x;}

public double getY(){return y;}

public static Toss getRandom(double radius){

double x,y;

double size = Math.random();

double sign = Math.random();

size = size * radius;

if(sign 0.5)

x = size;

else

x = -size;

size = Math.random();

sign = Math.random();

size = size * radius;

if(sign 0.5)

y = size;

else

y = -size;

return new Toss(x,y);

}

}

扩展资料:

C语言:用循环结构分别编写程序

#include

void main()

{

\x09int n=1;

\x09float temp;

\x09float sum=0;

\x09do

\x09{

\x09\x09temp=(float)1/(2*n-1);

\x09\x09if(n%2==1)

\x09\x09\x09sum+=temp;

\x09\x09else

\x09\x09\x09sum-=temp;

\x09\x09n++;

\x09}while(temp=0.000001);

\x09printf("Pi=%f\n",sum*4);

}

java 两个数相除后四舍五入并保留两位小数有哪些方式?

1  double f = 3.1516;

BigDecimal b = new BigDecimal(f);

2   double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()

new java.text.DecimalFormat("#.00").format(3.1415926)

3   double d = 3.1415926;

String result = String.format("%.2f", d);

// %.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。

4   Math.round(5.2644555 * 100) * 0.01d;

//String.format("%0" + 15 + "d", 23) 23不足15为就在前面补0

1  方法点拨求近似数时:保留整数,表示精确到个位;保留一位小数,表示精确到十分位;保留两位小数,表示精确到百分位……

2、保留一位小数

如果保留一位小数,就要把第二、三位小数省略。

在表示近似数时,小数末尾的0不能去掉。 

3、保留整数部分:

 ≈1

java用二分法求根号3的近似值

double left = 0.0;

double right = 3.0;

double middle = (left + right) / 2;

double error = 1e-5;

while (middle - 3 error) {

middle = (left + right) / 2;

if (middle*middle 3)

left = middle;

else:

right = middle;

}

java近似数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java约数、java近似数的信息别忘了在本站进行查找喔。