にたまごほうれん草ブログ

はてなダイアリーから移行したブログ。以前のはこちら→http://d.hatena.ne.jp/emergent/

8月27日のあれこれ

今日のひとこと

  • 修士時代の研究室の先輩の職場に遊びに行った。本がいっぱいあって楽しかったな。
  • Project Eulerでの初歩的な関数でバグってたのはちょっと恥ずかしい

今日やったこと

  • 運動
    • ラジオ体操
  • 勉強
    • Project Euler解答(Python:23)→約数を求める関数で致命的ミスをしておりドハマリ
  • その他
    • 「ひとこと」欄に記載の某所に遊びに行く
    • 帰りに現職場に行って荷物を持って帰る

学んだこと・困ったこと・共有したいこと

  • 学)Project Eulerといえども(?)、ハマらないようにちゃんと関数はテストしよう

恥ずかしさの共有

github.com

def getDivisors(x):
    dv = []
    for i in range(1, int(math.sqrt(x))+1):
        if x % i == 0:
            dv.append(i)
            dv.append(x // i)
    return list(set(dv))

上記はバグ改修版。↑の、

range(1, int(math.sqrt(x))+1)

range(1, math.ceil(math.sqrt(x)))

としていたので、平方根を抽出できなかった、というオチ。 過去に使ってた関数の使い回しで、他の問題では偶然にも答えに影響しなかったのが、問題解決に時間がさらにかかってしまった要因でもある。

…ちゃんと関数をテストしよ。