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

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

#include<stdio.h>

main()

{ int n,idouble t,

sum/*1*/

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

scanf("%d",&n)

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

while(i<n) { t=t*(2*i)*(2*i)/(2*i-1)/(2*i+1)

/*3*/ // sum=sum*ti=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=1i<=numberOfDartsi++){

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)

}

标准C语言源程序如下:

通过岁蠢胡递乎拦归计算pi值

#include<档消stdio.h>

#include<math.h>

double picount(unsigned int level){ //level 为递归层次

double a

if(level==1)

return 1

else{

a=pow(-1,level-1)/(2*level-1)

return picount(level-1)+a

}

}

main(){

unsigned int lev

printf("input the recursive level : ")

scanf("%d",&lev)

printf("pi is %f \n",4*picount(lev))

}

#include<stdio.h>

main()

{

int n,i

double t,sum/*1*/

printf("请输入n的值\n"羡歼槐)

scanf("%d",&n)

sum=2

i=1

t=2/改烂*2*/

while(i<n)

{

t=t*(2*i)*(2*i)/(2*i-1)/(2*i+1)/*3*/

//兄友 sum=sum*t

i=i+1

}

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12284705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存