yamicha.com's Blog - Presented by yamicha.com
Blog yamicha.com's Blog - 2018/12 の記事
[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]

yamicha.com's Blog
 諸事情により、現在更新休止中。ご了承ください。もし今後ブログを再開することがあるとすれば、その際にはこのブログスクリプトではなく、新しく開発したものによるかもしれません。
 当ブログ管理者についてはこちらをご参照。
開発魔法(737)
社会問題(733)
お知らせ(11)
質問・バトン回答(15)
ゲスト出演(8)
経済・知的財産(150)
ゲーム開発(182)
[Ada] 勝手に補足
- Note
- 金配りの次の一手


- Endless Ultimate Diary
- 銃世界

漢字バトン
- うるる雑記帳
- 漢字接力棒

ツキアイゲノムバトン
- ブログ@うにうに画像倉庫
- あぶ内閣

縺イ縺セ縺、縺カ縺励ヰ繝医Φ
- 月夜のボヤキ
- 騎士サーラバトン
パスワードを使う
名無し (2012/02/27)


開発者解放裁判
yamicha.com (2010/03/14)
Winnyに関しては、私も「純白」とまでは考えておりませんし、使用し..

開発者解放裁判
通りすがり (2010/03/08)
winnyに関しては「ダウンロードソフト板」なんてところを拠点に開発..

新型インフルエンザの恐怖
いげ太 (2009/11/03)
> C#などの「int Some(int , int)」は、F#では「(int * int) ->..

時効に関する思考
yamicha.com (2009/08/31)
>いげ太さんコメントありがとうございます。手元にドキュメントが少..
Homepage
Blog Top
Normal View
List View
Search
Calendar
Comment List
Trackback List
Blog RSS
Send Trackback
Phone Mode
Administrator
yamicha.com
Blog
るううるる。
Source
法令データ提供システム
FindLaw
Development
Java2 Platform SE 6
Java EE 6 API
MySQL Developer Zone
PHP Reference
MSDN Library
Ada Reference Manual
Objective Caml
Python Documentation
Erlang
Prolog Documents
とりあえずブログ
2006/07/20(Thu)18:17:20
 ブログ@うにうに画像倉庫さんよりとりあえずバトンなるものを受け取りました。バトンは何も考えずに書けて良いです。
 曰く

どうやら、元が強制バトンで「脅し文句も付いている」そうですが・・・逆に回答する気が なくなってしまうような気がします

 全くです。脅し文句をつけるバトンなどどういう了見だか。「回さなければひどい目にあうぞ」というバトンと、「このメールを10人に回さなければ、あなたは死にます」と称するチェーンメール、はっきり言って同等です。ということで皆様、快適なインターネット社会の構築のため、強制バトンを受け取った際には、強制条項の削除、あるいは受け取り拒否にご協力願います。また、ご自分がバトンを作る際には、「強制条項のあるバトンはチェーンメールと同じ」という意識を持って当たるようにしましょう。
 それにしても、強制的に受け取らなければならないバトン、負債の勘定ではありませんか。当サイトにとっては「バトン」は資産、「強制バトン」は負債ですが、ややこしいことこの上なし。同じ勘定名を含みつつ、資産になったり負債になったりするものとして、「受取手形」「支払手形」や「当座預金」「当座借越」などがありますが、新しく「バトン」「強制バトン」を含めなければ。
 ということは、バトンをスルーするのは債権放棄ですか。それならまだ良いですが、強制バトンを放棄して「踏み倒し」などと言われましても、私は一体どうすれば。その際は遡及権で次々とバトン譲渡者をさかのぼり、もともと強制バトンを作った人間に対して請求してくださいな。
 それでは、回答に参ります。

・3人くらいに回してみよう。
 前のバトンから間がありませんので、今回は「ご自由にお持ち帰りください」ということで。お持ち帰りの際はTBをどうぞ。

1.ぜひこれを聴いて!を5曲
 おや、またもやカラオケ系ですか。「すごい男の唄」や「金太の大冒険」などと言えばツッコミを受けそうですから、ここはまじめに。五十音順です。

