2007年9月30日 星期日

C 程式設計期末作業,學習函數,練習解題

作業內容:
以下是作業六科幻故事的續集。

寵物凱立歐有了新品種叫哥立歐(Gleo),哥立歐的產生是透過四種射線所形成,以這四種 x1, x2, x3, x4 射線照射所得到的品種也可以透過簡單的電子掃描得知其智力,它的智力會依四種射線照射強度不同,而有所變化,四種射線的強度在 -64.0 到 64.0 之間。

現在有了新的競賽,目的也是要培養智力達180以上的哥立歐。競賽是沒有什麼特定的規則,你可以同時擁有多隻哥立歐,自己想出培養新品種的方法,例如,每次生產很多隻,留下一些優良品種作為下一代育種用。有一種方式叫做隨機暴力法,這是演算法中的用語,就是無限的生產,無限的淘汰,使用特定的規則找遍所有可能的答案,看到好的就留下。

隨機暴力法的流程如下

第一步:隨機產生第一隻哥立歐;呼叫 initPetPar2()函數 四次,來產生每一個射線的初始強度,並計算它的IQ值。智力的計算方式是呼叫IQEval2(double, double, double, double),例如 myiq = IQEval2(a1, b1, c1, d1);。

第二步:產生另一隻子代哥立歐。方法是以父代的射線值(四個射線的處理方式相同),去加減一個隨機數,以產生不同的子代,並計算其IQ值。

例如:yi = xi ± m,d <= m <= u,亦即 m 是 d 至 u 之間的隨機數。

第三步:比較父代和子代這兩隻誰的IQ高,留下高IQ哥立歐。

第四步:如果未滿足停止條件,就回到第二步。

你也可以用作業六的方式來完成這個期末作業。

重要步驟:
1. 在開始寫這個程式之前,你必須下載三個檔案 adv_fvaldll.aadv_fval.dlladv_fval.h,放在與你主程式相同的目錄中。

2. 在你的主程式中,必須加上這一行:#include "adv_fval.h"。

3. 在Dev-C++中的Tools -> Compiler Options 中,設定連結加入adv_fvaldll.a 檔案,如下圖。

解答下載
回到首頁

沒有留言: