作者a5170040 (Piggy)
看板NCTU-STAT97G
標題[心得] 函數指標
時間Thu Mar 26 12:43:55 2009
哈~統算寫到這個部分來分享一下心得
因為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
1F:推 hiloin:推一個,受益良多。 03/26 15:21
2F:推 liangxun:感謝感謝~~0rz 03/26 20:17
※ 編輯: a5170040 來自: 140.113.191.166 (03/26 20:21)
3F:→ teddd:有看有推... 03/27 19:08
4F:推 samlee04066:推 03/27 22:05
5F:推 yeya:噢我看不懂 03/27 22:27