商品の説明
プログラマの数学
文系プログラマを対象にした基礎数学の解説書。帰納法,再帰,命題論理といった数学的考え方の基礎を,「ケーニヒスベルクの橋渡り」や「ハノイの塔」のような著名なパズルを題材に説いている。著者は,誰しもが学校のテストで解いてきたであろう問題を,簡潔な語り口でプログラムに置き換えていく。初心者は「いかに問題を単純化して関数に落とし込むか」という根本的課題に対する解を見いだす上で,中上級者は肌で覚えた感覚的スキルに理論の裏付けを得る上で,それぞれ役立つだろう。
文系プログラマを対象にした基礎数学の解説書。帰納法,再帰,命題論理といった数学的考え方の基礎を,「ケーニヒスベルクの橋渡り」や「ハノイの塔」のような著名なパズルを題材に説いている。著者は,誰しもが学校のテストで解いてきたであろう問題を,簡潔な語り口でプログラムに置き換えていく。初心者は「いかに問題を単純化して関数に落とし込むか」という根本的課題に対する解を見いだす上で,中上級者は肌で覚えた感覚的スキルに理論の裏付けを得る上で,それぞれ役立つだろう。
(日経バイト 2005/06/01 Copyright©2001 日経BP企画..All rights reserved.)
出版社 / 著者からの内容紹介
プログラミングに役立つ「数学的な考え方」を身につけよう。
プログラムや数学の知識は必要ありません。
難しい数式はいっさい使わず、明快な文章、たくさんの図、パズルを通して、やさしく解説しています。
プログラミング初心者、数学の苦手な人にも最適。
第1章 ゼロの物語 -- 「ない」ものが「ある」ことの意味
第2章 論理 -- trueとfalseの2分割
第3章 剰余 -- 周期性とグループ分け
第4章 数学的帰納法 -- 無数のドミノを倒すには
第5章 順列・組みあわせ -- 数えないための法則
第6章 再帰 -- 自分で自分を定義する
第7章 指数的な爆発 -- 困難な問題との戦い
第8章 計算不可能な問題 -- 数えられない数、プログラムできていないプログラム
第9章 プログラマの数学とは -- まとめにかえて
付録 読書案内
プログラムや数学の知識は必要ありません。
難しい数式はいっさい使わず、明快な文章、たくさんの図、パズルを通して、やさしく解説しています。
プログラミング初心者、数学の苦手な人にも最適。
第1章 ゼロの物語 -- 「ない」ものが「ある」ことの意味
第2章 論理 -- trueとfalseの2分割
第3章 剰余 -- 周期性とグループ分け
第4章 数学的帰納法 -- 無数のドミノを倒すには
第5章 順列・組みあわせ -- 数えないための法則
第6章 再帰 -- 自分で自分を定義する
第7章 指数的な爆発 -- 困難な問題との戦い
第8章 計算不可能な問題 -- 数えられない数、プログラムできていないプログラム
第9章 プログラマの数学とは -- まとめにかえて
付録 読書案内
内容(「BOOK」データベースより)
プログラミングに役立つ「数学的な考え方」を身につけよう。プログラムや数学の知識は必要ありません。難しい数式はいっさい使わず、明快な文章、たくさんの図、パズルを通して、やさしく解説しています。プログラミング初心者、数学の苦手な人にも最適。
内容(「MARC」データベースより)
プログラミングに役立つ「数学的な考え方」が身につく書。プログラムや数学の知識は必要ありません。難しい数式はいっさい使わず、明快な文章、たくさんの図、パズルを通してやさしく解説します。
メディア掲載レビュー
本書は、プログラミングに役立つ「数学的な考え方」を学ぶ入門書です。
難しい数式はいっさい使わず、わかりやすい図、ていねいな解説、パズルを通して、「数学的な考え方」がしっかり身につきます。主な対象読者はプログラマですが、プログラムの知識は不要です。システムエンジニアや、数学に興味のある一般の方も楽しみつつ学べます。
本書は、現代のコンピュータ科学で常識となる内容をカバーしており、高校や大学の情報・数学系の参考書としても役立ちます。
■本書で紹介する「数学的な考え方」
●条件分岐と論理
論理を使って、こんがらがったプログラムや仕様書をスッキリとした形にまとめることを学ぶ。
●繰り返しと数学的帰納法
「数学的帰納法」を使って、有限の記述内容で無限をとらえる方法を学ぶ。また、プログラムの繰り返しが本当に正しく機能するのかを調べる。
●場合分けと数え上げの法則
和の法則、積の法則、順列、組み合わせといった「数え上げの法則」を学んで、プログラミングに不可欠な「もれなく、だぶりなく」考える力を養う。
●再帰的な構造の発見
プログラミングでよく出てくる「再帰」の考え方を学び、複雑な問題の中からいかにして構造を見出すかを学ぶ。
●指数的爆発と人間の知恵
指数的な爆発を起こす問題は、コンピュータがいくら進化しても解くのは難しい。指数的な爆発の難しさと、それをどのように解決するのかを学ぶ。
●人間+コンピュータの限界
人間とコンピュータがいかに協力して挑戦しても、解くことが不可能な問題がある。不可能な問題の性質を学び、コンピュータ科学の底流を知る。 --出版社からのコメント
難しい数式はいっさい使わず、わかりやすい図、ていねいな解説、パズルを通して、「数学的な考え方」がしっかり身につきます。主な対象読者はプログラマですが、プログラムの知識は不要です。システムエンジニアや、数学に興味のある一般の方も楽しみつつ学べます。
本書は、現代のコンピュータ科学で常識となる内容をカバーしており、高校や大学の情報・数学系の参考書としても役立ちます。
■本書で紹介する「数学的な考え方」
●条件分岐と論理
論理を使って、こんがらがったプログラムや仕様書をスッキリとした形にまとめることを学ぶ。
●繰り返しと数学的帰納法
「数学的帰納法」を使って、有限の記述内容で無限をとらえる方法を学ぶ。また、プログラムの繰り返しが本当に正しく機能するのかを調べる。
●場合分けと数え上げの法則
和の法則、積の法則、順列、組み合わせといった「数え上げの法則」を学んで、プログラミングに不可欠な「もれなく、だぶりなく」考える力を養う。
●再帰的な構造の発見
プログラミングでよく出てくる「再帰」の考え方を学び、複雑な問題の中からいかにして構造を見出すかを学ぶ。
●指数的爆発と人間の知恵
指数的な爆発を起こす問題は、コンピュータがいくら進化しても解くのは難しい。指数的な爆発の難しさと、それをどのように解決するのかを学ぶ。
●人間+コンピュータの限界
人間とコンピュータがいかに協力して挑戦しても、解くことが不可能な問題がある。不可能な問題の性質を学び、コンピュータ科学の底流を知る。 --出版社からのコメント