黃金礦工c語言代碼
發布時間: 2023-06-05 05:45:43
⑴ 這題的c語言源代碼,還有解題思想,隨機化演算法,麻煩手打,謝謝
//隨機化演算法用隨機投點法計算定積分
#include<stdio.h>
#include<math.h>
#include<time.h>//使用當前時鍾做種子
doubleDarts(intn,doublea,doubleb);
doublef(doublex);//積分函數
main(){
inti,n[5]={100,1000,1000,10000,10000000};//隨機投點個數,個數越多結果越精確
doublea=1.0,b=2.0;//積分上下界
srand((unsigned)time(NULL));//初始化隨機數
for(i=0;i<5;i++)
printf("%d: n=%d r=%lf ",i+1,n[i],Darts(n[i],a,b));
}
/*基本思想是在矩形區域內隨機均勻投點,求出由這些點
*產生的函數值的算術平均值,再乘以區間寬度,即可得
*出定積分的近似解
*/
doubleDarts(intn,doublea,doubleb)
{
inti;
doublesum=0.0;
for(i=0;i<n;i++){
doublex=(b-a)*rand()+a;//產生[a,b)之間的隨機數
sum=sum+f(x);
}
return(b-a)*sum/n;
}
doublef(doublex){
returnsin(x)/x;
}
熱點內容