コンピュータ数学とは
コンピュータ数学とは、「コンピュータで問題解決を行うときに役に立つ数学の知識・技術」ということができます。
これから始めさせていただく連載の内容をしっかり理解してもらえば、次の知識・考え方が身につくでしょう。
- 数値計算プログラミングをする際に、生じる誤差やその原因、コンピュータにはどんな計算が苦手なのかがよくわかるようになります。
- 検索や絞込み、グループ分けや統合といった処理を、数学的にどう書くか、プログラムにどう書き表せるかがわかります。
- プログラムの動作が不安定なとき、ちょっと高速化したいとき、複雑な仕組みを表現したいとき、解決の糸口となる論理代数が使えるようになります。
コンピュータ数学・情報数理・情報系の基礎数学で扱われるテーマは、主に次のものです。
- 記号化
- 集合
- 論理
- ベクトル・行列・行列式
- 順列・組合せ
- 確率・統計
- 微積
- 数学的帰納法・再帰
- etc
実に広い内容です。これらを全て身につけるのは大変だと感じることでしょう。そこで、この連載ではプログラミング入門者の皆さんにとって、最初にこれぐらいは学んでおこう・知っておこう、というトピックに絞っていきます。
本連載について
この連載では、次の3つの大きなトピックをとりあげます。
- 記号化
- 数値の取扱いや基本的な演算について学習します。プログラミング言語に特有の、数値に関する注意点を学びます。
- 論理
- 論理代数について学びます。論理的に問題を解きほぐし、シンプルなプログラムコードを作るために役立ちます。
- 集合
- 集合の考え方をプログラムに活かす方法を紹介します。
これらの内容は、コンピュータ数学で取り扱うトピックとしてはさわりにあたる内容です。文系の大学教科書や、情報を専門としない学生のための教科書で取り扱っている範囲です。高校生であっても十分に学習が可能です。
各回の構成
この連載の各回は、次の流れを基本構成としています。
- コンピュータ数学からトピックを紹介します。
- 問題を提示します。
- 問題を小さな問いに分解し、ヒントを示します。
- 問いの解答を示し、解説します。
完全に理解できなくても、各回のトピックスについて「そういうものがあるんだな、そんな言葉があるんだな」というスタンスで読むだけでも十分です。一通りなぞっておけば必ず役に立つ日が来るでしょう。さらに、自らの手と頭を駆使して問題に取り組めば、コンピュータ数学をより具体的に活用するスキルが身につきます。
使用するプログラミング言語
なお、プログラミング言語にはJava言語を採用しています。
JavaはCのようにハードウエアを直接操作する細かなプログラムを作成できません。そのかわり、誤ってコンピュータを暴走させたり、壊したりする心配がありません。LL(Lightweight Language。Perl、Ruby、Python、PHPなど)ほどに生産的ではありませんが、充実した言語機能を持ったOOP(Object Oriented Programming)言語です。Javaには既に10年以上の歴史があり、企業システムのプログラミング言語としてはデファクトスタンダードになっています。どのOS上でも動きます。プログラミングを初めて学ぶ人に最適で、一生ものの言語です。
それではごいっしょに、お手元には数学の教科書・Java言語の入門書・Javaの実行環境・関数電卓と紙と鉛筆を用意して、「はじめMath! Javaでコンピュータ数学」!!