2015/11 購入したもの
合計:5858円
せかいいちのねこ
- 作者: ヒグチユウコ
- 出版社/メーカー: 白泉社
- 発売日: 2015/11/20
- メディア: 単行本
- この商品を含むブログを見る
1512円。
よつばと 13
- 作者: あずまきよひこ
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2015/11/27
- メディア: コミック
- この商品を含むブログ (55件) を見る
648円。
猫を助ける仕事 保護猫カフェ、猫付きシェアハウス (光文社新書)
猫を助ける仕事 保護猫カフェ、猫付きシェアハウス (光文社新書)
- 作者: 山本葉子,松村徹
- 出版社/メーカー: 光文社
- 発売日: 2015/11/17
- メディア: 新書
- この商品を含むブログ (1件) を見る
757円。生協の10%割引あり。
スタンフォードの自分を変える教室 (だいわ文庫)
- 作者: ケリー・マクゴニガル,神崎朗子
- 出版社/メーカー: 大和書房
- 発売日: 2015/10/10
- メディア: 文庫
- この商品を含むブログを見る
やる意志も大事だけど、やらない意志っていうのも大事ということ。瞑想してみようかなと思った。
719円。生協の10%割引あり。
荒川アンダーザブリッジ
荒川アンダー ザ ブリッジ(15)(完) (ヤングガンガンコミックス)
- 作者: 中村光
- 出版社/メーカー: スクウェア・エニックス
- 発売日: 2015/11/20
- メディア: コミック
- この商品を含むブログ (3件) を見る
533円(税抜き)。バイトの5%割引あり。
レインツリーの国
- 作者: 有川浩
- 出版社/メーカー: 新潮社
- 発売日: 2009/06/27
- メディア: 文庫
- 購入: 5人 クリック: 101回
- この商品を含むブログ (208件) を見る
430円(税抜き)。バイトの5%割引あり。
WIRED Vol.19
WIRED VOL.19 (GQ JAPAN 2015年12月号増刊) /特集 ことばの未来
- 出版社/メーカー: コンデナスト・ジャパン
- 発売日: 2015/11/10
- メディア: 雑誌
- この商品を含むブログ (1件) を見る
450円。生協の10%割引あり。
footballista 12
- 出版社/メーカー: ソル・メディア
- 発売日: 2015/11/12
- メディア: 雑誌
- この商品を含むブログを見る
809円。生協の10%割引あり。
いつもpandasで忘れること
pandasでデータをフィルタリングする機会が多い。indexがそのままなせいでよくエラーを出してしまうので、忘備録的な。なんて直してたっけ
jsでnew Date()するとき1月は0、12月は11だった。結構ここに時間とられたんご
checkiO - Fibonacci Golf
概要
http://www.checkio.org/mission/fibonacci-golf/
コードゴルフということで、とりあえず動くものを書いて修正して行く方針。
自分のコード
とりあえず書いたのがこれ。長い...
def fibgolf(type, num): if num == 0 and type in [u'lucas']: return 2 if num == 0 and type in [u'perrin']: return 3 if num == 0: return 0 if num == 1 and type in [u'perrin']: return 0 if num == 1: return 1 if num == 2 and type in [u'tribonacci', u'padovan']: return 1 if num == 2 and type in [u'perrin']: return 2 if type == u'fibonacci': return fibgolf(u'fibonacci', num-1) + fibgolf(u'fibonacci', num-2) if type == u'tribonacci': return fibgolf(u'tribonacci', num-1) + fibgolf(u'tribonacci', num-2) + fibgolf(u'tribonacci', num-3) if type == u'lucas': return fibgolf(u'lucas', num-1) + fibgolf(u'lucas', num-2) if type == u'jacobsthal': return fibgolf(u'jacobsthal', num-1) + 2*fibgolf(u'jacobsthal', num-2) if type == u'pell': return 2*fibgolf(u'pell', num-1) + fibgolf(u'pell', num-2) if type == u'perrin': return fibgolf(u'perrin', num-2) + fibgolf(u'perrin', num-3) if type == u'padovan': return fibgolf(u'padovan', num-2) + fibgolf(u'padovan', num-3)
末尾再帰じゃないから時間がかかる&長いため修正。
def fibgolf(type, num): a0, a1, a2 = 0, 1, 1 if type in [u'fibonacci', u'lucas', u'jacobsthal', u'pell']: if type == u'lucas': a0, a1 = 2, 1 while num > 0: if type == u'jacobsthal': a0, a1 = a1, 2*a0+a1 elif type == u'pell': a0, a1 = a1, a0+2*a1 else: a0, a1 = a1, a0+a1 num -= 1 return a0 if type in [u'tribonacci']: while num > 0: a0, a1, a2 = a1, a2, a0+a1+a2 num -= 1 return a0 if type in [u'padovan', u'perrin']: if type == u'perrin': a0, a1, a2 = 3, 0, 2 while num > 0: a0, a1, a2 = a1, a2, a0 + a1 num -= 1 return a0
動いたけど、58点(1000点から引き算式)。最高点610点、なんじゃそりゃ!?
さらに改良。
def fibgolf(type, num): a0, a1, a2 = 0, 1, 1 if type in [u'fibonacci', u'lucas', u'jacobsthal', u'pell']: if type == u'lucas': a0, a1 = 2, 1 while num > 0: if type == u'jacobsthal': a0, a1 = a1, 2*a0+a1 elif type == u'pell': a0, a1 = a1, a0+2*a1 else: a0, a1 = a1, a0+a1 num -= 1 return a0 if type in [u'tribonacci', u'padovan', u'perrin']: if type == u'perrin': a0, a1, a2 = 3, 0, 2 while num > 0: if type==u'tribonacci':a0, a1, a2 = a1, a2, a0+a1+a2 else:a0, a1, a2 = a1, a2, a0 + a1 num -= 1 return a0
99点。
def fibgolf(type, num): [a0, a1, a2] = [2, 1, 1] if type == u'lucas' else [3, 0, 2] if type == u'perrin' else [0, 1, 1] while num > 0: [a0, a1, a2] = [a1, a2, a0+a1+a2] if type==u'tribonacci' else [a1, a2, a0 + a1] if type in [u'padovan', u'perrin'] else [a1, (2 if type == u'jacobsthal' else 1) * a0 + (2 if type == u'pell' else 1) * a1, a2] num -= 1 return a0
337点。
CheckiO - Solve Digit Stack
概要
http://www.checkio.org/mission/digit-stack/
"POP","PUSH","PEEK"を実装。
考えたこと
- 命令別の処理
- stackが空だったときの処理
自分のコード
def digit_stack(commands): stack = [] sum = 0 for command in commands: if command.split(" ")[0] == "PUSH": stack.append(int(command.split(" ")[1])) elif command.split(" ")[0] == "POP": if len(stack) != 0: tmp = stack.pop() sum += tmp else: sum += 0 elif command.split(" ")[0] == "PEEK": if len(stack) != 0: sum += stack[-1] else: sum += 0 print(stack, sum) return sum
クリアできた。
他の人のコード
def digit_stack(commands): stack, sum = [], 0 for cmd in commands: if 'PUSH' in cmd: stack.append(int(cmd.split(' ')[1])) elif cmd=='POP': sum += stack.pop() if stack else 0 else: sum += stack[-1] if stack else 0 return sum
またまた、短いし、やっていることは一緒っぽい...
CheckiO - Verify anagrams
概要
久しぶりにcheckに挑戦。Python始めた頃に練習としてやっていた(約1年前)。
http://www.checkio.org/mission/verify-anagrams/
アナグラム。
考えたこと
必要だと思った処理は以下。
- 文字列を1文字ずつ分割してリストにいれる
- 与えられた文字列をすべて小文字にする。
- 空白を削除
- 何らかの基準でソートして、比較結果を返す
自分のコード
def verify_anagrams(first_word, second_word): res1 = [] first_word = first_word.lower() second_word = second_word.lower() for i in first_word: if i != " ": res1.append(i) res2 = [] for i in second_word: if i != " ": res2.append(i) return (sorted(res1) == sorted(res2))
クリアできた。
他の人のコード
def verify_anagrams(first_word, second_word): return sorted(first_word.replace(' ', '').lower()) == sorted(second_word.replace(' ', '').lower())
短い…、しかもやっていることは一緒。if文使って弾かなくても、replace(' ','')で解決できるな〜。