求pi 的公式

pi = 3.1415926.....

下面用c 语言来求解PI

现有公式

(pi*pi)/6 = 1 + 1/(2*2) + 1/(3*3) + ... + 1/(n*n);

#include <math.h>

double CalculatePi(unsign long n) {

double s = 0.0; unsign long i;

//n 为要求的精确度,越大越好。

for ( i = 1; i <= n ; i++) {

s = s + 1/(i*i);

}

return (sqrt(6*s));

}

时间: 2024-10-09 08:15:43

求pi 的公式的相关文章

解剖被称为「外星人程序」的求PI小程序

|版权声明:本文为博主原创文章,未经博主允许不得转载. 原代码如下: 1 /*某年Obfuscated C Contest佳作选录:*/ 2 long a=10000,b,c=2800,d,e,f[2801],g; 3 main(){for(;b-c;)f[b++]=a/5; 4 for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a) 5 for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);} 输出: 3

[数、运算] 蒙地卡罗法求 PI

题目说明: 蒙地卡罗为摩洛哥王国之首都,该国位于法国与义大利国境,以赌博闻名.蒙地卡罗的基本原理为以乱数配合面积公式来进行解题,这种以机率来解题的方式带有赌博的意味,虽然在精确度上有所疑虑,但其解题的思考方向却是个值得学习的方式. 题目解析: 蒙地卡罗的解法适用于与面积有关的题目,例如求PI值或椭圆面积,这边介绍如何求PI值:假设有一个圆半径为1,所以四分之一圆面积就为PI,而包括此四分之一圆的正方形面积就为1,如下图所示: 如果随意的在正方形中投射飞标(点)好了,则这些飞标(点)有些会落于四分

Codeforces 235B Let&#39;s Play Osu! (概率dp求期望+公式变形)

B. Let's Play Osu! time limit per test:2 seconds memory limit per test:256 megabytes You're playing a game called Osu! Here's a simplified version of it. There are n clicks in a game. For each click there are two outcomes: correct or bad. Let us deno

《用C++语言编写一个程序,求PI的值》

1 //编写一个C++程序求PI的值 2 /* 3 PI=16arctan(1/5)-4arctan(1/239) 4 其中arctan用如下形式的极数计算: 5 arctan=x-(x^3/3)+(x^5/7)-(x^7/7)+... 6 */ 7 #include<iostream> 8 using namespace std; 9 double arctan(double x){ 10 double sqr = x*x; 11 double e = x; 12 double r = 0;

SICP:1.31按照公式求Pi值,原理同1.29

#lang racket ;product doing the multiplation (define (product term a next b) (if (< b a) 1 (* (term a) (product term (next a) next b)) );if );product (define (product-iteration term a next b) (define (iteration a result) (if (< b a) result (iteratio

【006】求pi的近似值

[题目] 用下面公式求π的近似值.π/4≍1-1/3+1/5-1/7+…直到最后一项的绝对值小于10的-7次方为止. 根据给定的算法很容易编写程序如下: [解答] #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main( ) {int s=1; double n=1,t=1,pi=0; while((fabs(t))>1e-7) {pi=pi+t;

求pi的近似值

用格雷戈里公式计算π的近似值,精度要求:最后一项的绝对值小于0.00001 1,用while循环实现 int denominator,flag; double item,pi; /* 循环初始化 */ flag = 1; //flag表示第i项的符号,初始为正 denominator = 1; //denominator第i项的字母,初始为1 item = 1.0; //item中存放第i项的值,初值取1 pi = 0; //置累加和pi的初值为0 while(fabs(item)>=0.000

HDU dice DP求期望+推公式

题意: 一个m边形的骰子,求连续投出n个相同的面,和m个两两不同的面的期望次数. solution: 令\(f_i\)表示已经连续投出i个相同的面,到连续投出n个还需要的期望次数. 令\(g_i\)类似的表示第二种问题的期望次数. 对于\(f_i\) ,有两种情况: ① 投出了和前i个相同的面,转移到了\(f_{i+1}\) ,那么\(f_i+=(f_{i+1}+1)*\frac{1}{m}\) ② 投出了一个不同的面,转移到了\(f_1\),那么\(f_i+=(f_1+1)*\frac{m-1

HDU 4043 Eliminate Witches! (求概率推公式 + 大数)

FXTZ II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 525    Accepted Submission(s): 276 Problem Description Cirno is playing a fighting game called "FXTZ" with Sanae. Sanae is a ChuShou