十進法と二進法の数字を並べるとこんな感じです。100めまぐるしく繰り上がりが起こるので忙しいけど、電気で計算するには二進法の方が都合が良いので、コンピュータは二進法を使って計算します。この二進法の足し算の基本となる、一桁の足し算だけをする仕組みを半加算器と呼びます(たまーに二進法以外でも半加算器という言葉を使うらしいです)。具体的に半加算器が出来る計算を書きます。括弧の中は十進法です。(2)という風に、入力が二つの二進数。出力が二桁の二進数になります。呼ぶかと言うと、この半加算器を二つ繋げた物を全加算器と呼ぶからです。wikipediaをみてください。この半加算器を沢山並べると、大きな数の足し算でも出来るようになります。だれが半加算器を発明したのでしょう?とても気になる疑問ですが、実は私も知りません。世紀のパスカルが有名です。パスカルの十進法の加算器と二進法の加算器の間に大きな飛躍があると思うのです。十進法の計算器が人間の計算をただ模倣した物なのに対して、二進法には、論理(ある事実が「ある」か「ない」かを考える事)と計算の同一視という決定的に新しい視点があります。言うと、長年鳥の模倣をして羽ばたき飛行機を作って失敗した発明家が、羽ばたきをやめて始めて上手く飛べたように、計算器が人間の模倣をやめて二進法を採用した事が始めて大規模な計算機に結びついたのです。そんな大切な半加算器ですが、発明者が謙虚すぎたのか同時多発的に複数の人が思いついたのか、発明扱いされていない事は大変残念だと思います。回路)の発明者をご存知の方がいらしたら教えてください!さて、ふつうの半加算器は電子回路で出来ていますが、私が作ってるのはそれを木で作ったモデルです。トランジスタで出来た物も、木で出来た物も半加算器である事に違いは無いので、「モデル」では無くて「本物」の半加算器と言っても良いと思います。このような物に一体どういった意味があるのでしょうか?私の最初の動機は、半加算器の基礎である論理演算について具体的なイメージを心の中に作りたかったからです。論理演算はプログラマに絶対必要な物ですし、今後普通に教養として必要になって来ると思います。論理演算について考えるとき、一般的には比喩として、真偽値と接続詞を使います。「真かつ偽ならば真」とかいうやつです。この方式の欠点は、「かつ」「ならば」という用語が、日常の意味とは微妙に違う事と、二つの論理演算同士の関係を捉える事が難しい事です。Qの否定となりますが、これでは何の事やら分かりません。これをメカ的に作ると、ド・モルガンの法則というのはようするに同じ回路のラベルを変えただけだという事がすぐに分かります。それぞれの真偽値について一つ一つ例を挙げて確認してゆく必要がありますが、人間はすでに機械の動作について心理的モデルが程度出来上がっているので、一旦メカと真偽値の状態を対応してしまえば、あり得る状態の全てを四次元(時間+空間)的スナップショットとして捉えるのは簡単だからです。論理という抽象的な物をメカに変換していく中で、面白い事が沢山ありました。一つ挙げると、半加算器が左右対称形だと言う点です。真理表で書いて下半分を反転させると上下対称になるので、それが反映されているだけですが、普段加算と対称性を結びつけて考えた事がなかったのでちょっと新鮮でした。0論理を機械で作るだけで何か新しい発見があるとは思いませんが、論理を手に触れられる物として作る事で、訓練された人でないと難しい論理の領域に普通の人が辿り着くための強力な手引きになるのでは無いかと思います。これが私が論理機械を作る理由です。8年くらい作っている木製半加算器の最新版です。「からくり計算器」ご報告カラクリ計算器とは何か?月別アーカイブはてなブログをはじめよう!propellaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。