2011-06-01から1ヶ月間の記事一覧

パブリックスピーカーの告白 第5章、コラム「あまり見られることのない写真集」

「パブリックスピーカーの告白」の続きです。 マイクを食べるな 聴衆の時間を費していることを認識する 準備に時間をかけよう 主張したいことをはっきりさせる 聴衆が何を期待しているか調べる 具体的な論点を簡潔に 想定される反論を知っておく 主張がよく…

パブリックスピーカーの告白 第3章、第4章

「パブリックスピーカーの告白」の続きです。 第3章は講演の報酬の話 論点がよくわからない 報酬を受け取って講演するような立場には当分ならないので関係なさそう 第4章は会場の環境の話 筆者はシャンデリアが嫌いらしい 四角い会場より半円型がいい 会場の…

パブリックスピーカーの告白 第1章、第2章

パブリックスピーカーの告白 ―効果的な講演、プレゼンテーション、講義への心構えと話し方作者: Scott Berkun,酒匂寛出版社/メーカー: オライリージャパン発売日: 2010/10/27メディア: 単行本(ソフトカバー)購入: 9人 クリック: 128回この商品を含むブログ…

プログラミングコンテストチャレンジブック 第2章 その2

今日は第2章後半「貪欲法」について。 貪欲法 硬貨の問題 - 金額の大きい硬貨から使っていく 区間スケジューリング問題 - より早い時間に終わる区間を選んでいく Best Cow Line - これは「ゲーデル/エッシャー/バッハ」のMUゲームを彷彿とさせますね 辞書順…

プログラミングコンテストチャレンジブック 第2章 その1

プログラミングコンテストチャレンジブック作者: 秋葉拓哉,岩田陽一,北川宜稔出版社/メーカー: 毎日コミュニケーションズ発売日: 2010/09/11メディア: 単行本(ソフトカバー)購入: 52人 クリック: 1,538回この商品を含むブログ (83件) を見る 全探索 再帰、…

プログラミングコンテストチャレンジブック 第1章 その2

第1章の最後のウォーミングアップです。 POJ の問題「Ants」 指数時間のアルゴリズムはだめ 問題を良く読んで何を解けばいいのか考える。問題を単純化する ハードルが上がった「くじびき」 適切なデータ構造を使う

プログラミングコンテストチャレンジブック 第1章 その1

プログラミングコンテストチャレンジブック作者: 秋葉拓哉,岩田陽一,北川宜稔出版社/メーカー: 毎日コミュニケーションズ発売日: 2010/09/11メディア: 単行本(ソフトカバー)購入: 52人 クリック: 1,538回この商品を含むブログ (83件) を見る今日からがらっ…

プログラミング Haskell 付録 C 訳者による関数の解説

最後に付録 C を読みます。本文中に出てきた関数定義についての補足があります。 string は do 文のなかで再帰しているということなので特になし many と many1 - パーサーのとこで出てきたこの2つの関数は読み解くのが難しかったです パーサー p を 0回くり…

プログラミング Haskell 第13章 プログラムの論証 練習問題 その4

最終章「プログラムの論証」の練習問題です。ついに最後です。 9. 以下の型が与えられているとする data Tree = Leaf Int | Node Tree Tree この木の葉の個数は、節の個数よりも、常に1多いことを示す まず葉の個数を数える関数 countLeaf と、節の個数を数…

プログラミング Haskell 第13章 プログラムの論証 練習問題 その3

最終章「プログラムの論証」の練習問題です。 6. 13.5 の reverse (reverse xs) = xs の証明とここで提示された証明で 13.5 の証明のほうが良い理由を示せ、という難しい問題ですが、おそらくここで提示されている補助定理は 13.5 で利用されている補助定理…

プログラミング Haskell 第13章 プログラムの論証 練習問題 その2

最終章「プログラムの論証」の練習問題です。 4. ヒントより、 all (== x) (replicate n x) = True を証明します。 n = 0 の時 all (== x) (repliicate 0 x) => all (== x) [] -- replicate の定義より => True -- all の定義より n = m + 1 の時 all (== x)…

プログラミング Haskell 第13章 プログラムの論証 練習問題 その1

最終章「プログラムの論証」の練習問題です。 1. 付録A にある重複するパターンをもつ関数定義は zip。 zip の2つの引数がどちらも空リストの時に1番目と2番目のパターン両方にマッチします 2. add n (Succ m) = Succ (add n m) を示す n = Zero の時 (左辺)…

プログラミング Haskell 第13章 プログラムの論証 その4

最終章「プログラムの論証」の後半です。「コンパイラーの正しさ」として少し長い例題が提示されているので写経しました。 加算を扱う式(Expr)をスタックマシンのコード(Code)に変換する関数 comp の正しさを検証 exec (comp e) [] = [eval e] を証明すれば…

プログラミング Haskell 第13章 プログラムの論証 その3

最終章「プログラムの論証」の中盤です。今日読んだところはこの章でやってきたプログラムの証明の実用的な活用方法が示されていて、すっきりしました。 13.6 連結を除去する 前回までの reverse の定義には "++" によるリストの連結が利用されているので効…

プログラミング Haskell 第13章 プログラムの論証 その2

最終章「プログラムの論証」続きです。まだ難しくはないです。 整数に対する数学的帰納法 再帰と帰納法は類似。再帰による関数の論証には数学的帰納法を利用する 有限の範囲だけを考える まだ「あたりまえ」の範疇 リストに対する数学的帰納法 [] (空リスト)…