キンサクプログラマー

お金儲けと技術のメモ

不細工淘汰をシミュレーションしてみる(その1)

昔に比べて世の中に美人があふれている・・・

よくよく考えてみれば不細工よりもイケメン・美女の方が彼氏・彼女ができやすいので、傾向としてイケメン・美女遺伝子の方が残りやすいってことになりそうだ。

 

シミュレーションしてみる

暇なのでシミュレーションしてみる。

モデルの正確さは問わず、視覚的な面白さを重視するためにD3.jsを使ってみる。

各モデルについては追々。

*コードについての指摘は真摯に受け止めます

フィールド

長方形の空間に

男:200

女:200

のノードを配置しランダムな方向に直進させる。壁にぶつかった場合は同じ角度で跳ね返り直進する。(下のサンプルには衝突によって男が消える機能がついている)

 

モデル

モデルにはいくつかの役割が必要。最低限必要な項目として

  1. イケメン・美人度を表すパラメータ
  2. 1に基づいたカップリング判断
  3. 寿命(一定の寿命でフィールドから消える)

があげられる。

1と3については簡単にできそうだけど、2がくせ者ということにだいぶ後になって気づいた。

カップリングの難しさ

単純に考えると「自分のレベルに近しい人とカップリングする」ってのが思い浮かぶ。これは比較的簡単に作れそうだけど、このモデルだと「少数派がカップリングしにくい」っていうだけになってしまう。だからといってあまり恣意的に歪めたモデルを作っても意味が無い・・・

カップリングについてはもう少し考える必要がありそうだ。