Hatena::Diary

桝原翔市::雑記帳 RSSフィード

2009-12-19

ついでなはなし

中学・高校〜浪人のときを思い出すと

¥frac{ac}{gr}=¥frac{ou}{hny}

のときのyを求めよと式変形の問題が出たときに

y=¥frac{guro}{chan}

がぱっと出る人・出ない人って性格に差が出てたような気がする。

さっきの問題の補足

試験問題を解く人(学生さん)は

”a≦b≦c≦d のときは(d-a+1)点、それ以外は0点”

得点が1点となる確率を求めよ。

と言われた時点でカードが何枚入っていようと

(d-a+1)=1, d=a, a ¥leq b ¥leq c ¥leq d

なんだから

a=b=c=d (すなわちぞろ目)

であることに気づきましょう

x枚のカードが入っている場合の確率は

¥frac{x}{x^{4}}=¥frac{1}{x^{3}

となります。

オヤジが持ってた塾生向けの数学の問題を解いてみる

高校1年生の問題だそうで。

■ 問題

袋A,B,C,Dがあり、それぞれに4枚のカードが入っている。

袋のカードには1から4までの番号がつけられている。

袋A,B,C,Dからカード1枚ずつ取り出し、出た数をそれぞれa,b,c,dとする。

出た数a,b,c,dによって次のように得点を定める。

”a≦b≦c≦d のときは(d-a+1)点、それ以外は0点”

得点が1点となる確率を求めよ。

では解いていってみます。

まずカードの入る袋を作ります

create table bag(card int unsigned not null,primary key(card));

4枚の1,2,3,4と書かれたカードが同じように入ってるそうなので入れます

insert into bag (card) values (1),(2),(3),(4);

全部で何通りあるのか数えてみます

select
  count(*)
from
  bag as A,
  bag as B,
  bag as C,
  bag as D
;
+----------+
| count(*) |
+----------+
|      256 |
+----------+

なるほど、256通りですね(掛けたほうが早いだろ

さてここで

”a≦b≦c≦d のときは(d-a+1)点、それ以外は0点”

なるほど、a≦b≦c≦d じゃないときはどうでもいいようなのでこれで絞ってみましょう

select
  count(*)
from
  bag as A,
  bag as B,
  bag as C,
  bag as D
where
  A.card <= B.card and
  B.card <= C.card and
  C.card <= D.card
;
+----------+
| count(*) |
+----------+
|       35 |
+----------+

お、だいぶ減った

得点が1点となる確率を求めよ。

んじゃさらに絞ろう

select
  count(*)
from
  bag as A,
  bag as B,
  bag as C,
  bag as D
where
  A.card <= B.card and
  B.card <= C.card and
  C.card <= D.card and
  D.card - A.card + 1 = 1
;
+----------+
| count(*) |
+----------+
|        4 |
+----------+

なるほど全部が256通りで得点が1になるのが4通りなので

¥frac{4}{256}=¥frac{1}{64}

か。ちなみにこの4通りは

select
  A.card as a,
  B.card as b,
  C.card as c,
  D.card as d,
  D.card - A.card + 1 as score
from
  bag as A,
  bag as B,
  bag as C,
  bag as D
where
  A.card <= B.card and
  B.card <= C.card and
  C.card <= D.card and
  D.card - A.card + 1 = 1
;
+---+---+---+---+-------+
| a | b | c | d | score |
+---+---+---+---+-------+
| 1 | 1 | 1 | 1 |     1 |
| 2 | 2 | 2 | 2 |     1 |
| 3 | 3 | 3 | 3 |     1 |
| 4 | 4 | 4 | 4 |     1 |
+---+---+---+---+-------+

ぞろ目でした。よい子はこんな解き方しないように。

2009-11-16

軽いブログシステムとは?

久々にITネタです。

最近ブログ自宅サーバで動かしている知り合いが数名いて

「WP動かしているけど重いんです」

「いま作ってみようとしてる」

と言っていたのを聞いて、前にブロガーのほうで「WEBサイトの構造を考える」というシリーズで僕もブログを設計しようとしていたのを思い出したので、久々につらつらと書いてみたいと思います。備忘録として。

前に書いていた記事の最終エントリーを改めて見ると


となっていました。今見直してみても僕の思うベストはこれだと思います。上記の内容でロード開始から表示までの流れを書くと

  1. ラッパーになるHTMLをロード
  2. Javascriptのlocationからアカウント名と日付・タグなどのパラメータを取得
  3. 取得したパラメータから個人設定データ・パラメータに対する制御データをJSON形式でサーバから取得
  4. 個人設定データを元にテンプレートXSL(静的ファイル)やその他のものをロード
  5. 制御データからロードすべき記事のXML(静的ファイル)をロード
  6. XSLTHTMLを生成、表示

という感じでしょうか。リストを取得してAJAXXML記事ファイルをロード、表示するだけ。動的制御はクライアントJavascriptで全部やる。HTTPリクエスト増えすぎるのが気になるけど、記事自体を静的ファイルにしておけばCPU使用時間は減るはず。画像もっさりのサイトに比べりゃたいしたことない。コメントの表示もDBレスで行ったほうがいいでしょう。たとえば記事ファイル名を20091117011501.xmlとしてコメントファイル名を20091117011501.comment.xmlとしたらファイル名で紐付けできるので後はJavascriptで制御してやればOKかと。

概ね2chのシステムの模倣に近いですね。

で、静的ファイルをロードさせるとなると、お分かりのように記事ファイル生成とファイルの管理ができるシステムを作る必要がありますが、まぁこれに関しては認証+CRUDの単純なものに毛が生えた程度でいいんじゃないかなとお茶を濁しておきます。

ただこの構造だとファイル数制限を行わないと膨大な数のファイルができてしまうので、新しく記事が生成された際に設定した世代前の古いファイルを削除し、ファイルが存在しない記事にアクセスされた場合は動的に記事を出力するアプリケーションへルーティングするような実装が必要かと思います。

そしてこのブログ閲覧システムを構築する際に目玉テクとなるのが流れの一番最後、Ajaxで取得したXMLXSLXSLTプロセッサに突っ込んでHTMLを生成する、名づけて「Ajaxslt」?です。これを簡単に実現するのがjQueryライブラリjquery.ajaxslt.js。「WEBサイトの構造を考えるシリーズを書いていたときに作った(だが公開はしていない)んですがそういうことを忘れておりました。某社の社内システム"***検索"とかいう簡易検索アプリにも使ってみてますが、基本的にはjQueryでajax的XSLTで書いたものを肉付けして、簡単に使えるようなインターフェースをつけただけのものです。と言ってしまえば誰でも作れるでしょうし公開する必要ないかな。。。まぁそこそこ便利です。

あとはブログらしいRSSフィード生成/トラックバック/pingなどの機能を"うまいぐあい"につければ有名どころの重いブログシステムよりは軽くなるんじゃないかなーと思います。何よりも言いたいのは(いまさらではありますが)JavascriptHTML/CSSデザインの補助用だけのものではなく簡単に超大規模な負荷分散ができるパワフル(笑)なツールなのです。

といったところで、こんなんどうでしょう、H[a-z]+とS[a-z]+お二方。

2009-10-27

Natura 1600

やはりISO1600は荒れますね

2009102805_NikonF2_fuji_natura1600

とはいうもののAgfaとかSolarisのフィルムとかと比べると1600にしては荒れてないほうかな。何よりこんな暗さで手持ち撮影できるとかホント便利。

使いこなすというか使う場所を選べば荒れ具合を利用していい写真ができそう。難しいけど。

2009-10-06

The road to hell is paved with good intentions

ネット上をぷらぷら歩いていたらこんな言葉に出会いました*1

The road to hell is paved with good intentions

(地獄への道は善意で敷き詰められている)

すごくなんというか的を得たというかまぁすごい言葉だな、と。1000年くらい前から使われてるらしい言葉なんですが、今も昔も何も変わらんということですかね。

とりあえずこの言葉の意味を見た瞬間にピンと来ない人はヤヴァイと思ったほうがいいんじゃないかと思いました。

2009-09-28

そういえば

このブログ、始まりはいちおうIT技術(Javascript/Ajax)ブログだったようなきもするけど

2009092861_NikonF2_fuji_provia100f

花が綺麗だから気にしない。

Ai AF Nikkor ED 14mm F2.8D の能力

写真自体の仕上がりはおいといて、とりあえずこの雲が出たから満足

2009092880_NikonF2_fuji_provia100f

もっとじゃんじゃん使っていこうと思うけど意外とむずかしい。

HOLGAの"あのスポンジ"巻き込んだ

こんなんなるのね

2009092811_holga_ILFORD_DELTA400

変なすれた横線が…まぁいいや

それはそうと上もそうだけどILFORD DELTA400 + HOLGA いいかも

2009092807_holga_ILFORD_DELTA400

現像にだしたら巻き込んだスポンジがフィルムと一緒に帰ってきた。律儀なこって。