« 2008年2月17日

2008年2月19日の投稿

2008年2月20日 »

意味を考えないでめちゃくちゃに文字を打ち込んだプログラムが動く確率はどれくらいあるのでしょうか。

ここ最近いくつか大き目のシステム障害がニュースになりました。プログラムはたった1文字でも間違っていると正常に動作しません。日本語でも「てにをは」を間違えるととんでもない内容になることがありますが、プログラムの場合は一層シビアな反応をすることが多いです。

さてここに128通りの文字を打ち込めるキーボードがあったとします。(本当は英数字+記号くらいですのでもっと少ないはずですが、計算簡略化のためにご容赦ください。)そのキーボードで1000バイトのプログラムを書くとします。(何通りもの記述が可能なはずですが、都合よく1通りのプログラムしかないと想定します。)

この条件で実行できるプログラムができあがる確率はどれくらいあるでしょうか。これは1/128の1000乗ということになります。とても単純に計算できる数ではありませんので常用対数を使いますと、10を底とした0.5の対数は-0.301であることから

(1/128) ^ 1000 = (0.5) ^ (7*1000) ≒ 10 ^ (-0.301 * 7000) = 10 ^ (-2107)

となりました。これがめちゃくちゃに文字を打ち込んだプログラムが動く確率となります。

これはどれくらい悲惨な数字なのでしょうか。無理を承知で開発作業に例えてみたいと思います。1日8時間で365日を休日無しでコーディングに費やしたとして、1秒に1文字の試行を行う方が1人で作業にあたると、その効率は

365*8*60*60 = 10512000 ≒ 10^7 (1年で打ち込むことができる文字数)

となります。すなわち動くプログラムが1年以内に完成する確率は10 ^ (-2100)となります。全然減りません。100億人が100億年かけても

{10 ^ (-2100)} * (10 ^ 10) * (10 ^ 10) = 10 ^ (-2100 + 10 + 10) = 10 ^ (-2080)

でしかありません。どこかで計算おかしくなってたらすみません。それでも等比級数的に大きくなりそうだという感覚は伝わるかと思います。また、2バイトコードを含まない限り、プログラムで使う文字の種類は128個より少なくて済みます。大文字小文字を区別しない言語ならば64bit以下になりそうです。

こんな素敵な考えは私が突然思いつくわけがありませんので元ネタがあります。サイエンスライターの鹿野司さんという方のブログです。

くねくね科学探検日記『6匹のサル』
http://www.blwisdom.com/blog/shikano/archives/2006/03/post_52.html

他にも、下のようなおもしろいエントリをいくつも書いておられます。

ニュータイプとは何者か
http://www.blwisdom.com/blog/shikano/archives/2007/12/post_112.html

象徴兵器・コロニー落とし
http://www.blwisdom.com/blog/shikano/archives/2007/12/post_115.html

このブログで私がおもしろいと思ったのは「人間とはなんて無力で、宇宙に比べてちっぽけな存在なんだ。」という方向に行かずに

まあ、ようするにランダムに文字をうつだけでは、意味があるものを作るのは不可能だってことなのだ。

 それなのに、たいていの人は、非常に高い確率で、まともに読むことのできる文章を書くことができる。それは文字、文法、分脈、意味、作者の感性、その他の、低レベルから高レベルまでの様々なルールによって、確率がどんどん絞られていくからなんだろう。

 一つの文章が産み出される事っていうのは、まさに奇跡といって良いんじゃないかな。

として「文章を書くって素晴らしい事だ」というように感じられるところです。

アセンブラから時代は流れ、ちょっとした処理なら数時間でもプログラムできるようになる言語はたくさんあります。数ヶ月も勉強に専念すればかなり複雑なプログラムを組む事ができるでしょう。プログラムが偶然に動く確率を考えてみると、プログラムを完成させることができるように教える力、それを学ぶ力というのはとても尊いものであるように思います。

というわけで、少しくらいバグがあっても許して下さい。

# この計算の後にこの記事を読むと感慨深いものがあります。

2000億行もの負の遺産――COBOLコードの近代化はどのように進めるべきか (1/3) - ITmedia エンタープライズ
http://www.itmedia.co.jp/enterprise/articles/0801/21/news008.html

yohei

« 2008年2月17日

2008年2月19日の投稿

2008年2月20日 »

» このブログのTOP

» オルタナティブ・ブログTOP



プロフィール

山口 陽平

山口 陽平

国内SIerに勤務。現在の担当業務は資金決済法対応を中心とした資金移動業者や前払式支払手段発行者向けの態勢整備コンサルティング。松坂世代。

詳しいプロフィール

Special

- PR -
カレンダー
2013年5月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
yohei
Special オルタナトーク

仕事が嫌になった時、どう立ち直ったのですか?

カテゴリー
エンタープライズ・ピックアップ

news094.gif 顧客に“ワォ!”という体験を提供――ザッポスに学ぶ企業文化の確立
単に商品を届けるだけでなく、サービスを通じて“ワォ!”という驚きの体験を届けることを目指している。ザッポスのWebサイトには、顧客からの感謝と賞賛があふれており、きわめて高い顧客満足を実現している。(12/17)

news094.gif ちょっとした対話が成長を助ける――上司と部下が話すとき互いに学び合う
上司や先輩の背中を見て、仕事を学べ――。このように言う人がいるが、実際どのようにして学べばいいのだろうか。よく分からない人に、3つの事例を紹介しよう。(12/11)

news094.gif 悩んだときの、自己啓発書の触れ方
「自己啓発書は説教臭いから嫌い」という人もいるだろう。でも読めば元気になる本もあるので、一方的に否定するのはもったいない。今回は、悩んだときの自己啓発書の読み方を紹介しよう。(12/5)

news094.gif 考えるべきは得意なものは何かではなく、お客さまが高く評価するものは何か
自社製品と競合製品を比べた場合、自社製品が選ばれるのは価格や機能が主ではない。いかに顧客の価値を向上させることができるかが重要なポイントになる。(11/21)

news094.gif なんて素敵にフェイスブック
夏から秋にかけて行った「誠 ビジネスショートショート大賞」。吉岡編集長賞を受賞した作品が、山口陽平(応募時ペンネーム:修治)さんの「なんて素敵にフェイスブック」です。平安時代、塀に文章を書くことで交流していた貴族。「塀(へい)に嘯(うそぶ)く」ところから、それを「フェイスブック」と呼んだとか。(11/16)

news094.gif 部下を叱る2つのポイント
叱るのは難しい。上司だって人間だ、言いづらいことを言うのには勇気がいるもの。役割だと割り切り、叱ってはみたものの、部下がむっとしたら自分も嫌な気分になる。そんな時に気をつけたいポイントが2つある。(11/14)

news094.gif 第6回 幸せの創造こそ、ビジネスの使命
会社は何のために存在するのでしょうか。私の考えはシンプルです。人間のすべての営みは、幸せになるためのものです――。2012年11月発売予定の斉藤徹氏の新著「BE ソーシャル!」から、「はじめに」および、第1章「そして世界は透明になった」を6回に分けてお送りする。(11/8)

オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。


サイトマップ | 利用規約 | プライバシーポリシー | 広告案内 | お問い合わせ