作者reefuj (重要的是心 心阿)
看板EE_DSnP
標題Re: 關於4-1的問題
時間Mon Nov 12 23:52:54 2007
※ 引述《reefuj (重要的是心 心阿)》之銘言:
: 我擷取一段code來討論一下大家常忽視的東西
: double pi1 , pi2;
: double error=fabs(pi2-pi1);
: 這是在宣告的部份
: 初始值沒有給定
: 另外第二行給了有些同學錯覺
: 他們會認為有了這行 error就永遠是 = fabs( pi2 - pi1 );
: 其實只有當下啦, 之後當pi2或者pi1的值改變之後
: error的值不會自動更新....
: for(n=1;accuracy<error;n++)
: {
: pi1=4*pow(-1.0,int(n))*(1/(2*n+1))+4; <-- update pi1
: pi2=4*pow(-1.0,int(n+1))*(1/(2*n+3))+4; <-- update pi2
: }
: 這一段code的問題在於 accuracy < error
: 是這個for loop的{} 內容是否繼續執行的條件
: 但是仔細想想 如果一但進入for裡面
: 依照{}的內容更新了 pi1, pi2的值
: 那樣子執行完之後再一次檢查 accuracy < error 時
: 是否和執行前相同? 這意味這一旦進入這個for loop將會形成無窮迴圈...
: 所以依照題意應該改變error的值...而且應該在這個for loop裡面改變它
: 對了 這個pi1, pi2 湊不出題目要的無窮級數喔... 剛剛忘記加這句
最近有兩個同學都覺得我po出上面for迴圈裡的兩個式子長這樣
所以他們就會長的很像....
其實 在我自己嘗試去寫的時候
我一點都不想讓他們長的很像....
我寫文章通常都是某個同學寫信問我
然後我才會針對他的問題想要分享給大家
造成部分同學的誤會深感抱歉
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.42.185
1F:推 joshepsol:給助教添麻煩了@@ 11/13 00:17