国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用C語言模擬兩對相對性狀的雜交實驗

2022-04-14 05:45:38孫志濤
中小學實驗與裝備 2022年6期
關鍵詞:表現(xiàn)型配子數(shù)組

孫志濤

湖北省武漢市水果湖高級中學(430071)

1 實驗內(nèi)容分析

“兩對相對性狀的模擬雜交實驗”是浙科版普通高中教科書生物學必修2第1章“遺傳的基本規(guī)律”第2節(jié)“孟德爾從兩對相對性狀的雜交實驗中總結(jié)出自由組合定律”中“活動”部分的內(nèi)容。教科書中用“雄1”“雌1”兩個信封各裝入20張卡片(10張標有“黃Y”的卡片和10張標有“綠y”的卡片),“雄2”“雌2”兩個信封各裝入20張卡片(10張標有“圓R”的卡片和10張標有“皺r”的卡片),從“雄1”和“雄2”中各取一張卡片得到的字母組合代表F1(YyRr)產(chǎn)生的雄配子基因型,從“雌1”和“雌2”中各取一張卡片得到的字母組合代表F1(YyRr)產(chǎn)生的雌配子基因型,然后,將雌雄配子隨機結(jié)合得到F2基因型,再重復多次得到F2的基因型及表現(xiàn)型的比例。

此實驗在重復次數(shù)足夠多時才會比較符合理論比例,其優(yōu)點在于直觀性強,然而要想得到較好的實驗數(shù)據(jù),需要花費較多時間。利用C語言對F1產(chǎn)生配子過程及雌雄配子的隨機結(jié)合進行模擬,可以快速獲得上萬次的模擬實驗結(jié)果,能大大節(jié)約實驗的時間,并能在程序設計過程中鍛煉學生的邏輯思維能力。

2 程序設計思路

本程序基于C語言設計,首先需要使用者輸入需要模擬的受精卵數(shù)量,即F2個體數(shù)量。程序的核心是模擬F1產(chǎn)生配子時的自由組合過程及雌雄配子的隨機結(jié)合。程序中F1的基因型用AaBb表示。程序的總體思路如圖1所示。

圖1 程序的總體思路

3 具體實現(xiàn)方法

利用字符數(shù)組sperm[ ]儲存雄配子基因型,sperm[0]儲存雄配子的A或a基因,sperm[1]儲存雄配子的B或b基因。利用字符數(shù)組egg[ ]儲存雌配子基因型,egg[0]儲存雌配子的A或a基因,egg[1]儲存雌配子的B或b基因。這樣sperm[ ]和egg[ ]就分別代表雄配子和雌配子的基因型了。利用字符數(shù)組zygote[ ]儲存受精卵基因型,zygote[0]和zygote[1]儲存受精卵中的A、a基因,zygote[2]和zygote[3]儲存受精卵中的B、b基因。

3.1 隨機性的實現(xiàn)

C語言的rand( )函數(shù)可以隨機產(chǎn)生一個0到RAND_MAX(至少是32767)之間的整數(shù),在隨機產(chǎn)生的數(shù)中,奇數(shù)和偶數(shù)出現(xiàn)的概率幾乎相同,可以用來模擬F1(AaBb)產(chǎn)生的配子中含A的配子:含a的配子=1∶1,產(chǎn)生的配子中含B的配子:含b的配子=1∶1。只是在每次開始模擬實驗前,要用srand( )函數(shù)設置隨機數(shù)種子,才能使每次產(chǎn)生的隨機數(shù)不同。本模擬實驗中使用〔srand(unsigned)time(NULL)〕來設置隨機數(shù)種子,即通過獲取當前時間將之作為種子值,這樣每次模擬實驗的具體時間不同,就能保證種子值不同,獲得的隨機數(shù)也能不同,充分保證了隨機性。

3.2 模擬隨機產(chǎn)生雌雄配子

通過rand( )函數(shù)產(chǎn)生一個隨機數(shù),當它為偶數(shù)時,模擬F1(AaBb)隨機產(chǎn)生的雄配子中含A,當它為奇數(shù)時,模擬F1(AaBb)隨機產(chǎn)生的雄配子含a,并將該字母存入sperm[0]中。重復上述方法,將隨機產(chǎn)生的B或b存入sperm[1]中。用同樣的方法模擬隨機產(chǎn)生的雌配子,并將其A或a基因存入egg[0]中,將其B或b存入egg[1]中。這樣就得到了隨機產(chǎn)生的雌雄配子,其中字符數(shù)組sperm[ ]代表雄配子基因型,字符數(shù)組egg[ ]代表雌配子基因型。

