新しく発言する  EXIT  インデックスへ
素数セミのシナリオについて

  素数セミのシナリオについて 会社員 2007/12/03 00:06:24 
  個人的見解:予定調和組み 小塚貞典 2007/12/03 16:21:09 
  │└生成消滅演算子 小塚貞典 2007/12/13 23:08:22 
  蝉の生い立ちを考えると、 山中和義 2007/12/05 15:15:09 

Re: 素数セミのシナリオについて  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2007/12/05 15:15:09
蝉の生い立ちを考えると、

*3年ゼミの場合
 0年目 卵 ※蝉の成虫が産卵する
 1年目 幼虫
 2年目 幼虫
 3年目 幼虫→成虫→卵 ※周期発生
 4年目       幼虫
 5年目       幼虫
 6年目       幼虫→成虫→卵 ※周期発生
 7年目             幼虫
  :
  :
となり、このような蝉の「状態」(状態遷移)がみえる。

この状態に対して(卵→幼虫は考えないとすると)
 幼虫
 幼虫→成虫
 成虫
 成虫→卵
の箇所(「状態」とその遷移)で、確率的な「作用(数の増減など)」が考えられる。
たとえば、幼虫なら寄生虫による死滅など。


このように、「状態」ごとにまとめていくことで、シナリオをタイミングも含めて
抜けなく・明確に組み込むことができると思います。



たたき台のサンプルを掲載しておきます。


!素数ゼミのシミュレーション

LET N=20 !年数
DIM semi(N),kiseicyu(N) !各年数の蝉、寄生虫の数
MAT semi=ZER
FOR i=1 TO N
!LET kiseicyu(i)=8E7 !2年蝉
!LET kiseicyu(i)=5E7 !3年蝉
!LET kiseicyu(i)=2E7 !5年蝉
!LET kiseicyu(i)=1E7 !10年蝉
LET kiseicyu(i)=6.5E6 !17年蝉 ※固定
NEXT i

DEF p(g)=MOD(g,N)+1 !テーブル内の位置を求める
DIM timeTBL(N,N) !発生のタイムテーブル ※(世代,年数)=発生する数
MAT timeTBL=ZER


!初期状態
LET timeTBL(1,1)=1E8 !1年蝉1億匹 ※1)
LET timeTBL(2,2)=1E8 !2年蝉1億匹

LET g=0 !経過時間(単位:年)

DO !時間を経過される

!!!PRINT "年=";g, p(g)
!!!MAT PRINT USING(REPEAT$("###,###,###,### ",N)): timeTBL !トレース

!幼虫の過程 ※1年後、卵は幼虫へ
FOR i=1 TO N
FOR j=0 TO i-1 !N年間
IF RND<0.5 THEN !寄生確率
LET timeTBL(p(g+j),i)=MAX(timeTBL(p(g+j),i)-kiseicyu(i),0) !※2)、8)
END IF
NEXT j
NEXT i


FOR i=1 TO N !羽化(周期発生)
LET semi(i)=INT(timeTBL(p(g),i)*0.5) !※7)
LET timeTBL(p(g),i)=0
NEXT i

  │└つづき 山中和義 2007/12/05 15:15:57 
  ただいま自力でプログラムを作ってますので 会社員 2007/12/19 00:27:40 
   ├途中ですが、中間報告です突然変異考慮して... 会社員 2007/12/29 06:50:22 
   ├!(つづき) 会社員 2007/12/29 06:51:44 
   ├!(つづき2) 会社員 2007/12/29 06:53:31 
   └!(つづき3) 会社員 2007/12/29 06:54:31 

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。