・海岸通
 これはもう、私の好きなタイプの曲の原点です。私の持ち歌には(なぜか)悲恋系が多いのです。フォーク系にそういうのが多いからでしょうか。「結婚しようよ」とかあるじゃないか、とツッコミ入れられると困るのですが。カラオケに行かれたら、1度くらい歌ってみてください。イルカの他、かぐや姫も歌っています。しかし、「イルカ」と書くと割とさわやかですが、漢字で書くと「海豚」。

・君と歩いた青春
 例によって私の好きなタイプの曲です。割と暗く、意味深で。好きな曲を見ていくと、底抜けに明るい曲はあまり多くありませんが、これなど典型です。

・中央フリーウェイ
 後に無料化するという約束で建てたヤツ、どこのどいつだ。それはともかく、私にしてはめずらしく、やや明るい曲です。今ならさしずめ「右に見える金貸し屋の看板、左は不祥事工場」といったところでしょうか。

・無縁坂
 結構暗い曲が好き。とすれば、この曲を入れずして何を入れますか。これも1度はどうぞ。

・別れの予感
 テレサ・テンの曲にしては歌いやすい方ですし、良い曲です。教えて、プログラムが動作しない、その理由。

2.こんな異性に弱い!な5ポイント
 異性というより「こんな人間に弱い」のですが、
・知的な雰囲気のある人(ただしイヤミのある人を除く)
・魔法を使える人(RDBMS魔法でも経済属性でも何でも構いません)
・話が好きな人
・諸分野について、はたから見れば外国語としか考えられないような会話ができる人
・私を「開発者」と見るだけで片付けない人(それは確かに、ブログでは開発と社会が多いですが、スキあらば経済学にも法律学にも数学にも手を出します)

3.人生の失敗を5話
 人生の失敗。何とも大げさな。
・ある暑い日、最大風速で扇風機をかけた状態でチャーハンを食べようとして、塩コショウを山ほどかけたところ、塩コショウが風にあおられてタブレットの上に散乱。ふき取るのにかなり苦労しました。
・先の総選挙にて、自民党が堀江被告を事実上公認。この時点で世論が怒り心頭になり、大反発によって一気に情勢が自民不利に傾くと見ていたら、実際には全く逆であった点。実に痛い予想失敗でした。でも後で堀江被告が没落したのは予想通り。
・先にWindows XP SP2をインストールしてしまう。もちろん起動しなくなり、復旧作業でひどい目にあいました。
 5個もありません。つまらない人生だことで。

