web-dev-qa-db-ja.com

プログラマーのための数学に関する標準的な本はありますか?

私は独学のプログラマーです。私は正直数学が苦手です。数学のスキルを向上させて、仲間のプログラマの周りをそれほど不安にさせないようにするために、どのようなアドバイスをすることができますか?数学のスキルを向上させるために推奨できる手順またはガイドラインは何ですか?

プログラマにとって数学のベストプラクティス、設計方法、およびその他の役立つ情報を説明するための事実上の標準である本はありますか?その本はどうして特別なのですか?

51
adietan63

うーん、あなたが言うことから、あなたは非常に基本的なものから始めたいようです。それについて悪いことは何もない、私は同じことをした。私の数学はほとんど高校レベルで、その多くは忘れられていました。

カーンアカデミー で開始し、練習セクションに移動して、どれだけの距離を達成できるかを確認します。これにより、何ができるのか、どこから学習を始めるのかがわかります。

わざわざ動画を見てはいけません。少なくとも私にとって、ビデオは学ぶのが遅い方法であり、カーンは退屈です。基本的な数学を学ぶためのリソースは他にもたくさんあります。 WikiBooks または ck-12 の一部と同様

質問は Math.StackExchange で頻繁に議論され、「無料のリソース」または「無料の本」を検索すると、多くの情報と資料が得られます。 「開始」や「初心者」などの検索用語についても同様です。または、そこで質問してください。これは、redditの / r/math サブセクションでも機能します。そこでは、例えば数学を学ぶためのより多くのサブレディットを見つけるでしょう。

たくさん練習してください。概念を理解し、次に進むだけでは十分ではありません。あなたはそれを適用するために快適に感じる必要があります。 (例として)除算と乗算に慣れていない場合は、パーセンテージを理解できません。それはより高い概念にも当てはまります。私にとってカーンの練習セクションはビデオよりもはるかに価値があるのはそのためです。

プログラミングと同様に、コミュニティと連絡を取り続けることで、やる気が持続します。たまにフォーラムにログインして、人々が話していることを読んでください。

24

コンクリート数学:コンピュータサイエンスの基礎(第2版) は、数学のさまざまな領域をカバーする優れた数学の本と、役に立つかもしれない本へのユーモアを持つ私の選択です。

16
JB King

ラマー大学からのポールのオンラインノート は、PDF形式で提供されます。これは、すばやく参照するのに非常に適しています。すべてのページに例があります。トピックをつかんだりつかんだりすると、このサイトに戻ってくる傾向があります。

これがセットです:

代数(数学1314):フルノート
内容のリスト

  • 予備-指数プロパティ、有理指数、負の指数、部首、多項式、因数分解、有理式、複素数
  • 方程式と不等式の解決-線形方程式、二次方程式、二乗式、二次方程式の完成、線形方程式と二次方程式の適用、二次形式に還元、ラジカルを含む方程式、線形不等式、多項式と有理不等式、絶対値の方程式と不等式。
  • グラフ化と関数-線、円、区分関数のグラフ化、関数定義、関数表記、関数構成、逆関数。
  • 一般的なグラフ-放物線、楕円、双曲線、絶対値、平方根、定数関数、有理関数、シフト、反射、対称。
  • 多項式関数-多項式の除算、多項式のゼロ/ルート、多項式のゼロの検索、多項式のグラフ化、部分分数。
  • 指数関数と対数関数-指数関数、対数関数、指数関数の解法、対数関数の解法、アプリケーション。
  • 方程式系-置換法、消去法、拡張行列、非線形システム。

計算I(数学2413):に分割

  1. コンテンツのリスト
  2. メモ
  3. 練習問題
  4. 問題を解くためのソリューション
  5. 割り当ての問題

    • 代数/トリガーレビュー-トリガー関数と方程式、指数関数と方程式、対数関数と方程式。
    • 制限-概念、定義、コンピューティング、一方的な制限、連続性、無限を含む制限、ロスピタルズルール
    • 導関数-定義、解釈、導関数式、べき則、積規則、商規則、連鎖規則、高次導関数、暗黙微分、対数微分、トリガー関数の導関数、指数関数、対数関数、逆トリガー関数、および双曲線トリガー関数。
    • デリバティブのアプリケーション-関連レート、クリティカルポイント、最小値と最大値、増加/減少関数、変曲点、凹面、最適化
    • 統合-定義、不定積分、定積分、代入ルール、定積分の評価、微積分の基本定理
    • 積分のアプリケーション-平均関数値、曲線間の面積、革命の固体、仕事。

Calculus II(Math 2414)Full Notes

Calculus III(Math 2415)Full Notes

線形代数(数学2318)フルノート

微分方程式(数学3301)フルノート

残りのトピックリストについては、サイトを確認してください。

10
phwd

これは本ではないことに気づきましたが、数学についてのあなたの考えを広げる良い方法かもしれません。 Project Eulerの問題に取り組みます

たとえば、 最初のものは です。

3または5の倍数である10未満の自然数をすべてリストすると、3、5、6、9になります。これらの倍数の合計は23です。

1000未満の3または5のすべての倍数の合計を求めます。

8
Peter K.

私は常にKenneth Rosenの 離散数学とその応用 をお勧めします。それは、理論と応用のバランスの良い多くの異なるトピックをカバーします(どんな優れた離散数学の本でもそうです)。また、カバーされた概念の元となった数学者やコンピューター科学者に関する興味深いサイドバーが多数あります。

8
Bill the Lizard

