web-dev-qa-db-ja.com

アルゴリズム入門(CLRS)ブックの前提となる数学のスキル

基本的なアルゴリズムについてはすでに知識があります。今、私はより高度なアルゴリズムを研究することを計画していて、私は アルゴリズムの概要 で行くことにします。

この本を読む前に、数学のスキルを更新する必要があるかどうかわかりません。 (私が高校や大学で学ぶ数学はほとんど忘れてしまいます)この本が強力な数学の知識を必要とするなら、有益な科目を提案してください。

アルゴリズムの実装、設計、分析について学びたい。

30
Anonymous

CLRブックを使用するMITコースには、特定の必須コースがあります。その必須コースで使用されるテキストは無料で利用できます。

ここにあります:

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/

前提条件コースの前提条件コースは、単一変数微積分です。

23
user16764

@ user16764は 特定のMITコースオファリング(6.042) を参照して言及しているため、通常呼ばれるもののバージョン 離散数学 、初年度(大学)レベルの計算と組み合わせて、多くの(基本的な)アルゴリズムとその分析を理解するための主要な要件です。

特殊または高度なアルゴリズムは、統計/確率(科学的および財務的プログラミング)、抽象代数、および数論(つまり、暗号化)などの追加または高度な数学的背景を必要とする場合があります。

学生として、私の離散数学コースには、テキストDiscrete Mathematics with Applicationsby Susanna Epp、および別の私の図書館で見つけた教科書は、ケネスロスとチャールズライトのDiscrete Mathematicsでした。これらのいずれかの適切な品質の使用済みコピーは、(MITオープンコースウェアと組み合わせて、または組み合わせずに、学習スタイルに応じて)開始するのに妥当な場所と思われます。参照する2つのソースがあることを確認すると、理解できない点を明確にするのに役立ちます。

私が見た代替案はコンクリート数学、第2版、Ronald L. Graham、Donald E. Knuth、およびOren Patashnikです。現時点では自分のコピーを見つけることができず、それを真剣に検討していないため、推奨または反対することはできません。

序文から:

しかし、具体的な数学とは正確には何ですか?これは、連続数学と離散数学のブレンドです。より具体的には、問題を解決するための手法のコレクションを使用した、数式の制御された操作です。

このブログエントリ「 Books Programmers Do n't Read Really 」の Bill the Lizard の厳しいコメントに注目します。個人的に私はstillRobert Sedgewickの Algorithms (今は第4版)よりも威圧的ではなく、より親しみやすいものを見つけています。

数学の連続(つまりReal数)の部分については、 Calculusby Stewart は、差別化と統合から生じる啓蒙主義について学生に講義するために頻繁に使用される本のようです。

9
mctylr

それは、数学の形式主義に対する快適さと流暢さであるため、それ自体はそれほど数学ではありません。基本セットの用語と対応する形式を学びます。

アルゴリズムの分析は、特に根本的な計算問題を研究する複雑さの理論(「Big-Oh」表記よりももっと重要なことを行おうとしている場合)のコンテキストでは、グラフ理論への時間にかなりの投資が必要です抽象代数、そして膨大な生来の賢さに加えて。

6
Bill VB

アルゴリズムの実装だけでなく、アルゴリズムの「分析」についても心配しない限り、問題はないでしょう。私たちのコースは通常、ほとんどの大学のカリキュラムではUD数学またはCSコースです。

その本のアルゴリズムを実装する方法を理解するだけで問題にはなりません

1
Doug Stanley