コンピュータサイエンスの離散数学/構造を理解するために、どれくらいの数学を知る必要がありますか?


9

通常、大学は離散数学/離散構造を教えています。私の質問は、この領域を理解するためにどれだけの数学を知る必要があるかです。結石は必要ですか、それとも前結石で結構ですか?この領域を理解できるようになる前に、証明を行う必要がありますか?

ご回答ありがとうございます。

注:既に質問されている場合は、お詫び申し上げます。調査後、同様の質問は見つかりませんでした。これが事実であると思われる場合は、これが回答された場所を共有してください。喜んでこれを終了/削除します。


4
「[数学]は[数学]をどれだけ理解する必要があるか」と尋ねても、あまり意味がありません。あなたはどの数学を尋ねるかということですか?その意味で、あなたはあなたの質問に答えました:あなたはほとんど離散的な数学、代数、そしてビット数理論が役立つかもしれないと必要になるでしょう。分析は、いくつかの例外を除いて、ほとんど不要です(漸近、関数を生成することもあります)。
ラファエル

つまり、大学で学部生に教えられている基本的な個別の数学を理解する前に、どの数学分野を知る必要があるかということでした。前計算(高校レベルの代数と三角法)で十分か?そして、主題を理解する準備ができる前に、証明に精通する必要があるかどうか。混乱をお詫びします。
user2387 2012

1
それは国、学校、教師次第です。私の大学(および国中のafaik)では、(重要な)事前知識はありません。数学教育は基本的にゼロから始まります(まあ、算数が想定されているかもしれません)が、ペースが速いため、いくつかの事前知識があると役に立ちます。その場合は、特定のコースの内容を確認してください。一般的有用な答えはないと思います。
ラファエル

また、「この地域を理解する」とはどういう意味ですか?クラスに合格するのに十分理解していますか?Aを取得するのに十分ですか?クラスを教えるのに十分ですか?研究するのに十分ですか?すべてを知るのに十分ですか?
JeffE 2012

1
私の学部の離散数学のクラスは、公式な前提条件として微積分学を持っていますが、それは高校代数学の絶対的な習熟を前提としているからです。
JeffE 2012

回答:


5

通常、大学のクラスには必須のリストがあります。リストにまだ履修していないコースがある場合は、本当に必要かどうかを教授に尋ねてください。

離散数学のコースは、あなたが本当に理解する必要があるもので劇的に変化する可能性があります。あなたは証明をした必要があるかもしれません。(離散数学クラスの中には、証明の方法を教えるものがあります)。おそらく微積分を知る必要はないと思います。微積分は離散数学を理解するのに実際には必要ありませんが、微積分がクラスの前提条件である場合、教授が実際に微積分を必要とする可能性のある多くの良い例と宿題の問題があります。また、前提条件として基本的な抽象代数を必要とする離散数学のクラスを教えることもできます。


2

離散数学には、計算ではなく概念的なトピックであるセット、関係、ツリー、グラフ、ブール代数などが含まれています。離散数学はプログラミングの観点から非常に便利です。


2

その答えは、カリキュラムやクラスの指導方法(離散数学)に少し依存すると思います。

これが学部クラスである場合、Kenneth Rosenの本から考えると、通常、標準の数学クラスを超えて、それほど多くの前提条件は必要ありません。唯一の前提条件は、一般的な数学の理解、基本(操作の順序など)です。

クラスがやや要求が厳しく、基本的な証明技術、数論の概念の知識が必要な場合、抽象代数のコースは良い前提条件だと思います。

私は現在、楽しみのためにドーバーの本-Ian Stewartによる「Concepts of Modern Mathematics」を読んでいます。

一般的に、良いスタートを切るには、集合、証明、ブール代数、状態機械、およびアルゴリズムの一般的なアイデアをよく読んでおく必要があります。


私の経験は正反対です。離散代数コースは抽象代数の前提条件でしたが、それは私の学校のカリキュラムが当時構成されていた方法です。多くの学校では、多かれ少なかれ入門レベルまたは下位レベルのコースとして離散数学を持っていると思いますが、明らかにそうではない場合もあります。
Joe

1

結石は必要ですか、それとも前結石で結構ですか?

いいえ。微積分は、連続曲線上の任意の点での勾配の計算、または連続曲線の下の面積の計算を扱います。連続範囲(無数に無限)と離散範囲(有限または無数に無限)は正反対であるため、微積分は主に離散数学には適用できません。