1000の離散数学の本を読むことは良い解決策ですが、時間が制約である場合は最適な道ではないかもしれません。深く行くことなくどのくらいの数学が必要かについては、(コーメン)アルゴリズムブックの導入の付録Aをご覧ください:- http://www.acmsolver.org/books/Introduction%20to%20Algorithms,%202nd%20Ed%20-%20Thomas%20H.%20Cormen.pdf

付録を読んだところ、どの数学のトピックをさらに検討すればよいかがよくわかりました。何が期待できるかがわかったら、次を見てください。

http://www.Amazon.com/Journey-into-Mathematics-Introduction-Proofs/dp/0486453065/ref=sr_1_15?ie=UTF8&qid=1308591694&sr=8-15 enter image description here

私の意見では、証明方法を(特に帰納法によって)学習することは、分析アルゴリズムを理解する上での基礎となります。残念ながら、ほとんどのアルゴリズムとCS数学コースでさえ、証明にあまり重点を置いていません。彼らはすでにあなたがその上で有能であると想定しているので、彼らは数ページを超えません。数学の本への旅は非常に小さく、読みやすいです。 CSの問題とその数学的側面も使用します。 matrixmathprobabilitycounting、およびグラフ理論

他の2つの人気のある大きな教科書:Discrete MathとそのEPP(私のお気に入り)からのアプリケーション、およびもう1つはRosenからのテキスト。

http://www.Amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0534359450/ref=sr_1_4?ie=UTF8&qid=1308591784&sr=8-4

http://www.Amazon.com/Discrete-Mathematics-Applications-Kenneth-Rosen/dp/0073229725/ref=sr_1_1?ie=UTF8&qid=1308591784&sr=8-1

コンクリート数学」というタイトルの教科書を読む喜びはありませんが、いつも良いことを聞いていました。

4
Armando

CSの数学を適切に研究している場合は、数学的論理や集合論などを調べています。これらには、それらをサポートするかなり複雑な数学があります。したがって、数学の基本レベルが少し不安定な場合は、より多くのCS関連の領域に進む前に、基礎から始めるのが最善です。

したがって、まず K.A。ストラウドの工学数学 から始めることをお勧めします。よく書かれていて、理解しやすく、基本だけでなく、より高度なものもカバーしています。

1
CdMnky

率直に言って、数学の根本的に非常に強い知識がなくても、多くの分野で完全に適切なプログラマーになることができます。ゲームエンジンやネットワークルーティングの最適化に関しては、あまり能力がないかもしれませんが、実のところ、多くのビジネスアプリケーションはかなり単純です。ただし、希望を生かし、まだ数学をあきらめないようにしてください。

低いレベルで行う数学と、高いレベルで行う数学には、違いの世界があります。あなたが微積分学が苦手であると言うこと(私は初めて私がCalc Iに失敗したことがある)を言うのは、グラフ理論が苦手であると言うこととは非常に異なります。数学を進めるにあたり、焦点は、かなり退屈で繰り返しの多い単純な問題解決ではなく、グラフ計算機で行うこともできます。代わりに、焦点は論理的思考スキルにあります。証明を構築することは、率直に言って、ソフトウェアを書くことによく似ています。

これまでで最高の数学クラスは、私が最初の「実際の」数学クラスと考えていたものでした。基本的には、グラフ理論から数論までの範囲の領域をカバーする証明クラスの紹介です。私たちが使ったテキストは素晴らしかったです( 数学的な思考:問題解決と証明(ダンジェロとウェストによる )。)その本を読み進めるだけで、証拠を攻撃するアイデアを得るのに役立つかもしれません。

全体として、私は大学で取った数学を本当に必要としましたか?いいえ、おそらく違います。しかし、正式な背景を持つことで、より優れた批判的思考スキル、より良い想像力(通常、問題を解決するには多くの方法があり、時には良い場合も悪い場合もありますが、独自のアイデアが役立つ場合があります)と問題解決の自信が得られました。

1
Edward Thomson

ほら、数学は得意ですが、プログラミングにはまったく使用していません。私のアドバイスは単に十分に知らないことに慣れ、誰かにあなたのために数学をやってもらうことです。

知っておくべきことがたくさんありますが、どれもうまくいくとは期待できませんが、特に数学はあまり役に立ちません。

もちろん、あなたのプログラムは科学的なものなので、それが必要になるかもしれません。

1
Ando

ESSLLIの「Logic&Computation」セクションの(初心者向け)コースの一部のコースノート(例として、次の2011プログラムまたは 2010プログラム 、詳細を検索)は興味深いかもしれません。プログラミングに関連する分野の現在の理論的発展についての印象を与えます。次に、それらのコースで触れた特定のサブフィールドの基礎をより深く学ぶことを決定できます。

(それ以外の場合、質問に答えるのは難しいです。非常に多くの「数学」があり、実際には必要ないか、興味がないかもしれません。ESSLLIコースが興味深いと思われる理由の1つは、研究なので、特定のパズルを解くことについてであり、特定のパズルを解くことは、理論を実際に理解し、その背後にある興味深いことを理解するプロセスにおいて重要な要素です。

基本から始めて、専門に進んでください: 数学者の喜びそれを解決する方法 は、始めるのに最適な2冊です。 Mathematician's Delightは、基本的な数学のトピック(例:幾何学、代数、微積分など)を、人に優しく面白い方法でアプローチします。私はまだそれを解決する方法を読んでいませんが、それは推論によって数学の問題を攻撃する方法に焦点を当てています。

1
sakisk