2009/3/15
ハネムーンナンバー プログラミング
ハネムーンナンバーについてどこにも載っていないとのご指摘を受けたので、古いパソコンを起動して吸い上げてきました。Wikiフォーマットでみにくいのはご勘弁ください。
0
チームのメンバーが何人ハネムーンに行ってもプロジェクトはだいじょうぶか?
* ハネムーンナンバーはトラックナンバーの代わりに使用します。
* トラックナンバーの定義
* The TruckNumber is the size of the smallest set of people in a project such that, if all of them got hit by a truck, the project would be in trouble.
* トラックナンバーはブラックジョークなので、ちょっと使いにくい。
* 何となくトラックに轢かれる人は少ないほうがいいと思ってしまうので。
* ホントはプロジェクト停止のリスクを低くするために、トラックナンバーは大きくしないといけない。
* トラックナンバーだと、ゴレンジャー型とサイボーグ009型のどちらがリスクが低いかわからないので。
* ゴレンジャー型とサイボーグ009型は下で説明します。
ハネムーンナンバーの定義
* まずトラックナンバーの数学的な定義 ::
M := プロジェクトのメンバー全員の集合
P := M の部分集合全体の集合
Q := { N ∈ P | Nに含まれる全員がトラックに轢かれてしまったらプロジェクトは停止してしまう }
とするとき、このプロジェクトのトラックナンバーを以下の式で定義する。
トラックナンバー := min { Nの人数 | N ∈ Q }
* ハネムーンナンバーの数学的な定義 ::
M := プロジェクトのメンバー全員の集合
m := Mの人数
S := Mの元をすべて並べた順列全体の集合
i.e. S := { a = (a_1, a_2, ... , a_m) | a_i ∈ M (1 ≦ i ≦ m) , a_i ≠ a_j (i ≠ j)}
とする。
S ∋ a = (a_1, a_2, ... , a_m) に対して、関数fを以下の式で定義する。
f(a) := min { n | a_1, a_2, ... , a_n が全員ハネムーンに行ってしまうとプロジェクトは停止する }
このとき、このプロジェクトのハネムーンナンバーを以下の式で定義する。
ハネムーンナンバー := { f(a) | a ∈ S }の平均値
計算方法
* チームのメンバーが順にハネムーンに旅立って行くパターンを全て考え、
何人目でプロジェクトが停止してしまうかの平均値を考える。
* メンバーが桃太郎、犬、猿の三人の場合、順にハネムーンに旅立って行くパターンは以下の6パターン。
* 桃太郎 犬 猿
* 桃太郎 猿 犬
* 犬 桃太郎 猿
* 犬 猿 桃太郎
* 猿 桃太郎 犬
* 猿 犬 桃太郎
* たとえば桃太郎がいないと鬼退治プロジェクトがとまってしまうとする。上のパターンにたいして何人目でプロジェクトが停止するかをチェックすると、、、
* 桃太郎 犬 猿 … 1
* 桃太郎 猿 犬 … 1
* 犬 桃太郎 猿 … 2
* 犬 猿 桃太郎 … 3
* 猿 桃太郎 犬 … 2
* 猿 犬 桃太郎 … 3
* この平均値がハネムーンナンバーである。今回は、(1 + 1 + 2 + 3 + 2 + 3) / 6 = 2 である。
* 最悪値 ・・・ ハネムーンナンバー = 1
* チームの誰がハネムーンに行っても、プロジェクトは続けられない。
* 最良値 ・・・ ハネムーンナンバー = チームの人数
* チームのほとんどがハネムーンに行って、一人だけになっても、プロジェクトは続けられる。
計算例(ヒーロー)
* サイボーグ009の場合
* メンバー:001〜009まで9人
* 主人公の009がいれば番組は続けられるけど、009がいないと番組は停止してしまうと考えると、、、
* ハネムーンナンバー = 5 (上の計算例と同様です)
* ちなみにトラックナンバーは1です。
* ゴレンジャーの場合
* メンバー:アカレンジャー、アオレンジャー、ミドレンジャー、キレンジャー、モモレンジャーの5人
* 誰が抜けてもゴレンジャーとは呼べない。一人でも抜けたら番組は停止するので、、、
* ハネムーンナンバー = 1
* こちらもトラックナンバーは1です。
* トラックナンバーは同じでも、ハネムーンナンバーの観点から見るとサイボーグ009型の方がゴレンジャー型よりも番組停止のリスクが少ない。
* デンジマンの場合
* メンバー:デンジレッド、デンジブルー、デンジイエロー、デンジピンク、デンジグリーンの5人
* 一人でも残っていればデンジマンを名乗れそう、、、
* ハネムーンナンバー = 5 (最良値)
* トラックナンバーも最高の5です。
* ハネムーンナンバーのちょっとした成果
* 戦隊物の番組制作をするときは人数を暗示するようなタイトルをつけると番組停止のリスクが大きい。
* 主人公の名前をタイトルにした方が番組停止のリスクは小さい。
* デンジマンのように人数も主人公の名前も暗示しないようなタイトルをつければ、ハネムーンナンバーは最高になる。
計算例(アイドル)
* ごまっとう
* メンバー:後藤真希、松浦亜弥、藤本美貴
* メンバーの名前を全部入れたチーム名(後松藤)なので、一人でもいなくなると成立しない。
* ハネムーンナンバー = 1 (最悪値)
* 安室奈美恵withスーパー・モンキーズ
* メンバー:安室奈美恵、スーパー・モンキーズ(4人)の合計5人
* 名前からして安室奈美恵がいないと続かないチーム。実際、安室奈美恵がソロになったら他の四人はMAXになった。
* 一方、スーパーモンキーズの4人が全員いなくなって、安室奈美恵だけになってもチームは続かない。
* (関係ない疑問:なぜ安室奈美恵以外がモンキーなのだろう。)
* さらに、スーパーモンキーズは複数人いないと『ズ』にならなくなって、チームが続かない。
* スーパーモンキーズを●であらわすと、ハネムーンに旅立っていくパターンは以下の5パターン。それぞれチームが続かなくなる人数を書いてみると、、、
* 安室奈美恵 ● ● ● ● … 1
* ● 安室奈美恵 ● ● ● … 2
* ● ● 安室奈美恵 ● ● … 3
* ● ● ● 安室奈美恵 ● … 3
* ● ● ● ● 安室奈美恵 … 3
* ハネムーンナンバー = (1 + 2 + 3 + 3 + 3) / 5 = 2.4
* SMAP
* メンバー:中居正広、木村拓哉、稲垣吾郎、草彅剛、香取慎吾の5人
* だれが抜けても、とりあえずSMAPは続きそう。かつて森君が抜けたときも特に問題なくチームは存続した。
* ハネムーンナンバー = 5 (最良値)
誤解
* 「ハネムーンナンバー(やトラックナンバー)が大きいと言うことは、本来いなくてもいい人をチームに入れている事になって無駄だ」という誤解
* ハネムーンナンバーが大きいプロジェクトで、何人かハネムーンにいってもプロジェクトが停止しないからといって
彼らが必要ないというわけではありません。いてくれた方がプロジェクトのスピードは速いはずです。
あくまで彼らが突然ハネムーンに行ってしまっても、プロジェクトは停止しないと言うことです。
* SMAPの森君は不必要だったわけではなくて、いてくれればもっとSMAPが活躍していたはずです。(たぶん)
参考
* http://c2.com/cgi/wiki?TruckNumber
* トラックナンバーの説明。どうやら改善案も出ているみたい。読んでみよう。
* http://www.tv-tokyo.co.jp/anime/cyborg/main_index.html
* サイボーグ009
* http://www.super-sentai.net/sentai/index.html
* スーパー戦隊百科
0