琥珀色の戯言

【読書感想】と【映画感想】のブログです。

【読書感想】でたらめの科学 サイコロから量子コンピューターまで ☆☆☆☆


Kindle版もあります。

「乱数」は、規則性がなく、まとめられない「でたらめ」さに真価がある。
どれだけ完璧な「でたらめ」な乱数が作れるか、サイコロに始まりコンピューターを駆使しての研究が長年続けられてきた。
その乱数は、プロ野球のサイン、核融合人工衛星の設計など、ありとあらゆるところに応用されている。
乱数の理論から応用、将来の展望まで幅広く取材した科学ルポ。

【第1章】 でたらめをつくる
でたらめづくりの歩み/コラム疑似乱数と物理乱数/史上最速のサイコロ/「1+1=0」の異世界にて/円周率は乱数なのか/世界記録を目指した
【第2章】 でたらめをつくる
真実に迫るでたらめ/情報を守る乱数/乱数を売る・操る
【第3章】 でたらめの未来
1000兆個の乱数で/コラム準乱数/物理乱数の夢/進化する乱数 など


 コンピュータのすごさは「乱数」を簡単につくれることだ、というのを、僕がまだ子供だった頃、聞いたことがあるのです。
 何かの順番をなるべく公平に決めようとするとき、じゃんけんやくじ引き、サイコロなどを使うことがあったのですが、じゃんけんの場合、僕は「人は同じ手を続けて出す確率が低いのではないか」と予想していたのです。ドリフの影響で、「最初はグー」で始めるのが常識になっていたので、最初にグーを出したあと、多くの人は、パーかチョキに変えようとするから、チョキを出せば負ける確率は低いはずだ、と。
 もちろん、それで百戦百勝ではありませんでしたが、勝率は5割よりも少し高かったと思います。
 サイコロにしても、ある程度は「1~6、どの目が出る確率も同じくらい」だとしても、そのサイコロのバランスがちょっと重心からずれていたり、ふる人の投げ方の癖みたいなもので、多少、偏りが出てもおかしくないはずです。
 この本では、暗号や品質検査、世論調査など、さまざまな「ランダムであることが必要なものごと」と「なるべく、完全なランダムに近づくための人間の努力」が紹介されていて、大変興味深く読みました。
 
 テレビゲームとかソーシャルゲームのガチャ、パチンコなどをやっていると、これ、公表されている確率と実際の確率は違うんじゃないの?全然当たらないんだけど……と思うことが少なからずあるのです。
 実際のところ、本当に「ランダム」で「完全確率」なのか、というのは、個人の力で検証するのは難しくて、「確率だから、当たらないこともありますよ」と言われれば、それを信じるか、ゲームから降りるしかないわけです。
 コンピュータなら、完全な「乱数」を生み出してくれるかというと、必ずしもそうではない、ということも書かれているのです。コンピュータはすごい速度で乱数を生み出せるけれど、その乱数には「癖」みたいなものがあるそうです。あらためて言われてみれば、僕は「コンピュータが乱数をつくれるおかげで毎回違った展開のゲームで遊ぶことができる」ことは知っていても、「コンピュータは、プログラムで『乱数を作れ』と指示されたときに、どうやってその乱数をつくり出しているのか」を説明することはできません。

 コンピューターでつくる乱数は理想的なものではない。なぜなら、こういった乱数は、プログラムという一定のルールでつくられており、そのうちに同じことが繰り返される「理解」を必ず持ってしまう。そして、必ずしもでたらめとはいえなくなってしまうからだ。
 フォン・ノイマン自身、「四則演算で乱数をつくろうと考える人はもちろん、神に背いている」(Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin.)という言葉を残している。この言葉から、計算で真の乱数をつくるのがどれだけ困難であることかを彼自身が認めていることが読み取れる。
 それでも、コンピュータのプログラムで作るという方法は、安く大量の乱数をつくれるため、需要は高く、改良が進められている。このようなプロフラムによる乱数を、「疑似乱数」と呼んでいる。線形合同法と呼ばれる方法のほか、それを拡張・改良したもの、M系列法と呼ばれるものなどが使われている。


 コンピュータは、「正確な乱数(というのもちょっと変な言い回しですが)」をつくれる、というわけではなく、「安く大量の乱数をつくれる」のが革命的だったのです。


 1950年代から60年代、日本の工業製品の品質が世界で評価されるようになった背景にも「乱数」が関わっていたことが紹介されています。

 乱数のJIS規格「ランダム抜取方法」ができたのは1956年のことだった。現在のJISは、質のよい疑似乱数をつくるコンピュータ―プログラムの規定が中心だが、当時の主役は乱数表。40枚、計8万の乱数が示された。当時からアルゴリズムで疑似乱数をつくる方法は知られていたものの改善の余地が大きく、またコンピューターも非常に高価だった。