4.自分の持っているお気に入りな5つ
・Microsoft IntelliMouse Explorer(そこらの光学マウスとは違います。精度が比べ物になりません)
・ジョッキ(350mlがまるまる入るタイプ。何と210円でした。コーヒーを飲むのに愛用しています。これを売っていたテナント店はもうたたんでしまったようです。いくつか買っておけばよかったと後悔)
・コースター(カップの下に敷くアレです。といっても特別なものではなく、無料配布CDをコースターとして使っています
・献血手帳(ちなみに、初回にのみもらえる小冊子には献血結果を書く欄が用意されています。それは良いのですが、せっかく書いておいたら捨てられました。危なっかしいですから、今ではMySQLとJSPで結果を管理しています)
・開発及びサーバー環境のディレクトリ(今まで作ったもの、実験用プログラムなどがギッシリ。有用なライブラリと化しています)

5.幸せなひととき5つ
・苦労して書いたプログラムが動作した時(ただし幸せなのは動作後10〜20秒ほどのみ。そこから検証作業の嵐、そしてバグが出てガッカリ、の繰り返しです)
・開発中の極限の集中状態の初頭(長期戦になるとストレスが増大してきます)
・コーヒーのひととき
・新しい技術(開発関係に限らない。法でも商でも数学でも)を得た時
・私のブログやプログラムに、他のサイトなどで触れてもらった時

 といったところでしょうか。以前のバトンがまだ残っていますので、今回は回す人を指定しないではおきますが、答えたい方はどうぞお持ちください。

 SQL.81。いつになくハイです。

剣聖ハードゥン「サーラ君!・・・おお、イリアス君も一緒か。助けてくれ」
騎士サーラ「一体どうされたのですか?」
剣聖ハードゥン「師団部隊が動乱状態になって困っているのだ」
魔道士イリアス「ええっ!?大変じゃない。でも、どうして?」
剣聖ハードゥン「あまりのバカバカしさに話す気力もないのだが・・・実は・・・」

師団のニーナ「私、今から出撃なんだ」
師団のメリッサ「ふーん、そう」
師団のニーナ「何といっても、騎士は最も役立つ人間だからねー」
師団のメリッサ「はあ?あたいみたいな天才魔道士を前にして何を言い出すかと思えば・・・。あんたなんか、人数の穴埋めでしょ。大体、騎士より魔道士の方が役に立って、ひっぱりダコってのが分からないかな、このヒトは」
師団のニーナ「な、何てことを・・・。自分こそ、出撃人員に選ばれてないくせに!」
師団のメリッサ「この前のティラー会談の時は同行したけど?」
師団のニーナ「私は、その前後に・・・2、度、も、出撃しました!」
師団のアドルフ「やめたやめた。全く、こんな時にまでケンカなど・・・」
師団のメリッサ「アドルフはどうよ。魔道士と騎士とどっちが役立つように見える?」
師団のアドルフ「どっちでもいいだろう。そもそも、師団で最も重要なのは、俺のような事務屋であって・・・」
師団のメリッサ「ふん、なにさ。こっちも寝言を言ってら!」
師団のニーナ「仲裁する気がないんだったら、どっかに引っ込んでて」
師団のアドルフ「むぅ、そういう自分こそ・・・」
剣士カタリーナ「・・・ハードゥンさん、どうしましょうか・・・」
剣聖ハードゥン「あの分では、下手に仲裁に入ってもとばっちりを食い、話がややこしくなるばかりだ。データを突きつけて、頭を冷やさせるとしよう」

剣聖ハードゥン「・・・というわけだ。あまりのくだらなさに頭が痛くなってきたが、何とかしなければなるまい」
騎士サーラ「しかし、どうやって止めるのですか?」
剣聖ハードゥン「この際、適当に理屈をこねるだけで構わぬ。連中、冷静さをなくしているから、データに反論する理性など持ち合わせていない」
騎士サーラ「はい。しかし、どのように・・・」
剣聖ハードゥン「・・・そうだな。まず、次のようなメンバーがいるとする。騎士、魔道士、事務とも3人ずつだ」
系統	名前
魔道士	イリアス
魔道士	カレン
魔道士	メリッサ
騎士	サーラ
騎士	カタリーナ
騎士	ニーナ
事務	シェリー
事務	ロイド
事務	アドルフ
剣聖ハードゥン「これらのメンバーの中で、どの系統が最も役立っているか、だが・・・」
魔道士イリアス「役立っているも何も、どれか1系統でもなくなったら、かなり辛い気がするけど」
剣聖ハードゥン「うむ、本来そうなのだが、今それを話しても分かるまい。そこで、だ。この9人から3人パーティを作るとしよう。例えば、次のようなパーティが考えられよう」
A.イリアス , サーラ , シェリー
B.サーラ , カタリーナ , シェリー
剣聖ハードゥン「これの人数を系統ごとにまとめると、こうなる」
A.魔道士1人、騎士1人、事務1人
B.騎士2人、事務1人
剣聖ハードゥン「考えられる限りのあらゆるパターンにおいて、騎士、魔道士、事務が何人いるかを調べ、それらの人数の合計数を出して欲しいのだ」
魔道士イリアス「上の場合だと、合計は魔道士1人、騎士3人、事務2人ね。でも、そんなデータを使ってどうやって説得するのよ」
剣聖ハードゥン「これを求めれば、上の9人から3人のメンバーを選ぶ際、それぞれの系統のメンバーがどの程度の確率で入るのかが分かるだろう。例えば上のA及びBのパターンから、くじ引きでどちらのパターンにするかを選ぶとする。その場合の各系統からの選ばれやすさは、両パターンの合計である1:3:2になるであろう?」
魔道士イリアス「そうねぇ・・・。騎士が3人、事務が2人選ばれる間に、魔道士は1人が選ばれる程度、ってことね」
剣聖ハードゥン「パターンについては、順番は問題にしない。つまり、"イリアス,サーラ"と"サーラ,イリアス"は、どちらもイリアス君とサーラ君が入るものであるから、同じとみなす」
騎士サーラ「しかし、全系統から3人ずつということでは、全系統ともに同じ人数になるのではありませんか?」
剣聖ハードゥン「うむ。であるから、以下のような条件をつけるものとする。どれも実際の出撃で用いることの多い条件だ」

・3人パーティである。それ以上でもそれ以下でもいけない
・魔道士はか弱いため、1人以上の騎士の同行が必要である
・事務員はさらにか弱いため、1人の騎士の同行が必要であり、しかももう1人騎士か魔道士を入れなければならない
・騎士が2人以上集まる場合、統率者が必要であるが、上記騎士3人のうち騎士サーラのみがそれを行える。つまり、騎士を2人以上入れる場合は騎士サーラが必要である
・魔道士イリアス以外の魔道士を入れる場合、統率のために魔道士イリアスか騎士サーラ(もしくはその両方)が必要である

剣聖ハードゥン「条件はこんなもので良いだろう。これらの条件を満たしたパターンを全部出し、騎士、魔道士、事務が合計何人かを出して欲しい」
魔道士イリアス「分かったわ」

 さあ、また奇問が出てまいりました。シークェルの魔法でスマートに求めることができるでしょうか。

模範解答
 まずテーブルを作るのですが、条件を満たしやすいようにテーブルを作ることが重要です。今回は、通し番号、名前、系統の他、統率者を表すカラムを入れておきましょう。
CREATE TABLE mem(i INT , n VARCHAR(16) , g INT , c INT) ENGINE=HEAP;

INSERT INTO mem VALUES(1 , 'イリアス' , 1 , 1) , (1 << 1 , 'カレン' , 1 , 0) , 
(1 << 2 , 'メリッサ' , 1 , 0) , (1 << 3 , 'サーラ' , 2 , 1 | 2) , 
(1 << 4 , 'カタリーナ' , 2 , 0) , (1 << 5 , 'ニーナ' , 2 , 0) , 
(1 << 6 , 'シェリー' , 4 , 0) , (1 << 7 , 'ロイド' , 4 , 0) , 
(1 << 8 , 'アドルフ' , 4 , 0);
 といったところでしょうか。「c」カラムで統率に関する条件を管理しています。
 それではクエリを打つとしましょう。まず、これらの条件を満たす組み合わせがいくつあるかを調べるなら、
SELECT COUNT(*) FROM mem m1 , mem m2 , mem m3 
WHERE m1.i < m2.i AND m2.i < m3.i AND 
(!((m1.g | m2.g | m3.g) & 1) OR ((m1.g | m2.g | m3.g) & 2)) AND 
(m1.g = 4) + (m2.g = 4) + (m3.g = 4) <= 1 AND 
((m1.g = 2) + (m2.g = 2) + (m3.g = 2) <= 1 OR ((m1.c | m2.c | m3.c) & 2)) AND 
(!((m1.g | m2.g | m3.g) & 1) OR ((m1.c | m2.c | m3.c) & 1));

// Result
35
 35通りですか。さて、ではそれぞれの人数を求めるには。手作業で数えますか?35通り程度なら、それも良いでしょうが。
SELECT ELT(m1.g , '魔道士' , '騎士' , NULL , '事務') AS '系統' , COUNT(*) AS '人数' 
FROM mem m1 , mem m2 , mem m3 
WHERE m2.i < m3.i AND BIT_COUNT(m1.i | m2.i | m3.i) = 3 AND 
(!((m1.g | m2.g | m3.g) & 1) OR ((m1.g | m2.g | m3.g) & 2)) AND 
(m1.g = 4) + (m2.g = 4) + (m3.g = 4) <= 1 AND 
((m1.g = 2) + (m2.g = 2) + (m3.g = 2) <= 1 OR ((m1.c | m2.c | m3.c) & 2)) AND 
(!((m1.g | m2.g | m3.g) & 1) OR ((m1.c | m2.c | m3.c) & 1)) 
GROUP BY m1.g;

// Result
系統	人数
魔道士	35
騎士	49
事務	21
 この通り、騎士が49人で最も多いことが分かります。

師団のニーナ「ほーら、ほら。だから私は、騎士が最も重要だって言ったのよ!」
師団のメリッサ「くっ・・・」
剣聖ハードゥン「ニーナ君、では今回の出撃では、イリアス君とシェリー君、あと配下の魔道士と事務員を同行させないことにしよう。1人で遂行を頼む」
師団のニーナ「あの、これを1人で・・・?誰か他の騎士は・・・」
剣聖ハードゥン「残念だが、皆出払っている。私もまもなく、サーラ君、カタリーナ君と出なければならないのだ」
師団のニーナ「しかし・・・」
剣聖ハードゥン「師団は魔道士も事務もなければ立ち行かぬのだ。それを、どの系統が優秀で、他の系統は不要だと・・・?それで戦闘に勝てるか?」
師団のニーナ「・・・・・・」
剣聖ハードゥン「分かったであろう。もうナンセンスな争いなどしないことだ」
騎士サーラ「さすがはハードゥンさん、やりますね」
剣聖ハードゥン「うむ、騎士や魔道士に優劣などない。どちらが欠けても成り立たぬのだ・・・。かといって、みんなが1人、1人がみんななどと戯言をぬかし、他人にチームワークを押し付ける愚か者も、同じほど嫌いだがな。やたら優劣をつけたがる人間、チームワークを押し付ける人間など、どういうわけか必ず存在するのだが、ここから全体が崩れた例は枚挙に暇がない」

魔道士イリアス「ふぅ、これでトラブルも解決かしら」
騎士サーラ「あれなら、わざわざシークェルの魔法を使わなくても、適当にデータをねつ造すれば、何とかなっていた気がしますが・・・」
魔道士イリアス「でも、事実無根のデータだと、後でそのデータで確執が起きた時に困るからね。適切な判断なんじゃない?」
騎士サーラ「しかし、これでもう不要な確執は・・・」
剣聖ハードゥン「サーラ君、手を貸してくれ!」
騎士サーラ「今度はどうされましたか?」
剣聖ハードゥン「もうくだらなすぎていい加減嫌になるのだが、今度は男女のどちらが優秀か、だと・・・。バカバカしい、そうそう差があるわけがないだろう・・・」
剣士カタリーナ「あの、ハードゥンさん、あれでは手のつけようがありません」
剣聖ハードゥン「どうしたのだ?」
剣士カタリーナ「どういうわけか、今度は世代間対立まで発生してしまいました。若い人と熟練者、どちらが強いのか、などと・・・」
剣聖ハードゥン「む・・・一体どうなっているのだ・・・」
魔道士イリアス「はぁ・・・。もういいわ。サーラ、ちょっと怒鳴ってきて」
騎士サーラ「えっ!?しかし、イリアスさん・・・」
魔道士イリアス「サーラなら中性だし、若くて熟練者だし、相手も反論できないわよ」
騎士サーラ「しかし、なにも・・・」
魔道士イリアス「いいから!やってくれるわね?」
騎士サーラ「はっ」
剣聖ハードゥン「イリアス君もやるではないか・・・」
魔道士イリアス「霊能者と酔っ払いとバカバカしいケンカには、理屈を言っても通用しないのよ・・・」

 このように、SQLは合計人数まで求められて便利です。
カテゴリ [質問・バトン回答] [トラックバック 0][コメント 0]
<- 前の記事を参照 次の記事を参照 ->

- Blog by yamicha.com -