計算機数学 配布日時 2014 年 5 月 28 日 計算機数学講義 (第7回) 5月28日(水) 第 7 回 講義室 6月 4日(水) 第 8 回 応数計算機室(20号館6階) 6月11日(水) 第 9 回 応数計算機室(20号館6階) ★履修取消 5月29日(木)、5月30日(金) ★懇親会日程変更 新入生懇親会(研修会) 6月13日(金) 16:30開場、開始17時~ 18時半頃~片付け開始、解散 ★場所 11号館8階 ラウンジ ★無料、景品もあるかも。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ プログラム言語の必要性 プログラム・・・・電子計算機(コンピュータ)に実行させる手順を定義したもの 手順の記述・・・・コンピュータに処理を行わせる手順を記号化したもの 手順=アルゴリズム その記号化の第1歩・・・→図を用いて表現・・・→フローチャート 計算機の知能:お話 アラン・チューリング(1912~1954) はイギリスの数学者で、 チューリングマシンは 1936 年に発表された彼の論文、「計算可能数についての決定問題への応用」の中で、計算を数学的に モデル化するために提唱された仮想の計算機です。 本当か? チューリングが示したかったのは、あらゆる数学の問題を自動的に解くことがで きる「究極のアルゴリズム」は存在しない、ということだったのだ。 もしそのような「究極のアルゴリズム」が存在すれば、もう数学者はいらない。 37 37 計算機数学 配布日時 2014 年 5 月 28 日 アルゴリズムに従って機械的な作業を続けるだけで、数学の問題は次々と解ける ことになるのだから。 『万能チューリングマシンの存在定理』数学的に証明されること。 いかなるチューリングマシンであろうとも、それを模倣することが可能なチューリングマシン (万能チューリングマシン)が可能である。 実は「万能チューリングマシン」=「コンピュータ」 哲学上の背景 1956 年に生まれた人工知能の分野は、哲学的にかなり根が深い問題であった。機械は思考でき るのかという問題には長い歴史の末に、心に関する二元論と唯物論にはっきりと分けられてい た。二元論の立場からすれば、心は形而上の(もしくは少なくとも形而上の性質を持っている存 在であり、したがって単に物理的な文脈では説明できないことになる。一方で唯物論の立場から すれば、心は物理的に説明でき、したがって心を人工的に作りだせる可能性はあることになる。 1936 年、哲学者のアルフレッド・エイヤーは他者の心(other minds)に関して、他者が自分と 同様の意識体験を持っているとなぜ分かるのか? という有名な哲学的疑問を検討した。著書 『言語・真理・論理』の中で、エイヤーは意識を持つ人間と意識を持たない機械を区別する方法 を以下のように提案している。「私にとって、意識を持っているように見える対象が、本当は意 識をもつ存在ではなく単なるダミーや機械であると判断する根拠は、意識の有無を判定するため の経験的なテストのどれかに失格した、ということしかない。」この意見はチューリングテスト にとてもよく似ているが、この、エイヤーの有名な哲学上の古典がチューリングを支持している のかは定かではない。 右図はロボットに対する 人間の感情。 お話:終了 ―――――――――――――――――――――――――――――――――――――― アルゴリズム この授業ではフローチャート使って アルゴリズム&計算手順をしめすことを行う。 フローチャートで用いられる記号は右図の 説明のように、基本的な記号しか用いない。 特に、端子は開始(初め) 、終了(終わり) の二つだけである。 (1) プログラムの開始と、終了の端子は各1つのみにする。 開始の端子はフローチャートの上の方、終了の端子はフローチャートの下の方に書く。 もし誤解の恐れがあれば、端子内に開始・終了がわかるように書き入れる。 (2) 処理の流れは原則として、上から下へ、左から右へ。 38 38 計算機数学 配布日時 2014 年 5 月 28 日 それに逆行する際には、必ず矢印にする。 すべての処理の流れに矢印をつけても問題ない. (3) 線がなるべく交差しないようにする。 ・流れ、逐次処理と判断(条件による)分岐を理解する。 直線型フローチャート 分岐型フローチャート 繰り返し型フローチャート (順次型ともいう) 直線型とは、処理の流れが一直線に 分岐型とは条件を判断してその判断 判断の結果によってある行動を 進むタイプのフローチャートです。 によって処理が変わるタイプの 繰り返すタイプのフローチャートです フローチャートです。 処理 データの入出力 計算機数式を使った代入 入力又は出力を書き、内容 をハッキリ記入 処理と同じように長方形で書いても構わない 39 39 計算機数学 配布日時 2014 年 5 月 28 日 ただし、処理と同じように書くときには 出力と入力は区別するように。ちゃんと記述する。 出力 入力 出力:ディスプレイ 入力:キーボード 判断 条件式を使って書く YES 図で右図のように書く。 YES, NO は必ず記入。 NO 条件式 比較演算子 判断 値の大小を比較する条件式などで利用する演算子のこと - 比較演算子 等しい 小さい 大きい 以下 以上 等しくない = < > ≦ ≧ ≠ programa、 == (来年度) <= >= != 注意) 紙に書く場合は、どちらの記号を使っても良い 比較を使った判断をするフロー図 ・ある学生の計算機数学の試験結果が変数 a に入っている。 合格か不合格かを画面に表示する計算のフロー図を示せ。 ただし、60点以上の時に合格、60点未満の時に不合格とする。 注意) フローチャートは、開始、終了を持ちアルゴリズムを表すもの。 フロー図、計算フロー図 は計算方法などを図で表したもの。 40 40 計算機数学 配布日時 2014 年 5 月 28 日 【成績判定】 秀 90≦a≦100 優 80≦a<90 良 70≦a<80 可 60≦a<70 a ≥ 60 No Yes 出力: 出力: 合格 不合格 不可 0≦a<60 例題 キーボードから2つの数を読み込み、大きい数を画面に出力するフローチャート 開始 計算のフロー 処理、判断の流れを線で表すこと。 入力: キーボードから a ・キーボードから変数 a, b に 数を入れる。 入力: キーボードから b a≥b ・2つの数のうちで大きい方を 画面に出す。 No Yes 出力: 大きいのは a、a 出力: 大きいのは b、b 終了 a と b の大きな値を変数 c に代入するフロー図 a >b NO YES c=a c=b 41 41 計算機数学 配布日時 2014 年 5 月 28 日 例題 変数 a,b,c にキーボードから数値を入力して、一番大きな 数を画面に出すフローチャートを作成せよ。 計算のフロー図 変数 a, b, c は入力されているとする Yes a≥c a≥b No No b≥c No Yes Yes 出力: 出力: 出力: 大きいのは a、a 大きいのは b、b 大きいのは c、c 出力: 大きいのは c、c 奇数、偶数の判定 変数 a に入っている数 は偶数 必ず、計算機の数式で記述する。 No Yes 出力: 出力: 偶数 奇数 a は偶数か? a は2で割り切れるか? a は2で割った余りが0であるか? mod(a, 2) == 0 以下のように書く mod(a, 2) == 0 No Yes 出力: 出力: 偶数 奇数 42 42 計算機数学 配布日時 2014 年 5 月 28 日 沢山の分岐のフローチャート 条件式1 条件式2 処理 条件式 処理 処理 例題2 処理 変数 a に数が入っている。このとき、 a の値が次のようなときに 「正しいです」と表示するフローを作れ。 a 2 1 1 ≤a≤2 a ≥1 NO 【論理演算子】 記号 AND OR NOT && || ! 意味 論理積 かつ、そして 論理和 またわ 論理否定 でない YES a ≤2 NO YES 画面表示 「正しいです」 紙に記述する際は、記号はどちらを使っても構わない。 43 43 計算機数学 配布日時 2014 年 5 月 28 日 論理積(AND) 論理和(OR) 排他的論理和(XOR) 否定(NOT) 論理演算子 1 ≤a≤2 論理演算子は2項演算子なので、上記のような書き方は出来ない。 計算機に理解できるようにキッチリと書く。 正確に書くと (1 ≤ a ) & & ( a ≤ 2 ) ( 1 ≤ a ) AND ( a ≤ 2 ) となる。 (1≤ a ) AND (a ≤ 2) NO YES 画面表示 「正しいです」 44 44
© Copyright 2024 Paperzz