基本的な数学コースのいくつかの概念が役立ちます

  • 代数-量を記号的に扱う
  • 形状-正式な証明
  • 計算前-無限の系列に基づいて帰納的に関係を指定する

形式的論理は誘導と象徴的思考を強調するため、形式的論理も価値があります。一部のロジック(ブール)は、離散真理値も扱います。


1
この一般性において、私は強く反対しなければなりません。微積分/分析には、区別と統合だけでなく、個別の設定で役立つ場合もあります。
ラファエル

@ラファエル、たぶん私の微積分学はあまりにも昔のことだろう。重複の例はありますか?私はCSの前にEEを勉強していたので、微積分学での実際の経験は、CSに切り替えてから使用していないベクトル場の分析でした。時々、離散信号解析(例えば、フーリエxforms)はインパルスに対する積分を含みますが、それは私がそれを含める価値があるとは思わなかったので十分に正接に見えます。
マイクサミュエル

漸近は明白な例です。積分は、和や系列を処理するときに役立ちます。さらに、関数の生成は便利なツールになり得ます。それらを真に理解するには、複雑な分析が必要です。私はアルゴリズムクラスの定理を覚えています(私はそれをよく覚えていません)いくつかの微積分定理で証明されました、私は中間値定理を信じています。私がやるの証明のため、実際の分析を使用すると、個別の世界に残っているよりもはるかに簡単だったとポイントを作る教授を覚えています。
ラファエル

1
とはいえ、コンピューター科学者にとって離散数学の方がはるかに有用であることは間違いありません。
ラファエル

1
@ラファエル、質問は「離散数学に取り組む前に、私は私のベルトの下に何を持っているべきですか?」でした。「コンピュータサイエンティストが知っておくべき数学」とは異なります。でも、彼のrantiestのスティーブ・イェジは、微積分の価値を認めるが、私の主張は、それが1のいずれかの順序でそれらに取り組むことができ、離散数学に直交に近い十分であるということです。
マイクサミュエル

1

答えはあなたのキャリアの選択とあなたの大学のプログラムの両方に依存します。

サウンドと音楽を処理する必要があると思いますか?次に、微積分、べき級数、さらに重要なテーラー級数の知識が必要です。

3Dエンジンで作業しますか?多分何かVR-関連またはいくつかの仮想シミュレーションマシン?次に、少なくとも1人称のカメラの動きには、抽象代数(グループ、フィールドなど)が必要です(四元数グループと四元数回転を参照)。線形代数もそうです。

あるいは、シーメンスのようなよりエンジニア志向の会社で働きたいですか?微積分学はこのような仕事の要件であり、線形代数もそうです。

上記はすべて、数学に関して特定のスキルを必要とする仕事です。

Web /デスクトップ/モバイルアプリケーションを開発する傾向がある場合は、それほど多くの計算は必要ありません(WolframAlphaなどのアプリでない場合)。

あなたはより理論的な指向のキャリアを目指していますか?次に、アルゴリズム(複雑さ、最適化など)を非常によく理解する必要があります。また、効率的なソリューションを考え出し、展開後にさらに最適化するように求められます。

組み込みプログラミングジョブを希望していますか?その場合は、かなりの電気工学(DOSなど)についても知りたいと思います。すでにおわかりのように、それを理解するにはいくつかの数学が必要です。

ご存知のように、数学はコンピュータサイエンスとプログラミングに関して無視される対象ではありませんが、それはあなたのキャリアを定義するものではありません。テクノロジーの世界で何をしたいかをご覧ください。あなたが一番好きな選択肢をいくつか挙げてください。その後、あなたが選んだセクターで良い仕事をするためにどんな数学が必要かを見てください。たぶんあなたはそれらが気に入らないでしょう。多分それらはあなたにとってそれほど興味深いものではありません。その場合は、2番目の選択肢に移動し、プロセスを繰り返します。数学があなたの好みに合っている場合は、その仕事/分野/セクターに行き、自分をノックアウトするよりも!

「Hello World!」で最も重要なこと (しゃれ)は、コーディングとアルゴリズムのスキルを的確に得ることです。いくつかのフィールドに取り組みます:webdev、組み込みなど(少なくともそれらについて読んでください)。次に、選択した分野で必要となる数学を学びます。

このちょっとあなたの質問に答えて、それが役に立ったことを願っています!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.