(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

コラッツの問題その2

いや、遊んでたら普通に昨日の記録超えた…。

console.time('xxx');

var max = 0,
    val, result;

function collatz2(n){
  var m = n, count = 0;

  while(m !== 1){
    count++;
    m = (m & 1) ? (m<<1)+m+1 : m >> 1;
  }

  return count;
}

for(var i=2; i<=100001; i++){
  val = collatz2(i);
  if(val > max){ max = val; result = i; }
}

console.log(result);

console.timeEnd('xxx'); // xxx: 39ms

結局、配列とかオブジェクトを走査するコストの方がデカイっていうことらしい。
ちょっと後でこれ版の Scheme コード書いてみる。