« 2009年6月 | メイン | 2009年8月 »

2009年7月25日

golf.shinh.orgの出題ミスの件

TAKESAKOさんの指摘にもあるように出題ミスみたいです。私も間違いに気づいて、強引に解答した感じ。で、正しい動きをするコードをどっかに載っけたかったのでここに書く。現状165B。

$c[0]=[];for$i(1..300){print"$i: ".(join" ",@{$c[$i]=(sort{o(@$a)<=>o(@$b)}map[sort{$b<=>$a}$_,@{$c[$i-$_**2]}],1..sqrt$i)[0]})."
"}sub o{$u=$#_*301;$u+=$_ for@_;$u}

ある数字に対する解答配列のサブセットが、必ず別の数字の解答配列になっているのでそれを利用して解いています。

でも、この問題だけど、63の時に解が二つ存在するみたいです。そうなる組み合わせがあるんじゃないかとは思っていたんだけど。その辺すぎゃーん氏のエントリに書かれています。

golf.shinh.orgは知ってはいたんだけど、@sugyan氏のTwitterを追いかけていて面白そうだったので、ちょっとはまっている。Twitterやってて最近では一番良かったことかも。次の問題もアップされたので解いてみようと思う。

ちなみに、ラングトンの蟻はどう書く.orgに投稿したんだけど、他の人の書いたコードを見られてかなり勉強になった。なでしこのコードとかもあって面白かった。

01:49 | トラックバック

2009年7月10日

JavaScriptでラングトンの蟻

『単純な脳、複雑な「私」』を読んだのだが、その中に出てきた「ラングトンの蟻」が面白そうだったので実装してみた。

「run」を押すと動き出しますが、IEだと遅すぎて使い物にならないので押さないように注意。少し時間がかかりますが、カウントが10000を越えたあたりから急に動きが変わります。マシンスペックにも寄りますが終わるまで大体賞味1分くらいかな。ちなみに、スペックが貧弱なパソコンだとCPUをぶん回している状態になると思うので注意。

ソース

いやー、ちゃんと動いてますね。ちゃんと動いたときは我ながらちょっと感動しました。

ラングトンの蟻と言うのは、存在が環境に影響を与え、環境が存在に影響を与えるというモデルで、非常に単純な規則ながら面白い動きをします。最初はデタラメに動いていたものが、ある段階から急に規則的に動き出すというものです。

具体的な規則は、下記の繰り返しです。これだけです。

  1. 一マス動く
  2. 入ったマスが白だったら黒に、黒だったら白にマスの色を変える
  3. 入ったマスが白だったら右に、黒だったら左に方向転換

ちなみにこのプログラム、ビットマップ的な表現をするために、divボックスの中に3ピクセル幅のdivボックスをfloatで敷き詰めて、その背景色を変化させるってやり方をしてるんだけど、やっぱこれって効率悪いのかな?もっと良い方法があったら知りたい。

久し振りにスクラッチからJavaScriptを書いたので面白かった。そしてIEの遅さに改めて唖然とした。

00:19

2009年7月 7日

恋愛は複雑系

恋愛は要素還元主義的な視点では捉えられません。むしろそういった視点は恋愛においては余計なフィルターにさえなります。

恋愛の上では自分の「異性の好み」なんてのは当てにならないということです。逆に自分の好みを既定してしまうと、その先入観が、ニュートラルな判断を阻害する恐れがあります。

例えば要素還元した私の異性の好みを挙げると以下のようになります。

  • 背が高い(自分より高いくらいが最高)
  • 年上
  • 巨乳
  • 知性的で理性的

さて、実際の私の恋人はどうでしょう。

  • 身長153cm
  • 6歳年下
  • 普通より少し小さめ
  • そこそこ知性的で、比較的理性的だが、私の前ではあまり理性的じゃないときも多い。そもそも恋愛において相手に理性的な部分を求めるのはおかしいとも思う。理性をひっぺがしてナンボ。

つまり、真逆に近いのです。それは実は恋人にしても同じ事で、彼女はマッチョな肉食系が好きなんですが、私はてんで細っちい草食系で草食系万歳だったりするわけです。

それでも、もし今仮に身長171cm、32歳、Fカップのキャリアウーマンが私を好きになってくれたとしても、間違いなく今の恋人を選ぶでしょう。恋人にしても同じ。理由は分からないけど、そうすることがベストだってことはお互い分かる。

また、自分の好みに拘っていたら、今の恋人を選ぶことは出来なかったでしょうし、結果自分の好みに適合したそこそこの相手を選ぶ事になっていたでしょう。その場合「自分の選択は満足のはずなんだけど何だか納得できない」という状態になっていたのではないかと思う。

年収イクラ以上とか、身長何センチ以上とかそういうところに拘るとろくな結果にならないってことです。まあ、結婚相手は条件絞って決めて、恋愛相手はまた別ってのはアリだとは思うけどね。

「私のどこが好き?」という問いも、恋愛が複雑系である以上答えようがありません。例えば巨乳な恋人が好きだったとしても、乳癌で切除手術をしたら嫌いになるかと言えばそんなことはありません(あってはなりません)。

逆に些細な行動が恋愛を破局に導くことがあります。これも複雑系で説明がつきます。初期条件を少し変えただけで、結果が大幅に変わってしまう。そう、カオス理論ですね。

てことで複雑系って言葉は便利ですね。Web2.0並に便利です。皆さんもたくさん使いましょう。

冗談か本気が良くわかんなくなってきましたが、何が言いたかったかと言うと、

今年の12月に結婚します。来年の2月20日に挙式します。

ということでした。6年付き合ってきて、恋人も次で大学卒業なので自然な流れです。最近はその関係で色々忙しかったりします。

20:01