3.3 各基因型配子的計數(shù)

在C語言中,每個字母都有對應的ASCII碼,A的ASCII碼是65,B的ASCII碼是66,a的ASCII碼是97,b的ASCII碼是98,本模擬實驗利用ASCII碼之和判斷雄配子類型,并進行計數(shù)。當sperm[0]+sperm[1]=131時,說明雄配子基因型是AB,此時將AB型雄配子數(shù)量+1;當sperm[0]+sperm[1]=195時,說明雄配子基因型是ab,此時將ab型雄配子數(shù)量+1;當sperm[0]+sperm[1]=163時,說明雄配子基因型是Ab或aB,再判斷sperm[0]是否為A,若為A則說明雄配子基因型是Ab,此時將Ab型雄配子數(shù)量+1,否則說明雄配子基因型是aB,此時將aB型雄配子數(shù)量+1,然后用同樣方法對雌配子進行計數(shù)。

3.4 模擬雌雄配子隨機結(jié)合

將每次隨機產(chǎn)生的sperm[ ]和egg[ ]拼接起來組合成受精卵基因型來模擬雌雄配子隨機結(jié)合,并將受精卵基因型存入字符數(shù)組zygote[ ]中,存入時,字母A、a、B、b按基因型書寫規(guī)范進行排序,然后再進行儲存。排序方法如下:

先對sperm[0]和egg[0]進行排序,通過sperm[0]-egg[0]的值來判斷受精卵的第1對等位基因是AA、Aa還是aa。當sperm[0]-egg[0]=32或-32時,說明受精卵的第1對等位基因是Aa;當sperm[0]-egg[0]=0時,說明受精卵的第1對等位基因是AA或aa,再判斷sperm[0]是否為A,若為A,則說明受精卵的第1對等位基因是AA,否則,則說明受精卵的第1對等位基因是aa。然后通過賦值的方式將這對基因依次存入zygote[0]和zygote[1]中,這樣就將受精卵的A/a這對基因按基因型書寫規(guī)范存入字符數(shù)組zygote[ ]中對應位置了。

再對sperm[1]和egg[1]進行排序,通過sperm[1]-egg[1]的值來判斷受精卵的第2對等位基因是BB、Bb還是bb。當sperm[1]-egg[1]=32或-32時,說明受精卵的第2對等位基因是Bb;當sperm[1]-egg[1]=0時,說明受精卵的第2對等位基因是BB或bb,再判斷sperm[1]是否為B,若為B,則說明受精卵的第2對等位基因是BB,否則則說明受精卵的第2對等位基因是bb。然后通過賦值的方式將這對基因依次存入zygote[2]和zygote[3]中,這樣就將受精卵的B/b這對基因按基因型書寫規(guī)范存入字符數(shù)組zygote[ ]中對應位置了。

此時,zygote[0]、zygote[1]、zygote[2]和zygote[3]共存儲了4個字母,連起來就是受精卵的基因型,并且形成的字符串的字母順序完全符合基因型書寫規(guī)范。

3.5 各表現(xiàn)型F2的計數(shù)

在C語言中strcmp( )函數(shù)用來比較兩個字符串,并且區(qū)分字母的大小寫,上述字符數(shù)組即可看作字符串,因此可以用strcmp( )函數(shù)依次和各種表現(xiàn)型的基因型進行比較來對各表現(xiàn)型F2進行計數(shù)。當字符數(shù)組zygote[ ]代表的字符串是AABB、AaBB、AABb或AaBb時,A_B_表現(xiàn)型個體數(shù)量+1;當字符數(shù)組zygote[ ]代表的字符串是AAbb或Aabb時,A_bb表現(xiàn)型個體數(shù)量+1;當字符數(shù)組zygote[ ]代表的字符串是aaBB或aaBb時,aaB_表現(xiàn)型個體數(shù)量+1;當字符數(shù)組zygote[ ]代表的字符串是aabb時,aabb表現(xiàn)型個體數(shù)量+1。這樣就能統(tǒng)計各表現(xiàn)型F2的數(shù)目了。然后輸出AB、Ab、aB、ab型雄配子之比,AB、Ab、aB、ab型雌配子之比以及A_B_、A_bb、aaB_、aabb四種表現(xiàn)型之比。

