日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

c语言产生随机数_C语言 求的近似值

發布時間:2025/3/19 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言产生随机数_C语言 求的近似值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊上方“藍字”關注我們

愉快的一天,不得不做的三件事:

????? ? 種田,鋤地,整代碼!!!

【題目】

用循環方法實現。

(1)請利用“正多邊形逼近”的方法求出π的近似值。

(2)利用隨機數法求π的近似值。

【設計思路】

(1)“正多邊形逼近”的方法思路:

利用圓內接正六邊形邊長等于半徑的特點將邊數翻番,作出正十二邊形,求出邊長,重復這一過程,就可獲得所需精度的π的近似值。

(2)隨機數法求π的近似值的思路:

在一個單位邊長的正方形中,以邊長為半徑,以一個頂點為圓心,在正方形上作四分之一圓。

隨機的向正方形內扔點,若落入四分之一圓內則計數。

重復向正方形內扔足夠多的點,將落入四分之一圓內的計數除以總的點數,其值就是π值四分之一的近似值。

該方法求出的π值只有統計次數足夠多時才可能準確。

【代碼分析】

double b,d,b0;?

?/*b為多邊形邊長,d為圓半徑與三角形中線之差*/

long i;? ?

?/*內接多邊形的邊數*/

? for(i=6,b=0.5;;i*=2)????

/*首先單位圓內接正六邊形,初始b等于半徑的一半,即為0.5;每次循環,內接多邊形邊數翻一倍*/

? {

? b0=b;

/*保存本次正多邊形的邊長作為精確度控制的依據*/

? d=1-sqrt(1-b*b);

? b=sqrt(b*b+d*d)/2;

? if(2*b*i-b0*i<1e-15)????

? break;

/*精確度達到1e-15時,跳出循環*/

}

printf("方法一得到:π=%.15lf\n",2*i*b);

#define N 1e6????//定義一百萬個種子

long i;

double x,y,k,PI;

srand((unsigned)time(NULL));?

/*srand()函數用來設置算法的種子,time(NULL)返回當前的時間,先調用srand(time(NULL)),把當前的時間作為種子,使程序每次運行產生不同的隨機數*/

for(i=0,k=0;i

{

x = rand() / (double)RAND_MAX;

y = rand() / (double)RAND_MAX;

/*RAND_MAX 是 中偽隨機數生成函數 rand 所能返回的最大數值,此時得到一個 0~1.0 之間的隨機浮點數*/

if (sqrt((x - 0.5)*(x - 0.5) + (y - 0.5)*(y - 0.5)) <= 0.5)?

? ? k++;????

/*記錄落入四分之一圓的點數*/

}

PI=4*k/N;

printf("方法二得到:π=%.15f\n",PI);

【代碼展示】

C語言? ?求 π 的近似值

#include?

#include

#include

#include

#define N 1e6

void main1()

{

? double b,d,b0;

long i;

? for(i=6,b=0.5;;i*=2)

? {

? b0=b;

? d=1-sqrt(1-b*b);

? b=sqrt(b*b+d*d)/2;

? if(2*b*i-b0*i<1e-15)

? break;

}

? ? printf("方法一得到:π=%.15lf\n",2*i*b);

?}

void main2()

{

long i;

double x,y,k,PI;

srand((unsigned)time(NULL));?

for(i=0,k=0;i

{

x = rand() / (double)RAND_MAX;

? y = rand() / (double)RAND_MAX;

? if (sqrt((x - 0.5)*(x - 0.5) + (y - 0.5)*(y - 0.5)) <= 0.5)?

? ? k++;

}

PI=4*k/N;

printf("方法二得到:π=%.15f\n",PI);

}

void approximation()

{

printf("-------歡迎進入操作界面-------\n\n");

main1();

main2();

}

int main()

{

approximation();

return 0;

}

【運行結果展示】

IT 農工要回家休息了,我們下期再見吧

記得點擊“在看”進行收藏哦

往期精彩

C語言 用牛頓迭代法解方程

C語言 埃及分數

總結

以上是生活随笔為你收集整理的c语言产生随机数_C语言 求的近似值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。