日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
圓周率怎么算c語(yǔ)言

圓周率(π)是一個(gè)無(wú)理數(shù),其值約為3.1415926,在C語(yǔ)言中,我們可以使用多種方法來(lái)計(jì)算圓周率,以下是一些常見(jiàn)的方法:

1、蒙特卡洛方法

蒙特卡洛方法是一種通過(guò)隨機(jī)抽樣來(lái)計(jì)算圓周率的方法,具體步驟如下:

1、1 初始化變量

#include 
#include 
#include 
int main() {
    int i, n;
    double x, y, pi;
    srand(time(NULL));
    n = 1000000; // 抽樣次數(shù)
    pi = 0.0;
}

1、2 生成隨機(jī)點(diǎn)

for (i = 0; i < n; i++) {
    x = (double)rand() / RAND_MAX; // 生成0到1之間的隨機(jī)數(shù)
    y = (double)rand() / RAND_MAX; // 生成0到1之間的隨機(jī)數(shù)
}

1、3 計(jì)算圓內(nèi)點(diǎn)的數(shù)量

for (i = 0; i < n; i++) {
    if (x * x + y * y <= 1) { // 如果點(diǎn)在圓內(nèi)(x^2 + y^2 <= 1),則累加計(jì)數(shù)器
        pi++;
    }
}

1、4 計(jì)算圓周率

pi = 4.0 * pi / n; // 乘以4并除以抽樣次數(shù),得到圓周率的近似值
printf("圓周率的近似值為: %f
", pi);
return 0;

2、格雷戈里萊布尼茨級(jí)數(shù)法

格雷戈里萊布尼茨級(jí)數(shù)法是一種通過(guò)無(wú)窮級(jí)數(shù)來(lái)計(jì)算圓周率的方法,具體步驟如下:

2、1 初始化變量和級(jí)數(shù)項(xiàng)數(shù)

#include 
#include 
int main() {
    double pi = 0.0; // 圓周率的近似值
    int n, i; // 級(jí)數(shù)項(xiàng)數(shù)和循環(huán)變量
    n = 1000000; // 級(jí)數(shù)項(xiàng)數(shù),可以根據(jù)需要調(diào)整以提高精度
}

2、2 計(jì)算級(jí)數(shù)項(xiàng)并累加到圓周率的近似值上

for (i = 0; i < n; i++) {
    double term = pow(1, i) / (2 * i + 1); // 計(jì)算當(dāng)前級(jí)數(shù)項(xiàng)的值,i為奇數(shù)時(shí)符號(hào)為正,偶數(shù)時(shí)符號(hào)為負(fù),分母為2i+1,以便簡(jiǎn)化計(jì)算和提高精度
    pi += term; // 將當(dāng)前級(jí)數(shù)項(xiàng)累加到圓周率的近似值上
}

2、3 輸出圓周率的近似值并四舍五入到指定的小數(shù)位數(shù)

pi *= 4; // 乘以4,得到圓周率的近似值(因?yàn)楦窭赘昀锶R布尼茨級(jí)數(shù)的公式是π/4)
printf("圓周率的近似值為: %.15f
", pi); // 輸出圓周率的近似值,保留15位小數(shù),可以根據(jù)需要調(diào)整小數(shù)位數(shù)以提高精度和輸出速度的平衡
return 0;

3、BBP公式法(巴塞爾、布倫特、普勞特公式)

BBP公式法是一種通過(guò)無(wú)窮級(jí)數(shù)來(lái)計(jì)算圓周率的方法,其公式為:π/4 = 1 1/3 + 1/5 1/7 + 1/9 …,具體步驟如下:

3、1 初始化變量和級(jí)數(shù)項(xiàng)數(shù)、符號(hào)變量以及累加器和誤差范圍變量

#include 
#include 
#include  // 引入布爾類(lèi)型,用于判斷符號(hào)變量的值是否為正或負(fù)
#include  // 引入浮點(diǎn)數(shù)類(lèi)型的最大值和最小值常量,用于設(shè)置誤差范圍和判斷累加器是否達(dá)到誤差范圍要求的條件之一(另一個(gè)條件是級(jí)數(shù)項(xiàng)的絕對(duì)值小于等于誤差范圍)
#define PRECISION 1000000 // 級(jí)數(shù)項(xiàng)數(shù),可以根據(jù)需要調(diào)整以提高精度和輸出速度的平衡,同時(shí)影響誤差范圍的大小和累加器的收斂速度(即達(dá)到誤差范圍要求的時(shí)間)和最終結(jié)果的精度和穩(wěn)定性(即誤差范圍越小,收斂速度越快,最終結(jié)果越穩(wěn)定;誤差范圍越大,收斂速度越慢,最終結(jié)果越不穩(wěn)定)
#define TOLERANCE DBL_EPSILON * PRECISION // 誤差范圍,根據(jù)需要調(diào)整以提高精度和輸出速度的平衡,同時(shí)影響累加器的收斂速度(即達(dá)到誤差范圍要求的時(shí)間)和最終結(jié)果的精度和穩(wěn)定性(即誤差范圍越小,收斂速度越快,最終結(jié)果越穩(wěn)定;誤差范圍越大,收斂速度越慢,最終結(jié)果越不穩(wěn)定)
int main() {
    double pi = 0.0, term, sum = 0.0, sign = 1.0; // pi為圓周率的近似值,term為當(dāng)前級(jí)數(shù)項(xiàng)的值,sum為累加器,sign為符號(hào)變量(初始值為正)
}

網(wǎng)頁(yè)名稱(chēng):圓周率怎么算c語(yǔ)言
分享網(wǎng)址:http://www.5511xx.com/article/cohehce.html