7章「封筒の裏で・・・」 - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの7章。

7.6.1

分からない。

7.6.2

10Mbps と10GB のメモリスティックを10km/h で運ぶ。
ネットワークで 10GB 転送するには 800 秒かかる。
800 秒あれば約 2.5km 進める。

1-2km ならメモリスティックを自転車で届けた方が良い。
でもよく考えれば往復必要だから、500-1km。
つまり目と鼻の先なら自転車。

7.6.3

1秒に 4 byte 打鍵できるとすると、1.44 * 10^6 / 4 = 3.8 * 10^5 Msec
= 3800 * 10^2 sec
= 約 60 * 10^2 min
= 100 時間 = 5 日

7.6.4

命令発行は 0.5 msec 。
ディスク1回転は 3時間 。
名前タイプは約3週間。

7.6.5

X = 10a + b = 9v + w
Y = 10c + d = 9x + y

a + b = 9s + t
c + d = 9m + n

それぞれを引くと
9B = 9 * A + w - t + y - n

となる。

7.6.6

約2倍。

7.6.7

空ループだけ予測してみる。
分岐と加算が n * n 回行われる。ざっくり 100 クロックくらいで可能だとすると。
250 msec くらいか?実際は 170 msec だった。

7.6.8

7.6.9

1 アクセス 10 msec とする。
3600 トランザクションくらい。

7.6.10

統計情報によると 1年で約 6000 人。0.5 %くらいかな。

7.6.12

硬貨が平均して 1 日 2回人の手に渡るとすると。
30 年だと 30 * 365 * 2 = 20000 回手に渡る。
1回触られる毎に 0.001 % 削れていくとすると 20000回で 0.13硬貨になる。まあそんなもんかも。


珠玉のプログラミング—本質を見抜いたアルゴリズムとデータ構造
ジョン ベントリー
ピアソンエデュケーション
売り上げランキング: 5607