開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg Wilson(著)長尾 高弘(翻訳))の9章(集合と辞書)、9.5(練習問題)、14-a, b.を解いてみる。
9.5(練習問題)、14-a, b.
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- import random def sparseAdd(d1, d2): result = d1.copy() for k, v in d2.items(): if k in result: result[k] += v else: result[k] = v return result def sparseDot(d1, d2): result = 0 for k in d1.keys(): if k in d2: result += d1[k] * d2[k] return result def mkDict(): result = {} for l in range(random.randint(1, 5)): result[random.randint(1, 10)] = random.randint(1, 10) return result for i in range(10): d1 = mkDict() d2 = mkDict() print('d1 = {0}\nd2 = {1}'.format(d1, d2)) print('sparseAdd: {}'.format(sparseAdd(d1, d2))) print('sparseDot: {}'.format(sparseDot(d1, d2)))
入出力結果(Terminal)
$ ./sample.py d1 = {9: 8} d2 = {5: 1} sparseAdd: {9: 8, 5: 1} sparseDot: 0 d1 = {1: 5, 2: 6, 3: 7, 7: 5} d2 = {3: 4} sparseAdd: {1: 5, 2: 6, 3: 11, 7: 5} sparseDot: 28 d1 = {10: 10, 2: 6} d2 = {3: 6, 4: 1, 5: 1, 7: 5} sparseAdd: {2: 6, 3: 6, 4: 1, 5: 1, 7: 5, 10: 10} sparseDot: 0 d1 = {4: 6, 7: 9} d2 = {7: 8} sparseAdd: {4: 6, 7: 17} sparseDot: 72 d1 = {8: 2, 1: 1, 2: 4, 6: 1, 9: 1} d2 = {9: 10} sparseAdd: {8: 2, 1: 1, 2: 4, 6: 1, 9: 11} sparseDot: 10 d1 = {7: 6} d2 = {3: 2, 6: 6, 7: 1} sparseAdd: {3: 2, 6: 6, 7: 7} sparseDot: 6 d1 = {8: 9, 3: 7} d2 = {10: 1, 4: 3} sparseAdd: {8: 9, 10: 1, 3: 7, 4: 3} sparseDot: 0 d1 = {9: 1, 2: 2, 4: 9} d2 = {1: 7, 2: 4, 3: 2, 5: 9} sparseAdd: {1: 7, 2: 6, 3: 2, 4: 9, 5: 9, 9: 1} sparseDot: 8 d1 = {8: 7, 1: 7, 4: 4, 6: 7} d2 = {9: 8, 10: 9} sparseAdd: {1: 7, 4: 4, 6: 7, 8: 7, 9: 8, 10: 9} sparseDot: 0 d1 = {3: 1, 6: 8, 7: 7} d2 = {5: 3} sparseAdd: {3: 1, 5: 3, 6: 8, 7: 7} sparseDot: 0 $
0 コメント:
コメントを投稿