血液型遺伝の理解
cs50のYoutube動画「血液型遺伝の理解」について要点と要約をまとめました
3つの要点
- 要点1
血液型遺伝をC言語のプログラムでシミュレートする実験に焦点が当てられています。 - 要点2
人々とその親、およびアレルを表すためにtypedefを使用したカスタムのデータ構造が作成されます。 - 要点3
プログラムには、家族を作成するための関数、家族の系図を表示するための関数、ランダムなアレルを生成するための関数、割り当てられたメモリを解放するための関数が含まれています。
要約
血液型遺伝の遺伝を理解する
この実験では、C言語で血液型遺伝をシミュレートするプログラムを作成する課題です。血液型は、A、B、Oの3つのタイプの遺伝子であるアレルの異なるバージョンによって決定されます。各人は、同じアレルまたは異なるアレルを持つ2つのアレルを持っています。親が子供を持つとき、彼らはランダムに1つのアレルを受け継ぎます。
遺伝をシミュレートするためのデータ構造の作成
人とその親の関係を表すために、カスタムのデータ構造が必要です。typedefを使用して、”person”という名前の構造体を作成します。この構造体には、親への2つのポインタの配列とアレルを表す2つの文字の配列があります。例えば、血液型がAOの子供は、alleles[0]に’A’が格納され、alleles[1]に’O’が格納されます。親のポインタはそれぞれの親を指します。
プログラムの機能と実装
プログラムの主な機能は、乱数生成器を初期化することから始まります。次に、指定された世代数で家族を生成するためにcreate family関数を呼び出します。print family関数は、家族の系図と血液型を表示するために使用されます。random allele関数は、ランダムにアレルを生成するのに役立ちます。家族を作成した後は、割り当てられたメモリを解放するためにfree family関数が実装されます。
実験の完了手順
最初のステップは、create family関数を完成させることです。これには、新しい人物のためのメモリを割り当て、必要に応じて以前の世代を再帰的に生成することが含まれます。アレルは親からランダムに受け継がれます。1つの世代のみが生成される場合、親のポインタはnullに設定され、アレルはランダムに生成されます。最後に、割り当てられたメモリを解放するためにfree family関数が書かれます。最初に親、次に子供から解放されます。
▼今回の動画
編集後記
▼ライターの学び
この実験を通じて、血液型遺伝の仕組みを理解することができました。また、C言語を使用して遺伝をシミュレートする方法についても学びました。
▼今日からやってみよう
今日から、自分の家族の血液型遺伝をシミュレートするためのプログラムを作成してみましょう。C言語の基本的な文法とデータ構造を学びながら、遺伝の仕組みを実際にプログラムで再現することができます。