プログラミング思考を考えるのに最適な課題

プログラミングを学習することにより身に付けられる思考能力を説明します。

人とコンピュータの違い

人とコンピュータの違いは何でしょうか?
・人は最適な方法を取捨選択することができます。
・コンピュータは高速で計算をすることができます。

つまり、人が最適な手法を選択し、その動作をコンピュータにさせることが重要だと言えます。どのような作業を言うのでしょうか?

モンテカルロ法とは

例えば、半径1の円の面積を求めたいとします。
人の場合、積分を用います。最も簡単な方法ですと、極座標系を用いて、∬rdrdθを計算します。結果はご存知の通り、πr^2=πになります。

コンピュータはどうでしょうか。
モンテカルロ法を用いるとします。
モンテカルロ法の詳しい説明は省略しますが、ここでは確率を用いて面積を求める方法と思ってください。
0~1の間のランダムなx,yから、x^2+y^2を計算し、1以内の場合を数えます。
円の面積/四角形の面積=1以内の場合/全体の場合 の関係が成り立ちます。
それを表した図が以下になります。

数が少ないと正確な面積が算出できないことは一目瞭然です。
人にはできない膨大な計算量を、コンピュータで行うことで、正確な面積を算出できるのです。
人とコンピュータの違いを理解頂けたでしょうか?
コンピュータに命令を与えるのがプログラミングです。面積の算出式は数学の知識が必要だと感じたと思います。命令を与えるためには数学の知識が必須です。加えて、目的の計算を行うために専門知識を必要とします。

コメント

タイトルとURLをコピーしました