2011-12-17 22 views
1

私はコードを割り当てる(Javaを使用していますが、問題はないと思います)生物学のような継承のシミュレーション/モデルOOPではなく、あなたが知っている、茶色の目/髪の父、黒い目/髪のものなどのもの。「生物学」継承のグラフィカル・モデル/シミュレーション(OOP継承ではない)

私は2つの困難に直面しています。まずはどうやって始めますか?私はこれまでにシミュレーションをプログラミングしたことはありません。私はJavaを使用しているので、オフラインのシミュレーションではなく、アプレットを使用することも考えましたが、とにかくシンプルなグラフィカルなシミュレーションをコードする方法について、チュートリアルやガイド、説明などがありますか?

第2に、生物遺伝の既存のシミュレーション(ソースコードの有無にかかわらず)はありますか?それは私に正確に何をすべきかについてのアイデアを与えてくれるでしょう。もしそのソースが利用可能であれば、それは非常に有用であるかもしれません。要するに

Q-1どのように正確に、あなたは、グラフィカルなシミュレーションをプログラムするのですか?

Q-2の生物学的継承の既存のシミュレーションは、インターネット上ありますか?

+0

待って、世代を経てゲノムの変化を見せようとしていますか(つまり、青い目の人をすべて殺し、遺伝子がどのように稀になるかを見てください)?あるいは、何らかの種類のランダムなファミリーツリーを生成または解決しようとしていますか? – Lalaland

+0

私は[Mendel](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Dihybrid_cross.png/280px-Dihybrid_cross.png)の行にシミュレーションの種類を作ろうとしています。私。もしエンドウ豆の植物がショートショートと交配すれば、背の高い子孫の割合は3:1になります。ユーザーは2つの植物を子孫の2つの交雑から選び、比率をチェックして出力します。次世代。さまざまな特性を持っています。 – ApprenticeHacker

答えて

1

あなたの問題を解決する方法は私の推測です。

現在の世代のすべての可能な生物を表す生物のリストがあります。

各生物はその遺伝的構成を保存する。あなたは親生物(前世代については気にしない)への後方参照は必要ありません。

ユーザが選択したペアを選択すると、リストをクリアして、これらの2つの生物からなる可能性のある各遺伝子の組み合わせで新しいリストを生成する。

次に、リストを画面に描画し、ユーザーが2つ以上を選択できるようにします。

EDITはまた、ここでは任意のサイズのためにあなたの配偶子をgenereteする方法のランダムなアイデアです。 2進数はすべて0と1をゆっくりと循環します。あなたが0から7まで行った場合、000から111までのすべての組み合わせを調べることになります。したがって、0は左の対立遺伝子、1は右の対立遺伝子であると考えることができます(たとえば、表現101とは、遺伝子型aAbBcCについてのAbCの配偶子を意味する)。したがって、0から2 ^(numOfAlleles-1)(両端を含む)になると、すべての可能な対立遺伝子の組み合わせを生成することができます。これは、どのビットがセットされているかを検出するためにビットシフトを必要とする。

残りの部分は単純にパンネットの四角です。

+0

+1、答えをありがとう。 – ApprenticeHacker