8-4. if( int hoge = 1 ; 100 > hoge ; hoge++ ){
8-4. if( int hoge = 1 ; 100 > hoge ; hoge++ ){
サブタイトルの文字を見て、ピンと来た人は何割いるだろうか。これはjavaやC++等の言語で解釈できるプログラム言語の構文だ。
進化論における、遺伝子変化はゲームやアニメを見ていると、「良い物」とイメージするかもしれない。実際に46億年の地球では、進化というのは「大量の死」と「長い年月」によって生まれた奇跡の産物であることを知らなければならない。
遺伝子異常は10万体に1体、その中で生命機能維持ができぬ「出来損ないの死」が大半であることを知ってほしい。そして、それが住んでいる地域に運良く適合できる可能性が数万分の一、運よく繁殖期まで生き残った後、進化のない普通の種と交わって子孫を残す事で数分の一の狭き門があるのだ。
例えば、羽が綺麗な孔雀。あれの羽が他の鳥と違って進化するまでに、徐々に徐々に大きい個体だけが残されてきた。しかし、急激な進化(羽が大きすぎたり、色が赤になる)することで、その異種的な孔雀は果たしてメスに気に入られるだろうか?あの孔雀の羽が今の4倍に突然変異したら、メスにすかれるだろうか?
そして、その4倍の羽で繁殖期まで肉食動物から逃れられるだろうか。
今の孔雀は、他の生物と競争・共栄するための最適解と言ってよい。短すぎてもメスに好かれず、長すぎても移動が遅くなって食べられてしまう。だから、今の孔雀がこの地球で最適解なのだ。今日、1.10倍の羽の大きさの孔雀が奇跡的に生まれても、それが種として定着するまで何百万年とかかる。だから、今の進化論は「そう仮定している」だけなのだ。実験も再現もしようがない(微生物を覗く)
話を戻そう。
if( int hoge = 1 ; 100 > hoge ; hoge++ ){
この構文をDNAとして、10万分の1のエラーで1文字欠けてしまったとしよう。繰り返し回数がキリンの首を構築する処理として見てほしい。
① af( int hoge = 1 ; 100 > hoge ; hoge++ ){
先頭の文字がiからaになると、構文エラーで出来上がる生物はこのプログラムが実行できず死産する。キリンは生まれることなく、死産・流産する。
②if( int hoge = 1 ; 1000 > hoge ; hoge++ ){
なんと! 繰り返し回数が100から1000に増えた!これによりキリンの首が長くなるような突然変異となる。長すぎで生まれたキリンは、首を起こせずに餓死する。程よく良い長さに奇跡的に変異できた種だけが有利に食事と繁殖ができ、結果種が残る。
③if( int hoge = 1 ; 100 >> hoge ; hoge++ ){
真ん中の条件文に>が加わり、100回が7回に減ってしまう。100の左ビットシフトに意味が変わってしまう。この回数減少が住んでいる地球に適していれば、生存し進化扱いになり、合わないなら死ぬ。キリンの例では、高い枝だけ新鮮な葉があるアフリカではこの突然変異は死を意味する(高い枝を食べられない)が、アマゾンの密林で、低くて顔で掘り起こして餌を食べる環境であれば、100が7に減り首が短くなったことで良くなるかもしれない。しかし、この構文では前の意味とは違うため、100という数値の微妙な変化が後で突然変異で起きても影響が小さくなってしまう。そういう点では、この先「進化で適応しにくいDNAに進化した」ことになる。頭打ちの変異である。
④if( int hoge = 1 ; 105 > hoge ; hoge++ ){
偶然100が105に突然変異した。サバンナでより長い首ほど生き残りやすい環境では、この書き換えが一番都合の良い進化となる。このプログラムでは35文字前後の中で、100の中で微増する数値が選ばれるのは数兆分の1かもしれない。
まとめると、①はDNAの構造エラーで流産 ②はでかくなりすぎて死 ③は内容が変わって短くて死(環境によっては有利に) ④はサバンナではベストの異変 となる
突然変異の10万分の1の中で、ランダムに文字を変化させる条件では①の構文エラーが大半になるだろう。そして「首を伸ばしたいから進化した」ように見える④の進化がいかに低い確率化わかっただろうか?
SSRの0.01%のガチャなどとは日にならないくらいの超低確率で環境に適した異変と種の存続、結果進化したとみられる形がこれである。ガチャ1回10秒とは比較にならないの長い年月(数億年)の交配による数の暴力が、今の絶滅を含めた種族の進化なのだ




