ビスケットのあれこれ

ビジュアル言語ビスケット(Viscuit)に関するあれこれを書いてゆきます.

コンピュータはバカだけどすごい

2016-04-30 12:25:39 | 1
コンピュータとは何かということを言い続けてますが,それ自身ぼんやりした話ですよね.知っている人はなんとなく知っていて,知らない人はまったく知らない.一体何と言われてもぼんやりしたことしか言えない.

ということなので,僕が考えていることを,少しずつ説明してみます.

まず,みんなに知ってもらいたいのは,「コンピュータはバカだけどすごい」という話です.コンピュータの動きってときどき,信じられないくらいバカな動きをしますよね.一方でむちゃくちゃ賢い動きもする.どうしてそうなっちゃうのかということです.

コンピュータはプログラムで動いています.そのプログラムの中身はというと,小さな命令があってそれを組み合わせて一つのプログラムになっています.どれくらい小さな命令かというと,これが人間が考えるよりもずっとずっと簡単な・単純なことしかできません.数を読む,数を書く,数を引く,数を足す,数を比べる.本当にこんなことしかできません(本当にそうです).コンピュータがいろんなことができるのは,いろんなことを数に置き換えているからですけれど,もう一つ重要なことは,単純な命令しか使っていないけれど,それはそれはものすごい数の命令の組み合わせでプログラムにしているからです.10個や100個ではないです.1万個や100万個くらいの命令の組み合わせで動かしています.それがものすごい速さで動いて命令の多さが見えてこないので誤解されるわけです.

コンピュータがバカというのは,単純な命令しか実行できない,ということです.コンピュータがすごいのは,むちゃくちゃ多い命令を高速に実行するからです.コンピュータがバカだというのはプログラムを書く人だけの秘密ですね.

僕が,大人向けの講座でやっているトランプの遊びをご紹介しましょう.これはコンピュータの命令を組み合わせることがどれくらい難しいことなのかということを体験するものです.

2人ペアになって,トランプを5枚配ります.わかりやすいように,5枚のマークは同じものにするとよいです.

トランプを伏せておいて,それを数の小さい順に並べるという課題を,二人で解決します.

一人は命令を出す役,もう一人はコンピュータ役です.

命令出す役の人はカードの数を見てはいけません.コンピュータ役の人にやって欲しいことを言うだけです.

コンピュータ役の人にお願いできることは次のことです.
 カードを動かしてもらう.
 2枚のカードのどちらが大きいかを聞く.


こんな感じですすみます.

a「このカードとこのカード,どっちが大きですか」
b「こっちです」
a「では小さい方のカードをこっちへ,大きい方のカードをこっちへ動かしてください」
b「はい」

a「このカードとこのカード,どっちが大きいですか」

これを繰り返します.

まずは,最短で並び替えるということは考えなくて良いです.というのは,最初にカードがどのように並んでいるかで手数が変わるからです.それよりも,間違わないように慎重にやるようにしましょう.終わったと思ったら,ひっくり返して確認します.コンピュータ役の人はどこで間違ったかを知っているので(でもゲームの途中では言えない)教えてもらいましょう.たった一回のミスが最後まで尾をひきます.コンピュータ側の人からみると「その操作はさっきもやったのに」と思うような無駄なことも,命令する人にはわからないですよね.

何度か役を交代して,間違わないように命令をだすということがどれくらい難しいのかを身を以て体験しましょう.人間とコンピュータの違いがすごくよくわかるとおもいます.

(ぜひ身近な人ととやってみてください.プログラムを知っているからと言って,簡単にできるわけでは無いようですよ)

よく,コンピュータのアルゴリズム的な考え方が重要だ,といった言い方を聞きますけど,そもそもアルゴリズムというのはどういうものでしょう.

実は,この遊びではまだアルゴリズムにまでは到達できていません.命令を出す役の人は,カードがどのように動いたかを観察して,その都度次の手を考えているからです.でも,何度か交代してやっているうちに,必勝法というのがわかってきます.こういう考え方で,こういうときにはこうすればよい,といったことですけど.必勝法が思いつくと,その方法を文章に書くことができます.その文章を読んだ人もまったく同じやりかたで一発で成功できるようになります.この必勝法のことがアルゴリズムなのです.

必勝法ができると,ゲームの間はそのやり方に従って命令を出せばよいだけなので,ほとんど頭を使いません.必勝法を知らない頃はすごく考えていたのに,考えなくても,できるようになります.道具をつかったり(カードを並べた位置に印をつけるとか),カードの並べ方,重ね方などを工夫して,より手順が少なく,頭を使わない必勝法がよい必勝法です.

一方で人間がトランプの数を小さい順に並べる作業を考えてみましょう.人間の場合は,カードが全部表を向いています.なのでパッと見たら一番小さいカード,大きいカードがすぐにわかります.あとは両手を使ってささっと並べ変えれば終わりです.カードの枚数が100枚くらいになったらさすがにそんな簡単にはできませんが,5枚くらいだと本当に簡単です.人間がどれくらい高度で複雑な命令を実行できるかよくわかるとおもいます.

トランプを相手にしてますから一番小さい数が1で,一番大きい数が13ということを知ってますけれど,本当の問題は,数の範囲もわかりませんし,どっちに偏っているかもわかりません.

本当のコンピュータも,ここでやったように2つの数の大小を比べる,数を書く,数を読む,という命令しかできません.それらを組み合わせて,膨大な数を小さい順に並び替えているのです.並び替えるというだけで命令数は1000くらいは必要でしょう.

コンピュータでいろんなことをさせてますね.最近は写真に写っている顔を交換するという面白いアプリが流行っていますが,写真は1点1点の色を数で表してその計算だけで,こういうすごいことをやらせているんですから.

「コンピュータとは何か」の一つとして,コンピュータはどこがバカで,どうしてすごいのか.なんとなくわかりました?


では,次の疑問,何万,何百万という命令を間違わないように組み合わせなきゃないわけですが,それはどうやってやるのでしょう.そういう感じで,コンピュータ入門講座は進んで行きます.

最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
devi_yudis@yahoo.com (Pasang Iklan Baris Gratis Tanpa Daftar)
2018-08-22 16:38:48
私はあなたの記事を読むのが大好き
返信する

コメントを投稿