「計算機がなかったから乱数表が非常に重要でした。当時、真空管の雑音とかからつくった物理乱数だったと思います」
 そしてこんな記述もある。

 目をつぶって鉛筆を立てて落とし、当たった点一番近い数字を起点として連続3個の数字を読み……。

 せっかく乱数表があっても同じ場所の数を繰り返し使っては、偏った抜き取りにつながる。だからスタートする位置もランダムに変えなければいけないのだ。
「この表現は、今のJISに残っていますけれど、本当に『工場で乱数が使えるようにする』っていうものすごい意図がありますよね。現場で使ってもらう意図がひしひしと感じられるようなものだったのです。『簡単に取りやすいところから取っちゃいけないんだ』ということが徹底的に教育されたんだと思います」
 こうしてでたらめな数字を決め、それを元に抜き取り検査をして、何が偶然か何が偶然でなく起きているのかと見極める。そんな光景が、多くの生産現場で見られたという。ポケットに入る乱数表もつくられた。
「何回か連続して、工場内で管理している製品が劣化していたとなると、『これは偶然じゃない』と。そういうことを現場でみんなが判断していた。『世界にこんな国はなかったんじゃないか』というぐらい、そういう統計的な活動が日本では熱かった。それで『メイド・イン・ジャパン』がブランド化したんです」
 こうして1980~90年代、日本は品質管理でトップを走るようになった。その考え方は「カイゼン」として海外にも広がっていった。


 自分たちにとってラクなやり方に流れていかずに、徹底して「ランダムに製品をチェックする」「正しい確率・統計の知識を現場に応用する」というのが、日本の強みでもあったのです。いま、ネットでデマに踊らされている人たちをみると、コンピュータのおかげで「乱数がつくられる過程」が見えなくなったことは、個々の人間から「統計に対する基礎知識」を奪ってしまったのではないか、と考えさせられます。

 世界中で扱われるデータ量はすごいスピードで増えていて、僕にとっては、すでに信じられないくらい進化しているコンピュータでも、まだまだ処理しきれない、あるいは、処理するのに時間がかかりすぎることがたくさんあるのです。
 そして、コンピュータも、乱数をつくる技術も、まだ、果てしない進化の途中なんですよね。

 2019年10月、グーグルなどの研究チームが英科学誌『ネイチャー』に発表した論文が大きな衝撃を与えた。まだ実用的とはいえないが、量子コンピューターが曲がりなりにも動作し、スーパーコンピューターを遥かにしのぐ計算速度を達成したということだった。
 グーグルの成果が報じられると、暗号資産ビットコインの価格が下落した。ビットコインのお金としての価値は、公開鍵暗号と呼ばれる技術で裏打ちされているが、量子コンピューターが実現すると、この暗号は破られて価値がなくなるといわれる。その思惑からビットコインが売られたようだ。
 グーグルの実験は基礎的なレベルと出ておらず、市場の反応は明らかに過剰だったが、世間の驚きを象徴するできごとではあった。
 これは、ある種の乱数発生の実験だった。
 普通のコンピューターでは、電気の「あり・なし」で1か0かを表現する。ところが量子コンピューターでは1でも0でもあるという「量子ビット」を使い、「1でも0でもある」という状態を使って計算する。
 この状態は「重ね合わせ」と呼ばれ、原子や分子レベルのミクロの世界を支配する量子力学の基本的な考え方の一つだ。量子コンピューターではこの性質を積極的に活用する。


 量子コンピューターがどんなものであるのか、正直、僕には理解が難しかったのですが(ちなみに、この本のなかでは、もう少し丁寧に説明がされています)、「ビットコイン」というのは「新しい技術」だと思われているけれど、もう、世界はその先を見据えているし、このスピードで科学技術が発展していけば、「ビットコインが安全な通貨ではなくなる日」は、そんなに遠くないような気がするのです(何年か前には、仮想通貨が盗まれる事件もありましたし)。もちろん、すぐにどうこう、というわけではないでしょうけど。

 子どもの頃からゲームが大好きで、PC8001の時代から家庭用コンピュータに触れてきた僕にとっては、自分が物心ついたときからだけでも、「ランダムをつくる技術」はこんなに進歩してきたのか、と驚かずにはいられませんでした。
 でも、結局のところ、「これが本当にランダムなのかどうか」って、ひとりひとりの「感覚」では、あからさまなインチキでもないかぎり、わからないんですよね。


アクセスカウンター