Entries from 2011-01-01 to 1 year

Proving linearity of expectations

期待値の線形性は期待値の重要な性質の一つです。任意の確率変数の和の期待値は個々の確率変数の期待値の和と等しい、というものです。この性質を用いると期待値の計算を極めて簡単化することができます。例えば確率変数XとYの和の期待値E[X + Y]はそれぞれ…

Proving linearity of expectations

Calculating binomial distribution

計算機を使って確率を考えるのは楽しいことです。特に、実装が考察した通りの結果であったときは嬉しいものです。しかし、確率を計算するのに予期しない工夫を求められることもあります。例えば二項分布の計算はそれほど簡単ではないことが知られています。…

Calculating binomial distribution

Expectation of a binomial random variable X

数学を考えるとき、公式を自分で導くことができると有利であることが多いように感じます。そのため、自分の感覚と合う計算方法と出会えたときは嬉しいものです。例えば確率pで成功する実験をn回独立に行うことを考えてみましょう。成功する回数を確率変数Xで…

Expectation of a binomial random variable X

How does the product of uniform variates distribute?

id:practicalschemeさんの珠玉のエントリ、なんでも継続は以下のような一説から始まります。 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号の…

How does the product of uniform variates distribute?

Understanding how sed works(1)

テキストデータを加工するとき、sedは欠くことの出来ないツールです。しかし、sedが改行を読み込まないことはあまり知られていません。例えば、入力に含まれる改行を全て削除するために以下のようなスクリプトを記述したとしましょう。 $ sed -n -e 's/\n//g…

Understanding how sed works(1)

Visualizing Roundings

数値計算のプログラムを行うとき、端数処理に関して繰り返し調べていることに気が付きました。負の数の扱いや絶対値を伴った計算は意外に複雑で、気が付くとWikipediaのRoundingやFloor and ceiling functionsを何度も訪れていたり...そこで備忘録として、切…

Visualizing Roundings

Visualizing Memoization and Dynamic Programming(2)

前回のエントリでは、3003 -- Spiderman’s workoutの解法としてメモ化再帰を解説しました。今回のエントリではこれを元に、動的計画法を解説します。 まず、前回のエントリにて実装したsearch関数を見てみましょう。 #define INT_INF 999999 int memo[40+1][…

Visualizing Memoization and Dynamic Programming(2)

Visualizing Memoization and Dynamic Programming(1)

昨年のSIGGRAPH参加後、9月ほどからでしょうか。アルゴリズムに関する知識と実装する力を基礎から鍛え直す衝動にかられ、北京大学のJudge Online(以下POJ)に参加するようになりました。現在のAC数は123問とまだ少ないですが、一つ一つの問題を解くごとに発見…

Visualizing Memoization and Dynamic Programming(1)