コラッツの問題その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 コード書いてみる。