【感想・ネタバレ】数学ガールの秘密ノート/ビットとバイナリーのレビュー

あらすじ

※この電子書籍は固定レイアウト型で配信されております。固定レイアウト型は文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。

数学ガールの登場人物が、コンピュータを支えている数学的な原理について楽しみつつ学ぶ数学読み物です。抽象的な解説ではなく、具体的な実例を使って解説していますので、中学生から楽しんでいただける内容になっています。プログラミング教育の必要性が叫ばれる現代において、重要な一冊となるでしょう。

●本書の構成
第1章「指折りビット」では、コンピュータ内部のデータ構造を支える「二進法」について学びます。位取り記数法、十進法と二進法の関係、二進法が作り出す0と1のパターンなどを観察しながら、私たちが日常で使っているものとは異なる数の表記法を発見的に楽しみます。

第2章「変幻ピクセル」では、コンピュータグラフィクスの基本である「ピクセル」について学びます。数が生み出すパターンによって画像を構成する原理を、小さなスキャナとプリンタによって具体的に体験します。また、コンピュータで用いられる「ビット演算」を画像処理と合わせてとらえます。ひとつひとつの手順をコンピュータに実行させるというプログラミングの基礎も学びます。

第3章「コンプリメントの技法」では、コンピュータで用いられる「ビット演算」と「2の補数表現」について学びます。ビット演算と数との関係を考え、計算について自由に発想を広げる経験をします。

第4章「フリップ・トリップ」では、フリップ・トリップという楽しいオリジナルゲームで遊びながら、繰り返しに隠れている数学的な構造を探求します。仲間同士で議論しながら、新しい問題に立ち向かうおもしろさを味わいましょう。

第5章「ブール代数」では、「順序構造」と「ブール代数」について学びます。たくさんのビットパターンをどのように整理するかを調べ、大学で学ぶ離散数学のイメージに触れて本書を終えます。

...続きを読む
\ レビュー投稿でポイントプレゼント / ※購入済みの作品が対象となります
レビューを書く

感情タグBEST3

このページにはネタバレを含むレビューが表示されています

Posted by ブクログ

ネタバレ

 0,1のビットはせいぜいコンピューターが処理するときに使う基本的な仕組みという程度の話で、一体どんな物語をかけるのかなと思いながら読み始めました。

 まずわかりやすい例としてスキャンとプリントの話が出てきて、「F」という文字をスキャンするとき、プリントするとき、ビットのデータを使って行ったり、あるいはちょうど半分で入れ替えたり、外枠だけをアウトプットしたりということをやりました。この外枠だけをアウトプット、というのが難しく、テトラちゃんは隣り合うビットが1のとき(データ出力するとき)真ん中のデータは0に変換すれば外枠だけが出力されるはず、という規則に気が付きました。おしくも縦の枠だけ出力され、横の枠は出力されませんでしたが、基本的にはこの規則を横の枠にもあてはめればよいのでほぼ正解と言えます。リサとテトラちゃんとユーリだけが登場するこの導入はなんとなく微笑ましい感じでした。

 次に補数表現ということを考え始めました。この2進法では符号も含めて0,1で表記する手法があります。例えば4ビットのデータの例で考えると先頭のビットが1の場合はマイナスであると定義します。符号なしデータとしてとらえると1000は10進数の8ですが、符号ありデータとしてとらえると、1000は10進数の-8になります、以降1001は-7、1010は-6、、、、、1111は-1となります。
 これについて僕は符号なしデータがあらわす10進数の算出が分かりにくいことに気づきます。ユーリはリサに教えてもらったとおり、「全ビットを反転して1を足す」と符号なしデータの10進数の算出ができる、と言います。例えば1000であれば
全ビットを反転:0111
1を足す:1000
8になったので-符号をつけてー8であるとわかる。
このような感じです。

次にリサからもらった謎の式について考えます。この謎の式は本書の後半でも出てくる重要な式となっています。
n & -n
これはビット単位の論理積です。
n -n n & -n
0 0 0
0 1 0
1 0 0
1 1 1

nも-nも両方とも1の場合、n & -n が1になるというのが論理積です。

例として
n= 0110の場合 -n=1010となり、n & -n = 0010
(ここでユーリは答えを言いたがりますが僕はゆっくりと例示して考えます、、、)
n=0001の場合、-n=1111となり、n & -n = 0001
これを整理すると、n & -n は4ビット中、1ビットだけが1となる法則があることに気がつきます。
そしてこのnは以下の形で表せることを示します。(ここはなかなか気がつかないと思います、、)
n=2^m*奇数

そしてこのmの値の並びにも規則があるようです・
0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,,,,,(一体どんなルール?★)

次にミルカさんとリサと僕はフリップ・トリップというゲームについて考えます。
4ビットのデータでオセロのように白、黒のパターンを作る。
4つとも白から始める。
1度に1つだけ反転させることができる。
全てのパータンを尽くすとクリア。(フルトリップ)
ただし途中同じパターンを経由するとNG。

これは実際やってみるとなかなか難しかったのですが僕が消去法的に反転を繰り返していくとフルトリップに成功するのですが(ミルカさんは瞬殺、、)どのビットを反転させるかの順番が★に出てきた値の並び通りなのだそうです。

ここでルーラー関数(ρ関数)というものが紹介され、4ビットデータの1があるビットの右側にある並んだ0ビットの数が★と合致することも紹介されます。
さらにハノイの塔の操作順もこの★と合致するというのです。

最後にブール関数というものについて考えます。これはデータ間の順序関係を表すために導入された考え方でした。いくつかあるビットパターンのデータにおいて順序関係がが成り立つにはどのようなルールが成り立っていればよいか。それをやはり4ビットデータを例に考えました。

順序の公理
・反射律:x ≤ x
・反対称律:x ≤ y かつ y ≤ xならば x = y
・推移律:x ≤ m かつ m ≤ yならば x ≤ y
これが成り立てば、それぞれのビットデータ間で順序関係が成り立つと言える。

今回はミルカさんが僕に優しかった気がしましたが、最後の僕が「どこまでいけるんだろう」といったふとした問いかけにミルカさんが「君が望むなら、どこまでも」と答えたのが印象的でした。

0
2022年01月05日

「学術・語学」ランキング