タグ

ブックマーク / paulownia.hatenablog.com (1)

  • ロシア農民のかけ算とCPU - NullPointer's

    ロシアの農民のかけ算という、かけ算の方法があるらしい。 たとえば9×12ならば、前の数を半分にしていき、後の数を2倍していく。 9 12 4 24 2 48 1 96前の数が2の倍数になってるものを削除して 9 12 1 96残った後ろの数を足すと 12 + 96 = 108あら不思議、9×12の答えになったよコレ。 このロシアの農民のかけ算が何をしているのか調べてみると 9 * 12 = (4 * 2 + 1) * 12 = (4 * 2 * 12) + 12 = (4 * 24) + 12 = (2 * 48) + 12 = (1 * 96) + 12 = 96 + 12な感じに分配法則やら結合法則やら中学校一年で習うような数学テクを使った計算をルーチン化しているものだった。 2倍や半分はシフト演算でできるし、偶数奇数は最下位ビットを見れば分かるので簡単にプログラミングできそう。Jav

    ロシア農民のかけ算とCPU - NullPointer's
  • 1