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

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

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

圓周率(π)是一個無理數(shù),其值約為3.1415926,在C語言中,我們可以使用多種方法來計算圓周率,以下是一些常見的方法:

1、蒙特卡洛方法

蒙特卡洛方法是一種通過隨機抽樣來計算圓周率的方法,具體步驟如下:

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 生成隨機點

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

1、3 計算圓內點的數(shù)量

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

1、4 計算圓周率

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

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

格雷戈里萊布尼茨級數(shù)法是一種通過無窮級數(shù)來計算圓周率的方法,具體步驟如下:

2、1 初始化變量和級數(shù)項數(shù)

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

2、2 計算級數(shù)項并累加到圓周率的近似值上

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

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

pi *= 4; // 乘以4,得到圓周率的近似值(因為格雷戈里萊布尼茨級數(shù)的公式是π/4)
printf("圓周率的近似值為: %.15f
", pi); // 輸出圓周率的近似值,保留15位小數(shù),可以根據(jù)需要調整小數(shù)位數(shù)以提高精度和輸出速度的平衡
return 0;

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

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

3、1 初始化變量和級數(shù)項數(shù)、符號變量以及累加器和誤差范圍變量

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

網(wǎng)站名稱:圓周率怎么算c語言
網(wǎng)站鏈接:http://m.5511xx.com/article/cohehce.html