国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)


●割圓法

????????一個(gè)圓如下面左圖所示,其半徑為1,其內(nèi)部?jī)?nèi)接一個(gè)正六邊形。設(shè)正六邊形的邊長(zhǎng)為y1。由幾何知識(shí)可得知y1=1,所以圓的周長(zhǎng)可近似為正六邊形的周長(zhǎng)C=6×y1=6.所以圓周率為前面的近似圓周長(zhǎng)與圓直徑之比,即C/2= 3≈π,這就是按照割圓法來(lái)得到圓周率近似值的方法。

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)

分析:(上面右圖所示)

其中邊長(zhǎng)為m、y1、y2的三條邊構(gòu)成一個(gè)小直角三角形,根據(jù)勾股定理可得:

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)?其中邊長(zhǎng)為n,y1,1的三條邊構(gòu)成一個(gè)較大的三角形,根據(jù)勾股定理可得:

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)結(jié)合條件圖中已知條件(m+n=1)和幾何關(guān)系對(duì)公式繼續(xù)進(jìn)行化簡(jiǎn)推導(dǎo):

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)所以圓周率π的近似值為:

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)如果內(nèi)接24邊形,其邊長(zhǎng)為y3,則其圓周率為:?

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)?如果內(nèi)接48邊形,其邊長(zhǎng)為y4,則其圓周率為:

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)?……?

綜上歸納可知,在割圓術(shù)這個(gè)算法中主要用到以下兩個(gè)公式:

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
class cyclotomic {
public:
	void cyclotomic1()
	{
		int i = 1,a=1;
		double len = 1;
		while(i<=n)
		{ 
			len = 2 - sqrt(4 - len);   //內(nèi)接多邊形的邊長(zhǎng)
			a *= 2;
			i++;
		}
		pi = 3.0 * (double)a * sqrt(len);
	}
	void showresult()
	{
		cout.precision(12);   //小數(shù)點(diǎn)后第十二位
		cout << pi << endl;
	}
	int n;
	double pi;
};
void text()
{
	cyclotomic c;
	cout << "輸入要切割的次數(shù):" << endl;
	cin>>c.n;
	c.cyclotomic1();
	c.showresult();
}
int main()
{
	text();
}

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)


●級(jí)數(shù)公式法

????????在微積分中,對(duì)一個(gè)表達(dá)式進(jìn)行級(jí)數(shù)展開(kāi)并取極限便可以得到一系列的迭代計(jì)算公式。對(duì)于圓周率π也可以采用相同的方法來(lái)得到級(jí)數(shù)公式(泰勒展開(kāi)式)。這樣的級(jí)數(shù)公式很多,依賴于不同的級(jí)數(shù)展開(kāi)表達(dá)式,下面就是一個(gè)典型的求圓周率級(jí)數(shù)公式的例子:

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)

#include<iostream>
#include<iomanip>
using namespace std;
class series1 {
public:
	void series_1()
	{
		int i = 1;
		double sum=1,record=1, m=1, n=3,t;
		while (i <= x)
		{
			t = m / n;
			t = t * record;
			sum += t;
			m += 1;
			n += 2;
			record = t;
			i++;
		}
		pi = 2.0 * sum;
	}
	void showresult()
	{
		cout.precision(12);//小數(shù)點(diǎn)后第十二位
		cout << pi << endl;
	}
	int x;
	double pi;
};
void text()
{
	series1 s1;
	cout << "請(qǐng)輸入該公式往后計(jì)算的位數(shù):" << endl;
	cin >> s1.x;
	s1.series_1();
	s1.showresult();
}
int main()
{
	text();
}

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)


●格雷戈里公式法

