1. 程式人生 > >級數方法求解PI

級數方法求解PI

級數思想:在微積分中,對一個表示式進行級數展開並極限便可以得到一系列的迭代計算公式


 PI

        pi / 2 = 1 + 1/3 + 1/3 * 2/5 + 1/3 * 2/5*3/7+ 1/3 * 2/5*3/7*4/9+......

// JiShuPI.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <IOSTREAM>
#include <CSTDIO>
#include <CSTDLIB>

using namespace std;

double JiShuPI()
{
	double PI = 2,tmep = 2;
	int n = 1,m = 3;

	while(tmep > 1e-15)
	{
		tmep = tmep * n / m;
		PI += tmep;
		n++;
		m+=2;
	}
	return PI;	
}


int main(int argc, char* argv[])
{
	double PI;
	PI = JiShuPI();
	printf("PI = %f\n", PI);

	return 0;
}



相關推薦

級數方法求解PI

級數思想:在微積分中,對一個表示式進行級數展開並極限便可以得到一系列的迭代計算公式  PI        pi / 2 = 1 + 1/3 + 1/3 * 2/5 + 1/3 * 2/5*3/7+ 1/3 * 2/5*3/7*4/9+...... // JiShuPI.

求解PI方法——尤拉級數

自然數的平方倒數和,當自然數的個數達到一定程度是,和收斂為為PI的平方除以6,即 所以寫一個求解PI的程式 import math math.sqrt(6*sum([1/(i**2) for i in range(1,100)])) math.sqrt(6*sum([1/(i**2)

蒙特卡洛方法近似求解PI

本文為博主原創文章,轉載請註明出處。 public class T { // 迴圈次數 private static int LOOP = 100000; // 圓的半徑 private static double R = 0.5;

使用不同方法求解最大子序列之和問題

struct 一個 遞歸算法 def als main 復雜 mar false /* Solutions for the Maximum Subsequence Sum Problem 四種方法,時間復雜度依次遞減:O(N^3)、O(N^2)、O(N lo

蒙特卡洛方法求解圓周率

nsf click oct tco store can 20px ane type 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

C++筆記005:用面向過程和面向對象方法求解圓形面積

函數 ont 自定義數據類型 行為 能夠 變量 面向對象 數據類型 結構體 結束了第一個hello world程序後,我們來用面向過程和面向對象兩個方法來求解圓的面積這個問題,以能夠更清晰的體會面向對象和面向過程。 第一,面向過程計算圓的面積 程序中我們看到一個標準輸入流c

Linux程式設計 多程序,多執行緒求解PI(圓周率)

題目: 連結 多程序: #include <unistd.h> #include <stdio.h> #include <stdlib.h> #define n 100000000.0 int main() { i

洛必達法則-求導的方法求解出極限

1.對於0 * ∞ 、∞ - ∞ 、0 ^ 0 、1 ^ ∞ 、0 / 0的情況都可以使用洛必達法則進行求解 2.例子如下:                &

求第n個斐波那契數(分別用遞迴和非遞迴兩種方法求解

斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55……這個數列從第3項開始,每一項都等於前兩項之和。 這裡分別用遞迴和非遞迴的方法實現: 遞迴 #define _CRT_SECURE_NO_WARNINGS 1 #include&l

蒙特.卡羅方法求解圓周率近似值原理及程式碼實現

原理 對於某些不能精確求解的問題,蒙特.卡羅方法是一種非常巧妙的尋找近似解的方法。 以求解圓周率的問題為例,假設有一個單位圓及其外切正方形,我們往正方形內扔飛鏢,當扔的次數足夠多以後,“落在圓內的次數/落在正方形內的次數”這個比值會無限接近“圓的面積/

04 Monte Carlo方法求解非線性規劃(02)

0.說明 本文是雞年新年計劃的內容之一:每週學習一個數學模型,寫一篇總結,記錄自己學到的東西和遇到的問題。 這些文章並不是相關模型的全面介紹,也不是從最基礎的開始,所以不一定適合數學模型的beginner,但都是些很實際的技術,希望能幫到你。 本文的重點是,分析

03 Monte Carlo方法求解非線性規劃(01)

0.說明 本文是雞年新年計劃的內容之一:每週學習一個數學模型,寫一篇總結,記錄自己學到的東西和遇到的問題。 這些文章並不是相關模型的全面介紹,也不是從最基礎的開始,所以不一定適合數學模型的beginner,但都是些很實際的技術,希望能幫到你。 本文的重點是使用M

藍橋杯 Java 搭積木規則問題 使用遞迴方法求解

** 搭積木規則: ** 每個積木放到其它兩個積木的上面,並且一定比下面的兩個積木數字小。 最後搭成4層的金字塔形,必須用完所有的積木。 下面是兩種合格的搭法: 0 1 2 3 4 5 6 7 8 9 0 3 1 7 5 2 9 8 6 4 請你計算這樣的搭法一

【MPI高效能運算】蒙特卡洛方法計算pi

蒙特卡洛方法 就是通過概率模擬來近似計算。 其實演算法進度不是很高。 程式碼 在下面程式碼中的input檔案中的內容是 10000000 執行效果:下面用四個核來做計算 PS D:\C++\VS\repo\MPI-DEMO\Debug> mpiexec

sincerit 組合及排列(深搜及組合方法求解)

從1, 2, 3, 4, 5, … n這n個數中求出r個數的組合,並輸出 /*深搜的方法求組合*/ #include <stdio.h> int m, k, ans[100]; void comb(int top, int r) { if (r == 0) { f

C#平方和方法求解(2種不同方法)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SquareAdd { class Program {

從暴力求解到動態規劃—— 7 種方法求解連續子陣列的最大和問題(python實現)

問題描述 已知一個數組 a[n],裡面存放著浮點數,可能是正數、負數或0。求它的所有連續子陣列中的最大和。 連續子陣列:指的是陣列的一個連續切片,即可以表示為 a[i:j],0≤i≤j<n。 連續子陣列的和:比如連續子陣列為 a[i:j] ,則和為

三種方法求解Fibonacci(斐波那契)數列

所謂Fibonacci數列是指這樣一種數列,它的前兩項均為1,從第三項開始各項均為前兩項之和。用數學公式表示出來就是:            1    &

採用蒙特卡洛方法計算PI的值

%% clc; clear; close all;%% sample_size = 10.^(2:1:7); my_pi = zeros(length(sample_size),1); for i = 1:length(sample_size)     N = sample_size(i);     rng(

第四章作業-串-計算機17級 7-1 最長對稱子串 (25 分)四種方法求解(暴力列舉+動態規劃+中心擴充套件+manacher演算法(馬拉車))

7-1 最長對稱子串 (25 分) 對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定Is PAT&TAP symmetric?,最長對稱子串為s PAT&TAP s,於是你應該輸出11。 輸入格式: 輸入在一行中給出長度不超過1000的非空字串