第5話 こんぱいら?
文字数 1,741文字
※本話は内容に偏りがあります。
(5)こんぱいら?
お菊さんは武に原子を操作する方法を説明し始めた。
「まず、この世界には魔法なんていう非科学的なものは存在しないの」
「この前まで、自分のことを雪女とか妖怪とか言ってた人のセリフとは思えない・・・」
武はボソッと言った。
「仕方ないでしょ。説明するのが面倒だったから。悪気は無かったのよ」
そう言って、お菊さんは『ごめんね』のポーズをした。
「別にいいよ。それで、原子の操作はどうするの?」
「そうね。水を作る場合は、水素原子2つと酸素原子1つを合成するよね?」
「そうだね」
「原子を操作する時に必要なのは大きく2つ。1つ目は、水素原子と酸素原子の情報」
「だろうね」
「2つ目は、水を生成するためのプログラムね」
「プログラム?」
「ええ、プログラム。例えば、水を作る場合、チマチマと水素原子2つと酸素原子1つを合成しても、大した量を作れない」
「水素原子2つと酸素原子1つを合成してできるのは水の分子1つだけ。そういうこと?」
「そうよ。1グラムの水を作るのに、水素原子2つと酸素原子1つを何回合成しないといけないと思う?」
「急に難しい問題を出してくるなー」
「頭の体操よー」お菊さんは楽しそうだ。
武はお菊さんの出した問題の答えを考え始めた。
水素原子の原子量が1、酸素原子の原子量が16。だから、水(H2O)の原子量は18だ。
「水18gで1molだ。アボガドロ数(6×10^23)を使うと、(6×10^23)÷18だな。だから、1gの水を作るためには、3.3×10^22回の合成が必要?」
武は計算結果をお菊さんに確認する。
「そうね。330垓(がい)回ね。普通の人は一生掛かっても水1g作れないわね」
「僕の人生はそんなに短いのか・・・」武はしみじみと言った。
「だから、水を生成するためのプログラムを使うのよ」
「どうやるの?」
「一番簡単な方法はコンパイラを使うの」
※コンパイラ(compiler)とは、人間が書いたコンピュータプログラムをコンピュータが実行や解釈できる形式に変換するソフトウェア。
「こんぱいら? あの、コンパイラ?」
「そうよ。見せた方が早いわね」
お菊さんはそう言うと、武の目に手をかざした。
すると、武には簡単なコード(下記)が見えた。
<水の生成>
==========
$j = 10 // 回数
$a = H; // 水素原子の情報
$b = O; // 酸素原子の情報
// $x = $a * 2 + $b; // 水分子
// for ($i = 1 *******) {
// $x .= $x;
// }
// print $x;
==========
※表示が変になるため『*』に変更しています。
「え? これコードだよね?」
「そうよ。これは水素原子2つと酸素原子1つを合成して水の分子を作って、それを2^10回繋げているの」
「じゃあ、水を出すのはprint?」
「そうよ。無詠唱の魔法みたいでしょー」お菊さんは得意そうに言った。
「分かるよ。分かるんだけど、ファンタジーのイメージが崩れていくなー」
武は少しショックを受けている。
お菊さんはガッカリした武を見かねて言った。
「試しに、これで水を出してみようか?」
― これで水がでるの?
武の科学者のクローンだ。一気に機嫌が直った。
「うん!」武は勢いよくお菊さんに言った。
「いくよー」お菊さんはそう言うと、手を上げた。
“じわっ”
お菊さんの手が湿った。
2^10個の水分子ではこれくらいだろう・・・
「手が湿ったね!」武はテンションが上がっている。
「回数を増やせばもっと水が出るんだけど、ここだと危ないから・・・」
お菊さんは申し訳なさそうに言った。
「別にいいよ。原子操作のイメージが分かったし。原子の情報とプログラムかー」
「原子を構成している陽子・電子・中性子も同じ理屈で操作できるわ。でも、処理する内容が原子よりも複雑になるから、処理速度が速くないと使い物にならないね」
「パソコンのCPUみたいだな。じゃあ、扱える原子量はパソコンのメモリみたいなもの?」武はお菊さんに聞いた。
「いい例えね。その通りよ。実行するまでの間、作成した原子量を保持しないといけないから。スペックが重要なのよね」とお菊さんは説明した。
スペックか・・・
(5)こんぱいら?
お菊さんは武に原子を操作する方法を説明し始めた。
「まず、この世界には魔法なんていう非科学的なものは存在しないの」
「この前まで、自分のことを雪女とか妖怪とか言ってた人のセリフとは思えない・・・」
武はボソッと言った。
「仕方ないでしょ。説明するのが面倒だったから。悪気は無かったのよ」
そう言って、お菊さんは『ごめんね』のポーズをした。
「別にいいよ。それで、原子の操作はどうするの?」
「そうね。水を作る場合は、水素原子2つと酸素原子1つを合成するよね?」
「そうだね」
「原子を操作する時に必要なのは大きく2つ。1つ目は、水素原子と酸素原子の情報」
「だろうね」
「2つ目は、水を生成するためのプログラムね」
「プログラム?」
「ええ、プログラム。例えば、水を作る場合、チマチマと水素原子2つと酸素原子1つを合成しても、大した量を作れない」
「水素原子2つと酸素原子1つを合成してできるのは水の分子1つだけ。そういうこと?」
「そうよ。1グラムの水を作るのに、水素原子2つと酸素原子1つを何回合成しないといけないと思う?」
「急に難しい問題を出してくるなー」
「頭の体操よー」お菊さんは楽しそうだ。
武はお菊さんの出した問題の答えを考え始めた。
水素原子の原子量が1、酸素原子の原子量が16。だから、水(H2O)の原子量は18だ。
「水18gで1molだ。アボガドロ数(6×10^23)を使うと、(6×10^23)÷18だな。だから、1gの水を作るためには、3.3×10^22回の合成が必要?」
武は計算結果をお菊さんに確認する。
「そうね。330垓(がい)回ね。普通の人は一生掛かっても水1g作れないわね」
「僕の人生はそんなに短いのか・・・」武はしみじみと言った。
「だから、水を生成するためのプログラムを使うのよ」
「どうやるの?」
「一番簡単な方法はコンパイラを使うの」
※コンパイラ(compiler)とは、人間が書いたコンピュータプログラムをコンピュータが実行や解釈できる形式に変換するソフトウェア。
「こんぱいら? あの、コンパイラ?」
「そうよ。見せた方が早いわね」
お菊さんはそう言うと、武の目に手をかざした。
すると、武には簡単なコード(下記)が見えた。
<水の生成>
==========
$j = 10 // 回数
$a = H; // 水素原子の情報
$b = O; // 酸素原子の情報
// $x = $a * 2 + $b; // 水分子
// for ($i = 1 *******) {
// $x .= $x;
// }
// print $x;
==========
※表示が変になるため『*』に変更しています。
「え? これコードだよね?」
「そうよ。これは水素原子2つと酸素原子1つを合成して水の分子を作って、それを2^10回繋げているの」
「じゃあ、水を出すのはprint?」
「そうよ。無詠唱の魔法みたいでしょー」お菊さんは得意そうに言った。
「分かるよ。分かるんだけど、ファンタジーのイメージが崩れていくなー」
武は少しショックを受けている。
お菊さんはガッカリした武を見かねて言った。
「試しに、これで水を出してみようか?」
― これで水がでるの?
武の科学者のクローンだ。一気に機嫌が直った。
「うん!」武は勢いよくお菊さんに言った。
「いくよー」お菊さんはそう言うと、手を上げた。
“じわっ”
お菊さんの手が湿った。
2^10個の水分子ではこれくらいだろう・・・
「手が湿ったね!」武はテンションが上がっている。
「回数を増やせばもっと水が出るんだけど、ここだと危ないから・・・」
お菊さんは申し訳なさそうに言った。
「別にいいよ。原子操作のイメージが分かったし。原子の情報とプログラムかー」
「原子を構成している陽子・電子・中性子も同じ理屈で操作できるわ。でも、処理する内容が原子よりも複雑になるから、処理速度が速くないと使い物にならないね」
「パソコンのCPUみたいだな。じゃあ、扱える原子量はパソコンのメモリみたいなもの?」武はお菊さんに聞いた。
「いい例えね。その通りよ。実行するまでの間、作成した原子量を保持しないといけないから。スペックが重要なのよね」とお菊さんは説明した。
スペックか・・・