? ? ? ? 格雷戈里公式的實(shí)質(zhì)是反正切函數(shù)的泰勒展開(kāi)式,屬于級(jí)數(shù)公式的一種,具體公式如下:

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
class Gregory {
public:
	void Gregory1()
	{
		int sign = 1;
		double m = 1, term = 1;
		while (fabs(term) >= x)
		{
			pi += term;
			m += 2;
			sign = -sign;	
			term = sign / m;
		}
		pi = 4.0 * pi;
	}
	void showresult()
	{
		cout.precision(12);//小數(shù)點(diǎn)后第十二位
		cout << pi << endl;
	}
	double x;
	double pi=0;
};
void text()
{
	Gregory g;
	cout << "輸入精度e的值:" <<endl;
	cin >> g.x;
	g.Gregory1();
	g.showresult();
}
int main()
{
	text();
}

【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)


●蒙特卡洛

????????在概率算法的文章中,舉的蒙特卡洛算法例子就是用概率的方法去尋找π,具體在http://t.csdn.cn/VifFM


?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-449716.html

到了這里,關(guān)于【基礎(chǔ)算法】圓周率的多種方法求算 & C++實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python學(xué)習(xí)28:計(jì)算圓周率——蒙特卡洛法

    Python學(xué)習(xí)28:計(jì)算圓周率——蒙特卡洛法

    描述 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 蒙特卡洛(M

    2024年02月08日
    瀏覽(22)
  • 用python計(jì)算圓周率PI,并顯示進(jìn)度條

    用python計(jì)算圓周率PI,并顯示進(jìn)度條

    ?????????????????????????????????????????????????????????????????????????????????????????????????????? 描述 用python計(jì)算圓周率PI ???????

    2024年02月05日
    瀏覽(24)
  • 藍(lán)橋杯專題-真題版含答案-【大衍數(shù)列】【圓周率】【分糖果】【等額本金】

    藍(lán)橋杯專題-真題版含答案-【大衍數(shù)列】【圓周率】【分糖果】【等額本金】

    點(diǎn)擊跳轉(zhuǎn)專欄=Unity3D特效百例 點(diǎn)擊跳轉(zhuǎn)專欄=案例項(xiàng)目實(shí)戰(zhàn)源碼 點(diǎn)擊跳轉(zhuǎn)專欄=游戲腳本-輔助自動(dòng)化 點(diǎn)擊跳轉(zhuǎn)專欄=Android控件全解手冊(cè) 點(diǎn)擊跳轉(zhuǎn)專欄=Scratch編程案例 點(diǎn)擊跳轉(zhuǎn)=軟考全系列 點(diǎn)擊跳轉(zhuǎn)=藍(lán)橋系列 專注于 Android/Unity 和各種游戲開(kāi)發(fā)技巧,以及 各種資源分享 (網(wǎng)站、

    2024年02月13日
    瀏覽(33)
  • 學(xué)校頭歌作業(yè)3_4計(jì)算圓周率(頭歌作業(yè)[Python])

    在CSDN上補(bǔ)充前幾期的內(nèi)容 第1關(guān):割圓法 第2關(guān):無(wú)窮級(jí)數(shù)法 第3關(guān):蒙特卡洛法 第4關(guān):梅欽法 第5關(guān):拉馬努金法

    2024年02月10日
    瀏覽(19)
  • Unity零基礎(chǔ)到進(jìn)階 | Unity中 屏蔽指定UI點(diǎn)擊事件 的多種方法整理

    Unity零基礎(chǔ)到進(jìn)階 | Unity中 屏蔽指定UI點(diǎn)擊事件 的多種方法整理

    ?? 博客主頁(yè):https://xiaoy.blog.csdn.net ?? 本文由 呆呆敲代碼的小Y 原創(chuàng),首發(fā)于 CSDN ?? ?? 學(xué)習(xí)專欄推薦:Unity系統(tǒng)學(xué)習(xí)專欄 ?? 游戲制作專欄推薦:游戲制作 ??Unity實(shí)戰(zhàn)100例專欄推薦:Unity 實(shí)戰(zhàn)100例 教程 ?? 歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請(qǐng)指正! ?? 未來(lái)很長(zhǎng)

    2024年03月09日
    瀏覽(52)
  • C++算法之旅、04 基礎(chǔ)篇 | 第一章 基礎(chǔ)算法

    cstdio 有兩個(gè)函數(shù) printf,scanf 用于輸出和輸入 iostream 有 cin 讀入,cout 輸出 使用了std命名空間,cin、cout定義在該命名空間中,不引入空間會(huì)找不到導(dǎo)致出錯(cuò) 函數(shù)執(zhí)行入口 ?所有 cout、cin 都能用 scanf、printf 替換,但反過(guò)來(lái),由于cout、cin效率可能較低會(huì)導(dǎo)致超時(shí) ? printf %c 會(huì)讀

    2024年02月10日
    瀏覽(25)
  • 百題千解計(jì)劃【CSDN每日一練】“小明投籃,罰球線投球可得一分”(附解析+多種實(shí)現(xiàn)方法:Python、Java、C、C++、C#、Go、JavaScript)

    百題千解計(jì)劃【CSDN每日一練】“小明投籃,罰球線投球可得一分”(附解析+多種實(shí)現(xiàn)方法:Python、Java、C、C++、C#、Go、JavaScript)

    ? 這個(gè)心上人,還不知道在哪里,感覺(jué)明天就會(huì)出現(xiàn)。 ? ? ??作者主頁(yè): 追光者♂?? ???????? ??個(gè)人簡(jiǎn)介: ? ??[1] 計(jì)算機(jī)專業(yè)碩士研究生?? ? ??[2] 2022年度博客之星人工智能領(lǐng)域TOP4?? ? ??[3] 阿里云社區(qū)特邀專家博主?? ? ??[4] CSDN-人工智能領(lǐng)域優(yōu)質(zhì)創(chuàng)作者??

    2024年02月15日
    瀏覽(23)
  • C++基礎(chǔ)算法高精度篇

    C++基礎(chǔ)算法高精度篇

    ??作者主頁(yè):慢熱的陜西人 ??專欄鏈接:C++算法 ??歡迎各位大佬??點(diǎn)贊??關(guān)注??收藏,??留言 主要講解了高精度算法的四種常用的計(jì)算 以下數(shù)字均指位數(shù) ①A + B(精度均在10^6) ②A - B (精度均在10^6) ③A * b (len(A) = 10^6, a = 1000); ④A / b (len(A) = 10^6, a = 1000); Ⅲ. Ⅰ . A

    2024年02月16日
    瀏覽(27)
  • 【C++算法競(jìng)賽 · 圖論】圖論基礎(chǔ)

    【C++算法競(jìng)賽 · 圖論】圖論基礎(chǔ)

    前言 圖論基礎(chǔ) 圖的相關(guān)概念 圖的定義 圖的分類 按數(shù)量分類: 按邊的類型分類: 邊權(quán) 簡(jiǎn)單圖 度 路徑 連通 無(wú)向圖 有向圖 圖的存儲(chǔ) 方法概述 代碼 復(fù)雜度 圖論(Graph theory) ,是 OI 中的一樣很大的一個(gè)模塊,圍繞它有很多高難度的算法以及高級(jí)的概念。 這篇文章將介紹關(guān)

    2024年04月12日
    瀏覽(24)
  • C++算法之旅、04 基礎(chǔ)篇 | 第一章

    cstdio 有兩個(gè)函數(shù) printf,scanf 用于輸出和輸入 iostream 有 cin 讀入,cout 輸出 使用了std命名空間,cin、cout定義在該命名空間中,不引入空間會(huì)找不到導(dǎo)致出錯(cuò) 函數(shù)執(zhí)行入口 ?所有 cout、cin 都能用 scanf、printf 替換,但反過(guò)來(lái),由于cout、cin效率可能較低會(huì)導(dǎo)致超時(shí) ? printf %c 會(huì)讀

    2024年02月10日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包