物競天擇

又叫，簡化講係生物遺傳上分化出唔同特徵，有啲好有啲壞，有壞特徵嘅比較難生存同繁衍後代，所以畀環境淘汰，得返有好特徵嘅適應到環境而可以留低，將好特徵一代傳一代。

概論 

物競天擇嘅概念係由查理斯·達爾文喺佢本名著《物種起源》嗰度提出嘅。「通過物競天擇進行嘅進化」係指某啲等位基因因為有利於生存同繁殖而變得更加常見嘅過程。例如身上帶有「抗藥性勁嘅基因」嘅細菌個體比較能夠生存落去同埋繁殖，所以喺下一代入面「抗藥性勁嘅基因」呢個等位基因就變得更加常見。呢個機制成日俾人話佢係不證自明嘅，因為個機制係三個簡單事實嘅必然結果：
表現型差異：就算係喺一個族群嘅生物入面，個體彼此之間喺形態、生理、行為等各方面有所差異；
適應能力差異：唔同嘅表現型特徵對於生存同繁殖嘅影響都唔同，例如「皮下脂肪厚」對於喺凍嘅地方生存有利，而「不育」對繁殖不利；
適應能力嘅遺傳性：呢啲影響適應能力嘅表現型特徵受基因影響，有啲甚至完全由基因話事嘅，所以有得一代傳一代。
喺野外，好多時「生咗出嚟嘅下一代」數量大過「有得生存落去嘅下一代」，而呢啲原因令到同一個物種之間嘅個體會爭生存所需嘅資源同埋繁殖嘅機會。喺呢啲競爭嗰度，某啲個體因為先天優勢所以比較大機會爭贏，好似係天生大隻啲聰明啲所以比較擅長搵嘢食，或者天生個樣靚啲所以比較容易搵到伴侶，於是乎呢啲有先天優勢嘅個體同冇咁有優勢嘅比起上嚟，會比較有能力生存同繁殖－將自己身上嘅基因傳去下一代嗰度。

進化適應性 

物競天擇帶出咗進化適應性呢個概念。一隻生物嘅進化適應性係指佢生存同繁殖嘅能力，而呢個能力決定佢有幾大機會將自己身上嘅基因傳去下一代。某隻生物嘅進化適應性係以「比例上有幾多後代帶有嚟自嗰隻生物嘅基因」嚟量度嘅，所以進化適應性唔係齋睇佢可以生到幾多個後代嘅－就算佢生到嘅仔女嘅數量係同類個體嘅十倍，如果嗰啲仔女因為太虛弱或者佢唔識照顧等嘅原因而生存唔到，呢隻生物嘅進化適應性都唔會好高。

一個特徵嘅進化適應性唔係定死咗唔變嘅。如果個族群住嘅環境變咗，本嚟係中性或者有害嘅特徵可能會變成有利嘅特徵，反之亦然。

例如係好出名嘅樺尺蠖噉：樺尺蠖係一種飛蛾，本來係白色帶黑斑點嘅，不過喺 18 世紀工業革命嘅英格蘭，工廠排出大量黑色嘅廢氣，引致樺尺蠖族群嘅色水有所改變－生態學家發現喺工業革命嗰兩個世紀期間，英格蘭樺尺蠖嘅色水變到黑鼆鼆噉色。根據生物學家嘅研究，呢個現象嘅原因如下－樺尺蠖嘅身體色水係由等位基因話事嘅，隻隻樺尺蠖身上都有決定佢身體色水嘅基因，而「白色帶斑點嘅基因」同埋「黑色嘅基因」係呢個基因嘅等位基因，喺英格蘭樺尺蠖由白色帶斑點變成近乎全黑嘅色水嘅過程當中，「黑色嘅基因」喺呢個族群嘅基因庫入面出現嘅頻率提升咗，而「白色帶斑點嘅基因」嘅出現頻率就相應跌咗－喺定義上就係一個進化嘅例子。

好似係樺尺蠖噉：喺一個乾淨嘅自然環境嗰度，生到成身黑色會令到隻蠖變得更加樣眼，更加容易俾啲獵食者睇到同捉嚟食，但喺工業革命嗰陣，啲工廠噴咗好多污染物出嚟，搞到佢哋住嘅地方好多都變咗黑鼆鼆噉嘅色，喺呢個環境當中，「成身黑色」反而變咗做個有利嘅特徵，令到隻蠖變得冇咁樣眼。地球一路都有好多地殼活動、氣候同埋洋流等嘅嘢令地球嘅環境不斷噉變化，而呢啲變化令到地球上嘅生物要係噉進化嚟適應新環境，亦都令地球嘅生物多樣性變得更加高。

運算模擬 
物競天擇可以大致上噉用以下嘅 JavaScript 碼嚟模擬：
var p; // 基因 P 喺個族群當中嘅出現率
var N = 2000;
var generations = 200;
var data = [];
var simulations = 10;

// 定義咗柞子程序先。
function next_generation(simulation_data) { // 呢個子程序負責由一代嘅數據計下一代嘅樣
    var draws = 2 * N;
    var A1 = 0;
    var A2 = 0;
    for (var i = 0; i < draws; i = i + 1) {
        // p 乘嘅數值代表基因 P 有幾有利生存繁殖，嗰個數值愈高愈表示基因 P 有利生存繁殖。
        if (Math.random() <= p * 1.01) { // 喺呢個個案入面，0.5 * 1.01 大過 0.5，所以 A1 嘅數值比較有可能上升。
            A1 = A1 + 1;
        }
        else {
            A2 = A2 + 1;
        }
    }
    p = A1/draws; // 將 p 設做一代後，基因 P 喺個族群當中嘅出現頻率。如果 p 上面乘嗰個數大過 1，噉 p 嘅數值傾向會升。
    simulation_data.push(p);
}

function simulation(simulation_counter) { // 呢個子程序負責做模擬。
    p = 0.5; // 設 p 做 0.5，即係個族群入面一半個體有基因 P。 
    for (var i = 0; i < generations; i = i + 1) { // 行 200 代。
        next_generation(data[simulation_counter]); // 行 next_generation 呢個子程序，行 200 次。
    }
}

// 個主程序喺呢度。
for (var i = 0; i < simulations; i = i + 1) { // 做 10 次模擬，
    data.push([]); // 每次都將計出嘅數據放入 data[] 呢個 array 嗰度。
    simulation(i); // 行 simulation 呢個子程序。
}
draw_line_chart(data,"Generation","p",["Population Size:",N,"Generations:",generations]);
// 最後畫條線，以 X 軸表示代，Y 軸表示 p；如果「p * 1.01」當中 p 乘嗰個數大過 1，通常條線會係一條有好多起起跌跌、但總體偏升嘅線。

自私基因論
進化博弈論
可進化度
抗藥性

攷

進化論