« 日記 |Main| Pythonで87文字でCollatz角谷問題の(以下略 »

« 日記 | zakki(雑記) | 日記 »

キミならどう書く 2.0 - ROUND 2に食指が動かない件。

キミならどう書く 2.0 - ROUND 2 - — Lightweight Language Ring

def collatz(x):
    if x % 2:
        return x * 3 + 1
    else:
        return x / 2

def numStep(x):
    count = 0
    while True:
        x = collatz(x)
        count += 1
        if x == 1:
            break

    return count

def bruteForce(x):
    return max(map(numStep, range(2, x + 1)))

from time import clock
startTime = clock()
print bruteForce(100) #-> 118
print clock() - startTime #-> 0.016sec

startTime = clock()
print bruteForce(10000) #-> 261
print clock() - startTime #-> 1.9sec

えー。とりあえずプロトタイプを作ってみたのですけど、特に高速化したいという欲求が起きないです。 かといってこんなコードじゃエントリーする気もわきません。

任意の正数 N = 2 ** n - 1 について とりあえず g(k) = h(N) たる k は必ず [x ^ N for x in range(2 ** (n - 1))] の中に存在する。 でもこれじゃぁ大してクールでもなんでもないしなぁ。うーん、萌えない。 PythonでweaveしてみるとかもぜんぜんLLじゃないしなぁ…。Brainf*ckで作るのは二番煎じだし…。


__ とりあえず高速化には萌えなかったので短いコードにチャレンジしてみたら75文字で書けました。でトラックバックをしたのですけど、また2回トラックバックしてしまった…orz

トラックバック(Trackback)

Trackback URL: http://www.nishiohirokazu.org/mt/mt-tb.cgi/178

ご意見・ご感想をお送りください(フィードバック)

(フィードバックはメールで送信され、基本的に表示されませんが、内容によっては公開させていただくこともございます。ご了承ください。Your comment doesn't appear the page immediately. If the comment has value to other people, it will be put on the page or subsequent entries. Thank you.)

上の情報は、いずれも未記入でかまいません。 All of above questions are optional.