[心得] 函數指標
哈~統算寫到這個部分來分享一下心得
因為pdf有很多
總不可能每個pdf都寫一個積分吧?
(也就是底下程式碼Integral函數的內容複製好幾次)
這樣程式碼會變得非常長
所以我找了一下書並且做了實驗發現函數指標可以解決這個問題
所以來和大家分享一下
double p1,p2//外部變數(也就是以下的程式都可以用)
double (*pdf)(double); //宣告函數指標 我現在只有要放x而已,所以引數只有一個
//定義gamma pdf
double pdf_gamma(double x){
return (pow(x,p1-1.0)/g1)*pow(p2,-p1)*exp(-x/p2);//我的g1已經先積好了
}
//卡方pdf
double pdf_chi_square(double x){
return exp(-0.5*x)*pow(x,0.5*p1-1.0)/(pow(2,0.5*p1)*g1);
}
int main(void){
...
pdf = pdf_gamma;//把要的pdf給函數指標
//或者可以放
//pdf = pdf_chi_square;
Integral(); 呼叫積分函數
...
}
void Integral(void){
for(i=0;i<分割數;i++){
....
pdf(x1)+pdf(x2);//這邊就可以用函數指標作運算了
....
}
}
大致上這樣
哈
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.191.166
推
03/26 15:21, , 1F
03/26 15:21, 1F
推
03/26 20:17, , 2F
03/26 20:17, 2F
※ 編輯: a5170040 來自: 140.113.191.166 (03/26 20:21)
→
03/27 19:08, , 3F
03/27 19:08, 3F
推
03/27 22:05, , 4F
03/27 22:05, 4F
推
03/27 22:27, , 5F
03/27 22:27, 5F
討論串 (同標題文章)