3.6 對比例的處理

當模擬的F2個體數(shù)量小時,可能會出現(xiàn)某種基因型配子數(shù)為0的情況,此時顯示的配子比直接用配子數(shù)量來表示。當各基因型配子數(shù)都不為0時,配子比保留兩位小數(shù)。F2表現(xiàn)型之比也做同樣處理。

4 程序運行效果及優(yōu)點

程序代碼寫好后,可以在開發(fā)軟件中編譯成exe文件,該文件可以拷貝到任意Windows平臺的電腦上運行,方便進行模擬實驗。輸入要模擬的F2的數(shù)量為10 000后,不到4 s便可得到F1產(chǎn)生的雌雄配子比和F2的四種表現(xiàn)型之比,如圖2(a)所示。并且程序中設置了循環(huán),運行程序后即可反復多次進行模擬實驗,不需要通過重啟程序來進行重復實驗。另外還可以把源代碼復制粘貼到手機App“C語言編譯器”,點擊運行即可進行模擬實驗,如圖2(b)所示,使用十分方便。

(a) (b)圖2 程序在電腦和手機上運行圖示

另外,筆者在編寫程序過程中已經(jīng)考慮了模擬數(shù)量自定義的問題,打開exe程序后,會提示“輸入要模擬的受精卵(F2)數(shù)量”,這個數(shù)量可以在模擬實驗者運行exe文件時進行自主設置,無需改動程序源代碼,也無需重新編譯源代碼,這樣大大拓展了程序的可用性,還能快速模擬探究樣本數(shù)據(jù)大小對實驗結(jié)果的影響,讓學生體會進行統(tǒng)計學分析時,樣本數(shù)據(jù)足夠大對實驗結(jié)果和結(jié)論的重要性。

5 總結(jié)

在教學過程中,模擬兩對相對性狀的雜交實驗的重點在于讓學生理解自由組合定律的本質(zhì),即基因型為AaBb的個體產(chǎn)生的AB、Ab、aB、ab型雄(雌)配子之比為1∶1∶1∶1,在本模擬實驗中,也是在保證AB、Ab、aB、ab型雄(雌)配子之比為1∶1∶1∶1及雌性配子隨機結(jié)合的基礎上,即模擬得到了最終的F2表現(xiàn)型之比9∶3∶3∶1,該模擬過程能讓學生深刻理解自由組合定律的實質(zhì)。并且整個程序只需要輸入要模擬的F2個體數(shù)量即可完成模擬實驗。模擬過程中需要學生進行程序設計的總體規(guī)劃,畫出程序設計流程圖,這能鍛煉學生的模型構(gòu)建、歸納與概括、創(chuàng)造性思維等科學思維。對于有編程能力的學生,可以鼓勵他們進行程序編寫,有利于培養(yǎng)學生運用科學的思維方法解決實際問題的能力。

猜你喜歡
表現(xiàn)型配子數(shù)組
JAVA稀疏矩陣算法
電腦報(2022年13期)2022-04-12 00:32:38
獨立遺傳規(guī)律在群體中的應用
JAVA玩轉(zhuǎn)數(shù)學之二維數(shù)組排序
電腦報(2020年24期)2020-07-15 06:12:41
用數(shù)學思維分析遺傳的基本規(guī)律
利用“配子法”建構(gòu)計算種群基因頻率的數(shù)學模型
中學生物學(2017年1期)2017-03-23 12:56:24
兩對基因自由組合變形歸類例析
遺傳學概率問題的求解范圍
分離比偏離 解法有規(guī)律
尋找勾股數(shù)組的歷程
動脈粥樣硬化靶向適配子的親和力篩選
天津市| 安宁市| 上虞市| 金堂县| 安溪县| 丰台区| 延津县| 宁强县| 公安县| 会宁县| 柘荣县| 从化市| 三穗县| 静宁县| 山阴县| 七台河市| 赤水市| 鹤壁市| 临夏市| 高尔夫| 天柱县| 府谷县| 永州市| 盱眙县| 正蓝旗| 秦安县| 平舆县| 黑龙江省| 阳城县| 平江县| 吉木萨尔县| 大方县| 屯留县| 黄梅县| 黄大仙区| 崇义县| 凤山县| 永寿县| 白河县| 隆昌县| 古田县|