ノートテキスト
ページ1:
基礎中の基礎は対応できる情報 I 後半 それでは、後半戦の方をやっていきたいと思います 目次です 目次 前編 第1章 情報社会の問題解決 第2章 コミュニケーションと情報デザイン 後編 第3章 コンピュータとプログラミング 第4章 情報通信ネットワーク技術・データ この第3章と第4章について、今回は扱っていこうと思います 前半2つに比べたら、まあまあ難易度高めです 何と言うんでしょうか? 専門性が牙を出すみた いな感じですかね そのために基礎中の基礎シリーズとはなっておりますが 基礎と標準くらいの難易度までやって ます 今回は、情報処理技術者試験の過去問 (主に、 ITパスポートとFE)を入れてます 入れてないと ころもございますがちょっと難易度は高めですが、 しっかり読んでくださっている方は多分余裕 かなと思いますので 第3章 コンピュータとプログラミング ①コンピュータの構成・ソフトウェア まず、コンピュータの構成要素として キーボードとかマウスとかディスプレイとかそんな感じで直接触ることができるものをハードウェ ア要は、そのコンピュータの機械そのものって考えてください 逆に 例えば、アプリとかそういったものは触れませんよねこれをソフトウェアと言います プログラムとかデータってのがこれに該当します 第1章の情報セキュリティの時 ソフトウェアに関してマルウェアってやつがいますよね 悪意のあるソフトウェアの総称のことです 実際ソフトウェアはこういったものなんだなと思ってい てくればオッケーですね。 まぁ、基本的に、コンピュータの機器に関しては制御とか演算を行うコンピュータの本体 そして、ディスプレイとかマウスとかキーボードとか、そういったコンピューター本体以外の全て 俗に言う周辺機器ってやつです それを今から細かく見ていこうと思います
ページ2:
ハードウェアのやつですが CPU 制御 記憶 出力 0 計補助 こういった5つの主要な装置があります こいつらを5大装置といいます 青色の線で表してるのが、 データの流れ 緑色の線で表してるのが制御の流れになってます 制御装置ってところがCPUの中にあってそこからいろいろなものを制御しているってのはわか ると思います やっぱりデータってのは入力から始まってるんだってところ そして記憶装置を経由していろんな 装置にデータが渡っていくんだってところ それぞれこの5つって何をやってるのかってところを説明します ちなみに画像では装置と書くの がめんどくさいので略してます 制御装置... 命令を解釈して、 コンピューターの動作を制御するところ 演算装置... データの計算とか、 演算処理を実行するところ これらを合わせてCPUと言いまして 要は脳みそです コンピューターの脳みそ 計算とか、そういった中枢を担っているのがここだから 要は、外界の情報を受け取って、それに対して指示したり命令したりしてるんですよね 生物基礎履修してる方 ワンチャンこの時期習ってない可能性ありますが 人間は脳で判断したりしてますよね 中学校の理科ですが、 脳は中枢神経ですね。 では、生物基礎に習う内容として、 生物は、 体の中の環境、 体内環境を一定に保とうとする性質 がありますよね 恒常性 (ホメオスタシス) 実はこれを監視してるので、 脳のどこかって言ったら 間脳の視床下部ってところです 実は、それに該当するのがCPU だから、外界の情報 例えばエアコンだったら温度が外界の情報ですよね
ページ3:
下げろ! 24℃ 上げア 上げ引 エアコンの温度を24℃に設定して 実際基準値よりも上回ったら下げろって命令をする 逆に、基準値を下回ってしまったら、 上げろって命令をする こんな感じですね。 こうやって、状態に応じて適切な対応をするんだよってところ ちなみに実際の状態とは、 逆向きの方向に働くもの 要は応答の結果が最初の入力に打ち消 すように働いていますよねこれを負のフィードバックといいます。 生物基礎でも全く同じ意味で全く同じ用語がありますが 個別に情報でも覚えてください ここでは、どのように命令って実行して、パソコンって制御されてるんですかね みたいなことを見 ていきたいなと思うんです。 そして、記憶装置書いてありましたね 2つ書いてあるんですけど 実際3つ覚えてください 主記憶装置 補助記憶装置 キャッシュメモリの3つ これってちゃんと特徴が違うから分けられてるんですね 主記憶装置... データを一時的に保存する装置 処理は早め 例を出すとUSBメモリとかそうです ね 補助記憶装置... データを長期間保存する装置 処理は遅め 例を出すと、 ハードディスクなど キャッシュメモリ... 主記憶とほぼ一緒 だから 主記憶は、容量が小さくて、読み書き速度が早い この読み書き速度のことをアクセス速 度といいます 一方で、補助記憶の方だと容量が大きい分アクセス速度は遅めって感じなんです つまり、補助記憶はCPU直接やりとりを行おうとすると、 処理がめちゃくちゃ遅くなります 主記憶は、一時的な保存領域だから、 容量が少ない分プログラムを長期間保存していくわけに いかんわけですよ だから、基本CPUと直接やりとりするのはどっちかって言われたら主記憶の方なんですね 補助記憶の例は2つ ハードディスクとSSDってやつ ハードディスク
ページ4:
https://chips-gadgets.jp/technology/storage/hdd こんな見た目の装置なんですね これどういう風に記録してるかって言いますと おそらく中学校の物理で出てくるあれです 磁界 ですね。 磁界によってデータを記録したり、読み取ったりしてるわけですよ 押さえつけている針みたいなやつがあるじゃないですかこれのことをアクセスアームなんて言い 方をします。その先端部分が磁気ヘッドって言いますね。 アクセスアームは、目的地まで磁気ヘッドを運んであげますよってことです このデータを記録する白いディスクのやつなんですが プラッタといいます。 ちょっと難しめの内容なんです だからこのプラッタとかアクセスアームなんて名前覚えなくていい です ちょっとこんな名前がついてんだなぁって聞き流してくれればいいですよ ただ磁界を利用して、データを記録したり読み取ったりしてるんだよってところだけ覚えてくれれ ばいいですかね だから、補助記憶に入れといてプログラムを実行するタイミングに合わせてデータを主記憶に読 み込ませるみたいなことが、 実は中では行われていると では、CPUとメモリについて見ていきたいと思います
ページ5:
CPU (余 001 [合しごけ レジ 002 003 C04 デコーダ acs ALL 2 (プログラム カインタ では、メモリのほうも見ていきたいと思います メモリは命令とかを入れておく場所だと思ってください 一定領域ごとにメモリが区切られているわけですが例えば001とか002って番号が振ってありま すね。 これのことを番地とかって言ったりします イメージとしては、ロッカーみたいなもんですね ロッカーの中に命令内容とか必要なデータが 入ってますと。 そして、その領域ごとに番号が割り当てられててこの番号を指定してあげることで読み書きをす ることができるんだ 例えば、1番のロッカーを開けたいです 0001ですよね。 そうすると0001の中身を取り出したり入れたりすることはできますよね そんな感じなんですね。 命令の実行順番は 命令を読んで 解読して、 オペランドのアドレスを計算してオペランドフェッチを行って実行す るって感じなんですけど 読んで解読するの順番だけ覚えてくればいいす この用語をフェッチ デコード オペランド、、、 演算で必要となる値 続いてCPUの方を見てあげると 汎用レジスタ 命令レジスタ プログラムカウンターなんやねん。こいつら見たことねーわ。 大丈夫です 覚える必要は無いです よっぽど難しい資格を受けるのであれば話は別ですが 今回は情報1レベルですのでレジスタだけやっていきます レジスタ... CPU内部の記憶装置で命令やデータを一時的に保存しておくところ CPU内部って重要ですからね 主記憶とか補助記憶とは違うからね ちなみに、容量としては 主記憶よりも全然小さいです 処理速度はめっちゃ早いっすけど。 それでは、皆さん一旦頭の中で計算してみてください
ページ6:
20 × 3 +40 ×2= と、いっても皆さんは、 まず最初に20×3を計算して、60だ その後40 × 2を計算して80だ けですよ だから、この60と80を足して140だな! みたいにやってるわ 皆さんは20×3の結果を、 一時的に脳のどこかに保存してるんですよ そして40 × 2を計算した ら脳のどこかに保存してあった60を取り出してそれを足してやってるんですよね その脳のどこかに保存してるって言ってるんだけど、 それがCPUにとってはレジスタなんです その他の装置 入力装置... コンピューターなどの機器本体にデータや情報等の指示を与えるための装置 キーボードやマウスやタッチパネルなど 文字を入力するもの 音声を入力するもの ディスプレイ上の位置を入力するものなどいろいろ あります ちなみに、画面上の位置、情報を入力する装置はポインティングデバイスなんて言われたりしま す 出力装置 コンピュータや実行中のプログラムからデータを受け取り人間に認識できる形で、 外 部に物理的に提示する装置 映像として出力するディスプレイ 紙に印刷して出力するプリンタ 音声として出力するスピー カーなど 続きまして、 基本ソフトウェアってものを見ていきたいと思います 今まで見てきたのはハードウェアなんですけれども、ソフトウェアは触れることができないもので す 基本ソフトウェアはOSと呼ばれたりするんですけれども なんやねんこいつって話ですよ。 OSはOperating System の略でコンピュータの土台となるような動作を担っているものです 一方で、それぞれの目的に応じた機能を持つようなものは、 応用ソフトウェアアプリケーションソ フトウェアといいます ちなみに、アプリケーションソフトウェアはアプリケーションプログラムと言っても大丈夫です 言い方を変えると、OSは、 どのコンピューターにも普遍的に必要とされるものなんだと 例えば、マウスとかでカチャカチャって打ってそれをうまい具合に、OSが制御してそれをアプリ ケーションソフトウェアに向かって送り付けてるって感じなんです 仮に、 OSなんてものがなければどんだけカチャカチャ打って、メール文とかね うんともすんとも しません OSはWindows Mac OS X なんてものが有名です そして、この部分の最後としてファイルについてやっていきます
ページ7:
https://ドメイン.jp/ ほげほげ.html ルートディレクトリ [画像ファイル] ほげほげ.html ほげほげ.css サービスロゴ メイン画像 引用 https://it-sukima.com/tech_200910/ ユーザがプログラムとかデータを保存するとき ファイルと呼ばれる形式で名前をつけて記録す るわけですね そして、 複数のファイルとかを管理するもの 要は整理して保存したり、出し入れしたりするやつ ですこれをフォルダ(ディレクトリ)といいます ディレクトリを活用して、 ファイルを整理しているんだってことです 例えば、皆さんは動物の写真をパソコンに保存しました でもこの場合にディレクトリを使わな かったらどうなるかって言うと パソコンに入っているいろいろなファイルがあってそれがごちゃごちゃに混ざっちゃうんですね どのファイルが動物の写真、なんだかわからんよと その際に動物写真みたいに名前をつけたディレクトリを作成して突っ込んでおけば他のファ イルと混ざることがなくなるので でも、それがごちゃごちゃに混ざってたらまた見返すのも面倒だ てことでご安心くださいディレクトリの中にもイヌ ネコ ミジンコみたいな感じでディレクトリを 作れます なので、正式にはディレクトリってファイルを保存するのもそうなんだけど、ディレクトリの中にディ レクトリを作成することもできるってことです この画像の中にあるんですが、 1番上のディレクトリのことをルートディレクトリ今いるところ、カレ ントディレクトリなんて言い方をしたりします では演習問題です
ページ8:
コンピュータの基本構成を表す図中の a~cに入れるべ き適切な字句の組合せはどれか。 a 入力装置 b 出力装置 C a b C ア 演算装置 記憶装置 制御装置 イ 記憶装置制御装置 演算装置 ウ 制御装置 演算装置 記憶装置 エ 制御装置 記憶装置 演算装置 :データの流れ 制御の流れ 基本情報技術者試験 平成17年 春期問題 科目A問26 では、この問題をやっていきます これはデータの流れと制御の流れがどういう風になってるかってのがわかっていれば解けます データの流れは入力装置から始まって、 記憶装置を経由してそれぞれのところに行きます 制御の流れは、制御装置からいろんなところに この2つのポイントを押さえておけばまず制御の流れの大元となってるのはaとわかりますね a、、、 制御装置 そして、データは入力装置から出てって記憶装置経由でいろんなところに届くんだからbは記憶装 置だって言うことがわかります そして、この流れで来たら、 余り物の演算装置がcになりますよね よって、答えはエ
ページ9:
コンピュータの命令実行順序として,適切なものはど れか。 アオペランド読出し→命令の解読 命令フェッチ→ 命令の実行 イオペランド読出し→命令フェッチ→命令の解読→ 命令の実行 ウ命令の解読→命令フェッチ→オペランド読出し→ 命令の実行 ェ 命令フェッチ→命令の解読→オペランド読出し→ 命令の実行 基本情報技術者試験 平成18年 春期問題 科目A 問18 この問題は読んで(フェッチ) 解読 (=解釈)して (デコード) オペランドフェッチ(=演算に必要な 値を読み出す) そして命令を実行するって流れでしたね したがって、答えは エ ②コンピューター内での数値表現・誤差 皆さんは、前回のノートの方で説明したんですが足し算と引き算ってのを扱っていったわけです よ。 では、ここからは、 数の表現方法と掛け算をやっていきたいと思います 固定小数点数 これはあまり覚えなくていいかなと思いますが でも、一応教科書とかには書いてあるのでやっておきます これその名前の通り、 小数点の位置を固定して表現しましょうということです。 この小数点の位置を決定してしまったら、別のところに小数点移動しません OOOOOOOO 上4桁を整数として 下4桁を小数 ○○. これで整数を表す
ページ10:
これのメリットとしては、表現方法が簡単であること ところが桁が長い数値を表現するためには、めちゃくちゃたくさんのビットが必要になっちゃうんで すんねそうすると0.0000001 なんて、 絶対値が大きいような値を表現することができないんです ね なので小数点の位置をフレキシブルに設定することができるよ シフト演算を活用してね とい うのが浮動小数点数の表し方だと 化学基礎を履修されている方 物質量を習われている方は 6.0×1023 この数知ってると思いま す アボガドロ数です こういった数で考えると 実際に符号は省略されてますけど +ですよね 指数 + 6.0× 基数 符号 仮数 こういう風に表すことを考えましょう 符号... 数値がプラスかマイナスを表す部分 仮数... 数値を表す部分 基数 ...位が上がる基準となる数値を示す部分 指数... 小数点の位置がどこにあるか 基数を何回かけるかを表す部分 では、皆さんに質問です 10.00 この小数点を1つだけ右にずらしてあげます 右シフトしてあげると何倍になりますで しょうか? 100.0 になるので10倍してますよね これを10倍と表すこととしましょう そしたら、もう一つ、 右にずらしてあげたら 1000になりますよね 100倍です。 これを102倍とし ましょう こんな事はめったないんですけどこれの逆をめちゃくちゃ使うんですよ 今度は、10.00の状態から 小数点を1つだけ左にずらします 1.00 つまり1/10倍ですよね
ページ11:
つまりこの状態から10' をかけてあげると元に戻ります そしたら3つずらしてみましょうか そうすると、 0.00100みたいな感じですよね つまり1/1000倍です。 これを1.00に戻すには ×103をすればいい つまり、1.00 = 0.00100 × 103とすることができます では、これが2進数の世界だったらどうでしょう 10進数は基数が10だけど 2進数は基数は2ですよ 101.01 これの小数点を左に1個ずらして 10.101 この状態を元の状態に戻すには何倍してあ げればいいでしょうか? 結論2倍です 21倍です。 なので、10.101 × 21 とすることができます ただ、 実際に使われる形って1. なんちゃらかんちゃらの形です だから、今回の場合は、1.0101 にしてあげればいいから元の形に直すのに4倍(=22倍) ですよ ね なので、 1.0101 ×22 とします ちなみに、 1. なんちゃらかんちゃらの形に直すことを正規化と言いますので、合わせて覚えときま しょう そしたら、一般的な浮動小数点数 難しい言い方をすると、 単精度なんて言い方をするんです が、これは覚えなくていいです これってどのように表すか? 指数部(8ビット) ・符号部 仮数部 (コビット) (2アビット) こんな感じで表すんですね これ全部足してあげると32ビットになりますねこの32ビットあるうちの 1番最初のやつを符号部 そして次の8ビットの部分が指数部 残りの23ビットの部分が仮数部となります それぞれの表現方法なんですが 1番最初の符号部、、、 正の数であれば 0 そして負の数であれば1を入れてあげます
ページ12:
そして、指数部がちょっとややこしい 指数+127を8ビットの2進数にすると この127の値のことをバイアス値といいます これを使ってあげることによって表現できる数が めっちゃ上がるんですよ。 どこまでかと言えば2の126乗 ~ 127乗まで表すことができます 仮数部、、、 1番上のやつ(最上位ビット)は省略して2桁目から書く なぜなら、最上位のビットって必ず1だからです 足りない部分は0で補ってあげますね。 では、10.11といった2進数 これを浮動小数点数で表してあげると 10.11 1011×2 r 正規化 ①を補う 0 ac co 1000000000000000000000000000 指 仮 付 1127128 128を2進数→10000の こんな感じになります まず、最初に正規化されていない状態なのであれば正規化をしてあげてそしたら 符号はプラスであれば 0 そしてマイナスであれば1 それで、指数に関しては 指数の部分にバイアス値を加えてあげてそれを2進数に変換すれば 良いので 128を2進数にすればいいとそれがそのまま指数部になる そして、仮数の部分は 1番最初の1を無視してあげて、 それ以降のやつを最初に持ってきます そしたらそれ以降は23桁になるように0を補ってあげればオッケーです では、次行きましょうか - 0.00011001 これを表せ
ページ13:
-00011001 正規化 - 1.1001+24 のを補う こんな感じになります W 付 0/11/011 10000000000000 (4)1127=123 3/011110177 仮 ちょっとだけ、軽いお話をすると 数学では出てくるのかわからんけど 現状見てる皆さんは多分 あんま見たことないんじゃないかなと思います -0って数が存在するんですよ それが 符号だけを1にしてそれ以外指数も仮数も全部0にした時ですね ちなみに、 符合も指数も仮数も全部0であれば、それは0ですよ そしたら、符号部を変えて+と-を変えることができますよね そしたら、そこでの正の値での範囲内で、 最大と最小ってどんなもんなんだろうなっての見ていき たいと思います 最小値 符0 00000001 仮00000000000000000000000 のやつですね 指数部すべて0にしちゃうと値は0になっちゃうので最も小さい1を採用します。 そうすると、 1.0 × 2-126 の情報を表せるんです これを超えると0になるんですが 計算がまともにできないんですね。 こんな感じで、計算範囲内を下回ってしまうことをアンダーフローといいます 逆に、最大値に関しては 符0 指11111110 仮 11111111111111111111111 ですねこれが大体2.0 × 2 127 となるんです これが正の無限大になるんですねこの値を超えるとちゃんと計算できないんですこんな感じで 数値として表せる範囲をオーバーする場合をオーバーフローといいます そしたら最後に4種類位の誤差を見ていきましょう やっぱり、コンピュータって 全部の数を完璧に表現できるかって言ったら、そうでもないんですね
ページ14:
だから、 実際の数値とコンピューターの内部で表現できる数値との間でズレが生じることがありま すこのズレのことを誤差といいます 先ほどやったアンダーフローとかオーバーフローっていうのはコンピューターが使える最大とか、 最小の値を超えてしまうことじゃないですかこれを桁溢れ誤差といいます 次に、絶対値の大きい値と小さい値で、足し算引き算を行うときに、 絶対値の小さい値の計算っ てうまく反映されないことがあります これによって生じる誤差のこと情報落ち誤差といいます 残り2つは特に簡単な誤差なので では、皆さん103を計算してください 計算すると3.33333、、、 みたいにずっとずっと3が続き ますよね でも、結果としてはどこかで打ち切らないといけないのわかります? 打ち切った結果として生じるのが本来の値と全く同じかと言われたら、そうではないですよねだ から、計算処理の途中で打ち切ってしまったことによって、 本来の値とズレができてしまう。 このような誤差を打ち切り誤差といいます では、次の質問です 137.6っていう数字を小数点第一位で四捨五入してください 138ですよね これ見て明らかですけど、もともとの数とは違うじゃないですか。 出来る限り実際に近い数にするために 仮数部の1番下って切り上げたり、 切り捨てたり四捨五 入したりするわけ この操作のことを丸めと言いましてでも実際にはズレが生じるから、この誤差は丸め誤差とい います では、練習問題です 実数a を a=fxre と表す浮動小数点表記に関する記述 として,適切なものはどれか。 アf を仮数,eを指数,rを基数という。 イ f を基数, e を仮数, r を指数という。 ウfを基数, e を指数, r を仮数という。 エfを指数, eを基数, rを仮数という。 基本情報技術者試験 平成16年 春期問題 科目A 問3 それぞれの部分の名前を答えなさいって問題です これは一応重要語句として水色で書いた部分になりますね 多分、1番簡単なのは右肩に乗っているeかな 数学でも言ってますもんね 指数ですね
ページ15:
rは基になる数ってことで基数です てことでアが答えになります 忘れた方はちょっとだけ巻き戻ってみてみてください 浮動小数点形式で表現された数値の演算結果における 丸め誤差の説明はどれか。 ア 演算結果がコンピュータの扱える最大値を超える ことによって生じる誤差である。 イ 数表現のけた数に限度があるので,最下位けたよ り小さい部分について四捨五入や切上げ, 切捨て を行うことによって生じる誤差である。 ウ乗除算において, 指数部が小さい方の数値の仮数 部の下位部分が失われることによって生じる誤差 である。 [ェ 絶対値がほぼ等しい数値の加減算において,上位 の有効数字が失われることによって生じる誤差で ある。 基本情報技術者試験 平成19年 秋期問題 科目A 問4 丸め誤差はさっきやりましたね 四捨五入とか切り上げとか切り捨てによって本来とずれちゃうよ ねみたいなよって答えはイ ちなみに、他の誤差はアは桁溢れ(オーバーフロー) ウは情報落ち エはこれはこのノートで は説明してないんですが、 桁落ちです ③論理演算と回路 皆さんは、コンピュータは2つの値を用いて行う俗に2進数の考え方ですね それを情報の前編を見てくれた方はわかってくれたんじゃないかなと思います こんな感じで、 2つの値を用いて行う演算のことを論理演算といいます
ページ16:
そして、論理演算を行う回路を論理回路といいます さらに論理回路っていくつか種類があって、 その回路ごとに出力される結果っていうのが全然違うのでその入力と出力をまとめた表が出て きます この表を真理値表といいます コンピュータの中には、血液みたいな感じで電気が流れているわけですが 例えば、 電気回路がありまして 2つの道があるとしましょう 片方には電気流れてるのに片方は電気流れてません これがその電気回路の種類によっては オンになったりオフになったり こんな電気回路をたくさん集めたものが、 集積回路ってやつです コンピュータの電気の流れをコントロールしてくれるわけです そして、電気が流れている状態を1 流れていない状態を0と置いた時に、 その電気回路の種類 を見ていきたいと思います では、最初に例えをちょっと出してみますね 例えば、皆さんはある飲食店を評価する人です 皆さんは、2つの観点でその飲食店を見てます 1つは値段が安く提供されているかもう一つは おいしい そこで安くておいしいものだけを認める! つまり美味しくても高かったら不合格 安くてもまず かったら不合格ってこと もちろん高くて、まずかったらもちろんの不合格です ( イメ (論理程) 高くてまずい AB A.B. 1 0 おいしい 0 安くで おいしい ☑ B a a A はいこちらベン図を利用して書いてみました 皆さんが現在の合格判定としては、青で塗ったところだけです 1はいいよねって評価したところ 0はダメだねって評価したところ じゃあ今度はこれを2つの入力と考えましょう 1がオンになってる状態。 0がオフになってる状態 です。
ページ17:
こんな感じで両方の入力が1の時だけ出力が1になるような回路を論理積回路 (AND回路)といい ます どちらの条件も満たす時だけ出力を返してくれるよねって感じです そして、皆さんは厳しすぎたなと思って 判定を変えることにします 今まで通り、安くて美味しい店は合格です ただ安くてまずい店も合格にします 高くて美味しい店も合格にします。 つまり、安いかおいしいかのどっちかの条件さえ満たせれば合格にしようってことです でも変わらず高くてまずい店は不合格ですよ イメージ(論理和) 高くてまずい AB A+B. 1 おいしい 安くて おいしいB a a そうすると、こんな感じになるかなと思います これも2つの入力と考えると片方が1だったら1を出力してくれるよって感じです このような回路を論理和回路 (OR回路) といいます そしてもう一つ、これはお店の例え使わないほうがわかりやすいと思いますので 否定回路って のがあります。 否定回路(NOT回路)... 0を入力したら1を出力し 1を入力したら、 0を出力する 要は入力と出力が逆になるわけですね ちなみに、この3つを基本論理回路といいます ちなみにこれらを組み合わせてできる回路がいく つかあって ・論理積と否定を組み合わせると論理積と逆の結果が出力されます、、、 否定論理積回路 (NAND 回路) ・論理和と否定を組み合わせると論理和と逆の結果が出力されます、、、 否定論理和回路(NOR 回路) これは難しいんですが 排他的論理和回路というものがあります 一応説明しておくと 1と1が入力されたら0が返ってきます 0と1、10が入力されたら1が返ってきます 0と0が入力されたら、 0が返ってきます
ページ18:
つまり、AとBが同じ数の場合に 0 AとBが異なる数の場合に1が返ってくる めっちゃひねくれてるので 私はこれをひねくれ回路と呼んでます! こういう回路を排他的論理和回路 (XOR 回路) といいます 名称 論理式 回路記号 (MIL) 回路記号 (JS) 真理値表 ン図 AND-Y A AB ・Y BDY B・ B- AB TT A- & 0 Y 0 1 AB 0 0 1 R ≥1 Y 0 11 AND Y = A・B B OR Y = A+B NOT Y =Ā A- Y A- |1 A by 0 1 1 ° NAND Y = A*B NOR EX-OR (X-OR) Y = A+B Y = A+B =Ā•B + A・B AB AB D o-y A- & b-y B R A≥1 -Y b-Y B B- AB BD A| =1 -Y -Y (AB) B- Y = A+B A A-=1 EX-NOR b-y (X-NOR) B. AB = A B+ A・B B- https://indirect2435.jimdofree.com/%E8%AB%96%E7%90%86%E5%9B%9E%E8%B7%AF/ こういう関係になります 難しいんですけど 最低ラインは基本論理回路のベン図・真理値表・ MIL記号の形を覚えてくれればいいかなと思います ④アルゴリズム基本制御構造・プログラミング言語 ここまで皆さん結構難しかったでしょうか? 安心してください。 ここからさらに難しくなりますん で!
ページ19:
自動販売機で買い物する人 自動販売機 メンテナンス業者 商品選択 お金投入 購入ボタンを 押す 購入可能商品 が光る 続ける 商品を取り出 す 買物継続 ? 続けない ある 釣りある? ない 釣銭とる 終わり 商品が出る ランプチェック 一目見たときに、 「分かりやすい」という イメージを持ってもらえるかどうかが重要 おつりが出る お金を回収 釣銭が足りる よう貨幣補充 引用 https://fastclassinfo.com/entry/flowchart tips/ こちらなんですが何か分岐したりしてますね。 ある問題を解決するのにその問題に関する情 報ってどうやって整理していけばいいんだろう そういう手順のことをアルゴリズムと言いまして そのアルゴリズムに含まれる手順をこんな感じで 四角とかひし形みたいなのを使って そんなの矢印でつないでいって こうやって流れを視覚的に見やすいとかわかりやすくしたものをフローチャート (流れ図)といいま す この画像がフローチャートってやつです ちなみに、アルゴリズムをコンピュータが実行できるように記述したもののことをプログラムと言い ます これ本格的すぎますので、ちょっと皆さんに身近なフローチャートを作ってみようと思います
ページ20:
★ 〈フローチャート〉 スタート ↓ PWを入力する こんな感じです No 合ってる? Yes ログイン成功 この際にちょっと丸っこいやつがありますよね これはスタートとゴールだけです。 今回書かれてるものだと 長方形で書かれている 「PWを入力する」 みたいなやつです こいつは処理って名前がついてて 普通に上の方から実行しますよって感じです この矢印で表せてるのが線なんですがこれがシンプル処理の流れを表すんだ。 皆さんが苦手なのは、 ひし形ですよねこれは判断するためのやつで条件によって分岐してい くものになります それでは次アルゴリズムってのは、3つの基本制御構造で表現をしていくって言う話をします といっても、難しい話をします 基本情報技術者試験っていう試験があるんですが、 その過去問を 解くわけでは無いんですが。 その問題とかを見ながらちょっと解説していこうかなと思います (個人情報言いますと、 本人これ4回落ちてます)
ページ21:
A B 真 真 偽 B 真 exit 1 exit 2 https://www.fe-siken.com/s/fekakomon.php こんな感じの問題があります アルゴリズムって基本制御構造っていうのがあるんです その中でも、長方形の箱で表したいわゆる処理ですよね それはシンプルに上から順番にやって いく。 このような構造を順次構造といいます そして今回画像に示している◇系ですよね こういうのを選択構造といいます 条件に合ってるかを計算して、条件に合ってる場合は真 合っていない場合偽と答えを出すこ のような式のことを条件式といいます これをもう一つ、 自分で書いたもので説明します 条件 Yes N 処理A 処理 いろんな分岐の仕方があるんですよ。 巻き戻ったり、別の処理を行ったり 今回は別の処理に進むみたいなケースを考えていきます この条件が正しければ処理 Aがなされるしこの条件に合致しないのであれば処理Bが行われる よと
ページ22:
ちなみにですが 真偽 Yes, No はい、いいえ いろんなタイプが使われるんですけど、まぁ何とか読み取れると 思います そして、次がちょっと厄介ですね反復構造と呼ばれるものです。 教科書によっては繰り返し構造なんて書かれてるものもあります 反復 繰り返す条件 処理 処理 処理 引用 https://edu.watch.impress.co.jp/docs/serial/progedu2/1430697.html こんなかまぼこみたいな端子がありますがこれが基本的に不等式とか論理式が入ったりこん だけの回数繰り返してくださいね みたいなやつが入ってきます。 ここからはプログラミング言語について見ていきましょう まずプログラミングってなんですかという話から始めるとコンピュータが処理できるようにアル ゴリズムを記述することです プログラミング (コーティング)... コンピュータで処理できるようにアルゴリズムを記述すること まず最初に設計しなくちゃいけないですよね この際にどういうプログラミング言語を使えばいい んだろうなみたいなちなみにプログラミング言語はその名の通りです。 プログラミング言語プログラミングを行うためだけに作られた言語 これによって記述されたア ルゴリズムをプログラム(ソースコード)と呼ぶ ちなみに、プログラミング言語ってたくさんあって 有名どころは知っといて欲しい 皆さんが使っていくのは、比較的簡単にコード記述や実行ができるプログラミング言語であるスク リプト言語と呼ばれる種類のやつを扱っていきますね その代表例がPythonとかJavaScript などがあります このような言語を用いてどういう処理を行わせたいのか、そういうことを考えます Pythonをいじってみたいって私は考えてるんですがこのノートだとほとんどお遊びみたいな感じ になっちゃうので Pythonの私が遊んでる様子は、 また別のノートで投稿しようかなと まず、プログラミングですね
ページ23:
プログラムってのは、人間でもある程度わかるように書かれてます これを実行すると、 まず機械だけにわかるようなものに変換されます そしてから人間にわかるよ うに実行結果として出されるわけですね。 プログラムから機械語に直すことを翻訳 そしてそのコンピュータ上で実行するわけです ここで覚えて欲しい用語として、 プログラムはエディタと呼ばれるソフトウェアで作成されますって ところです で、プログラム言語で書かれたプログラムってこの状態だったらもう何の意味もないですだから これを実行するためにはコンピュータ側がその内容を理解してくれないといけないわけこういう ソフトウェアを、プログラミング言語に対しての処理系といいます そしたら次にテストをします この上で作ったプログラムがちゃんと動きますかって言うことを確認することです ただ、昔はですねコンピューターが生まれた初期の頃だと考えてくれていいです。1946年頃と か古すぎるか それより時間はちょっと進んだ位かなくらいの時代を想定してもらって この頃にとってはですね コンピュータがわかる2進数の形を人間が直接理解するのなんて大変 昔は、 2進数を人間が直接指定する形でコンピュータに処理を行わせてたって言われてます わ かりにくすぎますもんね。 だから、この頃生まれた言語としてアセンブラ言語と呼ばれるものが あります それからもっとプログラミングをわかりやすくしないかみたいなやつが高水準言語となります この際に処理系ってやりましたけどどういう風に翻訳させればいいんだろう? て言った時にですね。 まとめて翻訳するか1つずつ翻訳していくかそれで別れます 1つずつやっていくのはインタプリタまとめてやっていくのがコンパイラみたいに分かれていき ますね ちなみにPythonはインタプリタです 実際にプログラムを作るときには、 そのバグとか不具合ですねを見つけることを手伝ってくれるデ バッガと呼ばれるソフトウェアが用いられたりします こんな感じで、プログラムを作るときに、使うソフトウェアをまとめて統合開発環境といいます ⑤ 基本文法 | 変数・配列・代入 ・演算子 ここから3回に分けて基本文法をやっていきます では、最初から問題出しますね 整数型: a, b a←4 b←2 a←a + b
ページ24:
a を出力する じゃあこの時に出力されるものって何でしょうかなんですが その前に知らない単語があると思います 整数型ですって この型って何かって言ったら数字とか文字を入れておく箱だと思ってください この整数型ってのは、 変数の型なんですが 変数は、具体的な数値とか文字を入れておく箱的なものです で、この変数の型が入れるものに対して、 制限をかけることができるんですね 例えば、整数型って言われたら、 小数点がない数字 実数型って言われたら、 小数点がある数字 文字列がつったら文字データを入れておく みたいな感じです プログラミング言語によって種類が異なるものですがね。 変数を利用するメリットは、 具体的な値を書く回数を極力少なくするって言うところです これ間違 えたみたいになってもそこだけ直せばオッケー 実際に実行結果を1行1行書いてみるっていうのが手っ取り早いかなと正確ですし 計算ミスとか しなければ あと、ここでの代入は文字の通り代わりに入れることなんですが ←2 て書かれてたら ○という文字に2を代入しましたって意味です だからこれが実行さ れた場合○=2ってことになります ○の中身が2ってことですね! てことでもう一度見てみましょう 整数型: a, b a←4 b←2 a←a+b a を出力する この問題を解いていくわけですがこの整数型はaとbだ だから、 この2つの文字は、 具体的な数 字が入る箱なんですよと宣言してます。 aに4を代入 bに2を代入してますね つまりこの文字の中身は今代入されたものになります。 では、次 a+bの結果をaに代入してくださいって言ってるので 4 +2ですよね てことで6です。 6をaに代入してくださいってことなのでこの実行がなされたときにはaの中身は6ですね! aの中身を出力してください! だから答えは6です では、次の問題です 文字列型: x, y x←"5" y←"3"
ページ25:
x ← x +y x を出力する もう皆さん余裕でしょう xの中身が"5"yの中身は"3"ですね じゃあこれをシンプルに足し算してあげるから"8" ですね! はい、間違いです 数字を見ただけで、 そんな簡単に判断しないでくださいね~ さて変数の型を見てみますと文字 列型です しかもさっきとは違って、 数字にダブルクォーツが付いてます 実は、 数字でも"" これがついてると文字扱いになるんですよ これは数字の計算じゃなくて、ただただ文字をくっつけてあげるって言う作業になります これを文字列結合なんて言ったりするんですけどね よって文字をくっつけてあげれば良いので 53が答えになります では、次に配列について見ていきたいと思います では、いきなり演習問題から A ← [5, 12, 8, 20, 3] x←A[1] x ← x + A[3] 次の処理を実行した際にxの値を求めてくださいって言う問題です ちょっとこれを画像で書いてみますね A←[5,18,20,3丁 ←ACJ x←x+A[3] y 512 8203 約12 345 状況としては、こんな感じなんです そもそも配列って何かって言いますと 具体的な数値とか文字を複数のデータにまとめて格納し ておく箱の集まり的なものなんですね まず、 1番目の箱には5が入ってます 2番目の箱には12が入ってます。 3番目の箱には8が 入ってますみたいな感じです。 配列の1番の特徴って言っても過言ではないのが値を取り出す際には、番号を指定してあげな いといけないんですね その際に配列の名前 [添字] みたいな記述をします
ページ26:
今回は、配列の名前はAですから A[4] と言われたら20を取り出しますよってことです では、この演習問題の解説です A ← [5, 12, 8, 20, 3] x←A[1] x ←x + A[3] Aという配列の名前があります xにA[1] を代入します そうすると今のxの中身は5ですよね! さらに、次は x←x +A[3]とあるから xは5+8ってことになります したがってこの処理が終わったときの実行結果は13と出力されます 例えば、配列を使用しないで、 プログラムを実現する場合、 かなり変数を宣言する必要があるん ですよ だけど配列だったら数少なくできます 扱うデータの量が増えると、 変数だけで実現する のはめっちゃ大変ですからね。 プログラミングが必須の知識になってきます。 では、演算子を見ましょう 演算子…演算に用いる記号 これだけ覚えてくれればいいです 実際にプログラムをいじりながら慣れていってください。 ⑥ プログラミング基本文法II If文 では見ていきましょう いきなりですが、 演習問題です x17 if x > 5 then x ←10 endif x を出力する では、これで最後に出力される値を求めてくださいって問題です このifは変数の値に応じて処理の内容を変えます。 よって場合に使われます。 例えば、簡単な例であるテストがあります これを50点より大きかったら合格 50点以下だったら 不合格みたいに出力したいと思います if(scoreが50より大きい) result" 合格” みたいな感じです それ以外だったら基本は不合格って返そうね。 みたいに、 変数の値に応じて処理の内容が変わってますよね 一旦不合格の場合は書いており ませんが 今回は記述する ではなくて、読めるようになることが目標ですので
ページ27:
今回の問題だと、 最初にxに7を代入しているので、 中身は7なんですが ただし、こういう条件の場合はということが書かれてます もしxが5よりも大きかったら xに10を代入してねと言ってるんです で、今回は7の方が5よりも大きいですよね だから10を代入する必要があります 従って、現在代入されてるものを出力すれば良いので10が答えになるわけですね ちなみに、条件が複数ある場合にはelseifとかをつけて上記以外でかつ〇〇の場合 else文で上 記以外の場合を表すこともできます 次の問題です x17 if x >= 10 then x ←100 else if x >= 5 then x ←50 else x ←10 endif x を出力する ここでちょっと見慣れない記号があると思いますので、見ていくと >= みたいなやつがあります がこれはプログラミング特有の書き方で 数学とかで言う≧と同じです では、これで何が出力されるか、 最初にやっぱりxに7が代入されてます もしxが10以上だったら xに100を代入してね もしxが5以上だったらxに50を代入してねこの2つの条件どっちにもそぐわないようだったら10を 代入してね と言う問題です 今回は、7について 7は5以上の数ですよね ただ10以上の数ではないです。 つまりxに50を代 入してあげて、それを出力すればいいから 答えは50ってことになります ⑦基本文法Ⅲ 関数 ○整数型: add (整数型: a, 整数型: b) return a + b これを利用して x ←add(3,7) x を出力する これを実行しました ではxはどのように出力されるでしょうか? と言う問題です
ページ28:
その前に関数って何なんだろうって話です yはxの関数である。 とか多分習ってると思うんです けど、あれとは違います。 関数... よく利用する処理をいつでも使えるように定義したもの その処理に必要な値を渡すだけで、 それを使って処理結果を返してくれるんだよという優れもん です めちゃくちゃ難しいやつとか、よく使うようなものも関数として定義しておくことで 関数を利用する だけでいろいろできちゃうわけです いちいち難しいやつを記述するのも嫌ですよね これを使わないとプログラムを変更する際に、 たくさんの箇所を変更しなくちゃいけないとか保 守性が低いって言ったりするんですけどね ではやっていきましょう ○今回ちょっと大きく書きましたが、1番最初の○は関数を呼び出しているんだよってところ ○整数型: add (整数型: a, 整数型: b) return a + b これを利用して x ←add(3,7) x を出力する これだと 1番最初の○整数型 ~a+b までのところ2行目までですね 1行目を呼び出して必要な値を渡してあげると2行目の内容通りに返してくれるんだよ ということですね そうするとadd(3,7) この部分が必要な値になります 3が整数型a 7が整数型b ですので 返してくれるのは3+7なんだ よって、答えは10になる では、次の問題 ○整数型: judge (整数型: x ) if x >= 10 then return x + 5 else return x + 2 endif これを利用して a←judge (8) b←judge (12) a + b を出力する こうしたときに出力される結果を求めてくださいと これは8から見てあげますか もし8が10以上だったこの条件にはそぐわないのでこれ違いま すね それ以外の条件の場合はのほうに該当するので
ページ29:
8 +2を計算するよ だから10だよね。 だから、この10の結果をaに代入します 次に12を見てあげると12は10以上の条件に合いますね つまり12 +5 = 17 だから、 17をbに代入します よって10 +17 = 27 これが答えです ⑧探索と整列のアルゴリズム ここでは、線形探索と2分探索を見ていきたいと思います 線形探索法 (逐次探索法) 最初のデータから順番に1つずつ調べていく方法 例えば 2、4、1、6、8、3 みたいに並んでいる数の列があったとしましょう ここから順番に探していって、6にたどり着くことを考えていきます 1つ目は2だから違う2つ目は4だから違う 3番目は1だから違う。 4番目は6だから見つかった ぜ こんな感じで、線形探索の考え方では、先頭から1つずつ探していきますよってことです だから、 探索対象のデータがn個あったとしたら、 探索が終了するまでって運が良ければ探して るデータが1番目にいれば1回目終了 なるわけですよ。 て事は最小の比較回数っていうのは1回 ただ最大の比較回数ってそのお目 当てのデータが1番後ろにいる場合です つまりn個データがあるのであれば最大はn回となりま す だから、平均してn+1/2回と言うふうになるわけです 探索に必要な時間てのは、 データの個数に比例するっていうことですね これはちょっと頭の片 隅に入れといてくれるとうれしいなと思います。 ただ、こんな1個1個やってくのは効率があんまりよろしくないです てことで、こういうことを考えます 大小の比較をします これは上から順番に (あるいは下から順番に) 整列されているデータに対し て用いることができる手法で2分探索法と呼ばれるものがあります 例えば整列した1から11までの11の数字の中から3を探すって言うことを考えてみます
ページ30:
目標:ろをさがす! 428 © 1, 2, 3, 4, 5, 4, 2, 8, 9, 10, 11 1,2,3,4,5 こんな感じです まず最初に6を考えたいんですが 3ではないので、まず6と3を比較します。 そうすると、3の方が小さいから、明らかに1から5のグループの中に3は属しているんだなって考 えます そしたら今度はまた真ん中を取るって言いたいんですが、 その真ん中が3ですのでこれで探索は 終了ってことになります こんな感じで、 1回比較することに探索の範囲を半分ずつ狭めていくって言う方法です 探索するデータがn個あるんだったら log2n回比較すれば、 短足範囲が1以下になるわけだか ら、探索は終了しますよね 2分探索法は線形探索法に比べたら、 探索効率はいいんです 例えば、こんな感じで整列された1000個のデータがあるとしましょう そうすると 線形探索法 だったら、平均で大体500回 比較したり必要なんですが 2分探索法だった場合log21000回 これを計算して10にはなりませんけど 10くらい 10回位の比較で済むんです。 だからといって、 必ず2分探索法の方が早く見つけられるとは限りません 探してるデータが先頭にあれば、 線形探索の方が早く見つかる可能性はあります 探索範囲が1以下 言い換えるとデータが1つになるまでこの比較回数をaとしてあげると2a=n の関係が成り立つから 2を底として対数をとるとlog2nが導き出せます ちなみになんですがこのノートを見てくださっている方で対数を習ってない方もいらっしゃると思 いますので。がっつり数学では無いですけど、 軽く紹介します
ページ31:
logab a: si b aを何来したるbになる) 例10g28→2を付したら8にする? 山3年 こういうことです 10g28:3 logの右下にちっちゃい数があるじゃないですかこれを底そしてその隣にあるノーマルでかさ (?) の数を真数と言いまして 底を何乗したら真数になるんだろうってことです これをログという記号を用いて表しているんだよってことですね 私も対数自体習ってませんので 身近な数学ができる人に聞いてください。 次に整列のアルゴリズムを見ていきたいと思います まず、整列とは何か 整列 (ソート)... データをあるルールに従って並べること ここでやる整列法は、 クイックソートとバブルソートってやつです 本当は、 ヒープソートとかマージソートとかあるんですけれども、本当に基本的な2つをやるって感 じです クイックソート... 基準値を定めて、その基準値以上の組と、それ以下の組に分けて処理を繰り返 す方法 整列の対象となるデータの中から、 中間的な基準値を定めるってところからやっていきますね その基準値と比較して、大きな値を集めた区分 小さな値を定めた区分には振り分けて分割して いきます これ整列法の考え方で分割統治法と呼ばれる種類のやつを使ってます 分割統治法、、、大きな問題を小さな問題に分割して、それぞれの問題ごとに求めた答えをくっつ けて、全体の答えを求めようとする考え方 例えば2、7、5、6、1 これを5を基準に分割すると
ページ32:
27,5,6,1 5を基準 5以下 2,1 5以上 7,56 こうなります ちなみにこれ5基準にして5以上か5以下になりますので 5はどっちに入っても大 丈夫です。 両方の条件に合致するのでどっちに入れても大丈夫なんですが両方入れちゃうと 5が2つになってしまいますので今回は以上のほうに入れさせてもらいました。 別に以下のほうに入れても構いません でも、これだと、くっつけたときに 2、1、7、5、6になっちゃってまだ完全に整列しているとは言えませんよね ということで、もう一回分割した後のグループで基準値を決めて大きい小さいで移動させていき ましょう 5以下グループは2を基準 5以上グループに5を基準にしましょう 27,5,6,1 5を基準 5以下 2,1 5以上 7,56 2を基準 ↓ ↓ 5を基 2以下以 1 2 ち以下以上 5 7,6 どうでしょう 1、2、5、7、6になりました 5以下のところに5は今度は入ってますが、 基準値はどちらに入っても オッケーなので、今回は以下に入れさせて貰いましたこれで良いでしょうかまだだめですね。 7と6の順番を逆にしたいので今度はどっちを基準にしてもいいんですけど、 7を基準にすると
ページ33:
5以上 7,56 ↓ 5を基 5XT SME 5 7,6 ↓口を基法 ワンワント こんな感じになります しつこいようですが、 基準値は以上と以下は両方含むので、片方だけに含ませてあげて下さい。 どっちをとってもあなたの自由です。 これだったら1、2、5、6、7となりますので、 整列完了ってことになります 次にバブルソートを見ていきたいと思います バブルソート... 左から順番に隣接するものとの大小関係を比較して右よりも左が大きければ交 換をするって言うことを続けていく手法。 これも2、7、5、6、1を使ってやっていきましょう 0 2, 1, 5, 6, 102,5-6,17 そのまま 1,2,5,6,7 そのな 6,1 6 2, 5, 6/1,7 そのまな 2.7 ②2/21/12501 2,7 ③2,5,6,6,112,5 ↓ ⑨ 2,51,6,7 ④42, 2,5,6,7,1 そのまま 2,5, 5,6,7 2,5,6 まず、最初①は2と7を比較するわけですが左の方が小さいですよね。 とするとそのままになり ます。
ページ34:
②は7と5を比較して左の方が大きいので交換をします ③は7と6を比較して 左の方が大きいから交換をする ④は7と1を比較して左の方が大きいから交換をする ④が終わった状態で7が固定されます 固定されてる文字はもう緑で書いちゃいますね ただ全部解説しようとすると、 文字がかかりすぎ てしまいますのである程度規則性は掴めてると思うので、結論だけちゃんと整列されましたね では演習問題です 整列アルゴリズムの一つであるクイックソートの記述 として,適切なものはどれか。 ア 対象集合から基準となる要素を選び,これよりも 大きい要素の集合と小さい要素の集合に分割す る。この操作を繰り返すことで,整列を行う。 イ 対象集合から最も小さい要素を順次取り出して, 整列を行う。 ゥ 対象集合から要素を順次取り出し, それまでに取 り出した要素の集合に順序関係を保つよう挿入し て,整列を行う。 ェ 隣り合う要素を比較し,逆順であれば交換して, 整列を行う。 基本情報技術者試験 平成14年 秋期問題 科目A 問12 クイックソートの説明として正しいものどれかって言う話ですが今やったばっかなんで多分大丈 夫だと思います。 アですね。 ちなみに、この選択肢の中にバブルソートの説明がございますがどれでしょう バブルソートはエですね
ページ35:
⑨モデル化とシミュレーション| ここから2回に分けてモデル化とシミュレーションって話をやっていきたいと思います 現実世界って複雑ですよね じゃあそのちょっと無駄って言っちゃあれですけれども実物とか現 実世界とか後は問題の要素とかそういうのをざっくり抽象化しましょう こんな感じで、 抽象化したり単純化しすることをモデル化といいます 複雑なものをある程度簡単に表現することって思ってくればいいです そしてそのモデル化によっ て作られるものをモデルといいます 本物に似せて作ったものって考えてくれていいです 考えをまとめるとか、 実際にやると危険があるのでとかいろいろあります その単純化したもので 条件を変化させたりして、どういう反応を示すんだろうなとか実際に やってみること 模擬実験をすることをシミュレーションといいます ただ、少なからず現実問題とモデルでは誤差はつきものなんですね 例えば部屋の中で車っぽいモデルが置いてあって実際に運転をしてみるみたいなゲームある じゃないですか あんな感じです モデルにはいろいろなものがあります それを2つの観点から分類してみましょう。 1つは、表現形式による分類 もう一つは、そのモデルの特性による分類です まず、表現形式によって実物モデル (物理モデル) と論理モデルに分けることができます では、その物理モデルをさらに細かく見ていくと 実際の大きさに似せたものであったり後は分子の模型とかそうですね 分子って目に見えない位ちっちゃいものですからそれを拡大している拡大モデルですね 後は、飛行機とかの模型とかもそうですね
ページ36:
https://www.irasutoya.com/2016/10/blog-post 30.html?m=1 地球儀なんかまさにそうですよね 地球を物理的に表現したものですよね。 これって、 実物モデルの中でも縮小モデルなんて言われたりするやつです そして論理モデルは、 数式モデルと図式モデルってのに分かれます 例えば多分好きな人が少ないV=RI 電圧=抵抗×電流 うん オームの法則ですね これって、そのものの状態を数式とかで表したものじゃないですかそういうのがまさに数式モデ ルと呼ばれるものです そして
ページ37:
注文 注文ID 日付 郵便番号 住所 損客ID OFK) 顧客 顧客ID 名前 電話番号 メールアドレス 住所 注文詳細 製品 注文詳細 ID 製品ID 注文ID (FK) 名前 価格 価格 製品ID (FK) https://astah.change-vision.com/ja/manual/455-erd.html こちら、エンティティーとリレーションシップの関係を用いたER図と呼ばれるものです こうやって、 情報とか人とか物の流れはもちろん状態の変化とか要素の関連をこうやって図式 化したものを図式モデルといいます 次にモデルの特性による分類について見ていきたいと思います 時間の経過とともに変化しない現象をモデル化したものである静的モデル 時間の経過とともに、 変化する現象をモデル化したものである動的モデルの2つに分かれます HXH こちらいつ書いたか忘れた 水分子のモデルです 静的モデルの例としては、分子モデルとか後はフロアマップとかもそうですかね
ページ38:
基本は変化しませんね 一方で、動的モデルの例を挙げるとすると、 浴槽に溜まるお湯の量であったり おそらく一次関数 とかでやったんじゃないですか? お湯がこれだけ入ってます。 そしてこの量を一定に浴槽に入 れていきます。じゃあ何分後お湯の量はどれぐらいですか? みたいな問題 中学校の数学でやってるんじゃないかなと思ってます これって、 動的モデルの中でも規則的に変化する現象じゃないですかこういう系のモデルは特 に確定的モデルといいます 確定的モデル、 規則的に変化する現象のモデル 動的モデルは、もう1種類あって 例えば明日の天気、晴れですよさらにその次の天気晴れで すよ。 さらにその次の天気は雨ですよとか。 天気って2日晴れだったら、 次の日は必ず雨だとかそういった規則性なんてないじゃないですか 後はサイコロの出目とかもそうですね こんな感じで、不規則な同走する現象とか、 偶然的な要素によって決まるようなものを確率的モ デルといいます では、モデル化の手順を見ていきたいと思います ①モデル化の目的を明確にする どういう現象を調べるの? 何を予測するの? 何のためにモ デルを作るの? こういうことを明確にしていかないといけないことですよね。 例えば、家を建てる時 その家のちっちゃくしたモデルとかを見ればどういう間取りなのかってい うのを共有できたりしますからモデル化はめちゃくちゃ重要なんですね ②モデルの構造や構成要素を決める モデルの特徴を表す要素っていうのを限定して、その要 素と要素の間の関係の明確にするところです 要素が多すぎてとモデルが複雑になってしまいますのである程度は限定しなくちゃいけないん だよってところです。 ③モデルの表現方法を決めていきます その対象の特性を表現できる形式を選んで、 そのモデ ルでモデル化をしていきますってことですね 先ほどやった実物モデルとか、論理モデルとかそういうやつです ⑩ モデル化とシミュレーションII ここではちょっとシミュレーションの問題を使っていきたいなと思います ここでこういうことを考えていきたいと思います 皆さんは、ソシャゲのガチャを引くこととしましょう そこでそのレアキャラクターの排出率は10%と します。 つまり、10回引けば1回は出るような確率ですよね 確率的に1回は出そうなんだけれども 実際に10回引いても全部雑魚キャラだった て事はよくあ ると思います
ページ39:
そしたら、一度ガチャを引くごとに1から100の乱数を発生させることとします そして1から10が 出たら当たりと表示することにしましょう。 こういうシミュレーションを10,000回行いました これを10回引きます 1個もレアキャラクターが出ませんでした。 その割合だったらシミュレー ション上だったら大体何%位になるでしょうか て言うと 大体35%位なんです 計算方法が一度引いて外れる確率は0.9です それが10回連続ですから 0.910 を計算すると大体35くらいになります 意外と少ないですね このようにして規則性のない数 (乱数) を利用するシミュレーションをモンテ カルロ法といいます 次に待ち行列を見てみましょう 待ち行列... 処理が終わるまでどれぐらい時間を待つか 例えば、行列ができているお店を見たときに 一人当たり何分かかってるかどのくらいの頻度で 人がやってくるのか それを踏まえて、大体どれぐらい待つんやろうね みたいな話です ここで皆さんが考えていくのは、M/M/1モデルってやつです 到着速度と処理時間は、ランダムで1つの窓口で、 全部処理を行っているよってケースですね ただ、簡単なシミュレーションでは、この処理時間は同じ時間であるって考えることが多いです そして待ち時間は、この到着の間隔とサービス時間から算出することができます 到着時間よりもサービス時間の方が長いとお客さんどんどん溜まっていきますよねだから後か ら来たほうが待ち時間はどんどんどんどん長くなって行くよねってことです 実際これぐらい覚えとけば大丈夫かなと思います 第4章 情報通信ネットワーク技術・データ ①ネットワークと通信 私たちは、コンピュータとか、 スマートフォンとかいわゆる情報機器って言われるやつですよね これは通信回線をうまい具合に利用して接続されて情報をやり取りしているわけですね そこでネットワークって言葉を勉強しましょう ネットワーク... お互いの情報機器が情報をやり取りできるようにケーブルや無線通信でつないだ もの コンピュータとか周辺機器とかのやりとりとか、そんなイメージが強いかなと思います 要はね、極端な話 パソコン二台をケーブルとかでつないでもネットワークではあるんですね
ページ40:
こうやってネットワークを利用してデータを送り合っているんだと イメージとしては、 こんな感じですかね 本当はもっともっともっと複雑ですけれどもある程度単 純化させて貰いました こんな感じで、 ネットワークが張り巡らされているおかげで遠く離れた人とかに情報 例えるん だったらメールとかね。 そういうのを送ることができるんだよ。 そして、ネットワークとインターネットの違いって何なんだろうねってところ少し見ていこうかなと思 います ネットワークは限定的なつながりを指す言葉なんです インターネットは、世界中のネットワーク同士をつなげたようなでかいネットワークなんです ちょっとこれについては ①の後半で詳しく説明していくこととしましょう ネットワークには範囲によって2つ分けられるんですけど 学校とか会社って言ったまあまあ狭い 限られたような範囲で、 コンピュータとか周辺機器を接続 したネットワークってのがあります。 こいつのことをLAN そしてこのLANを対をなすようなものとして 距離的に離れた場所にあるLAN同士を接続したネッ トワークのことをWANといいます LANのLはlocal WANのWはwideなので! そしたら、まずはLANについて扱っていきます ローカルエリアで使われるようなものですが 通信は基本的に安定していまして高速であると そして、LANは直接的にケーブルでつなぐ有線LANと電波を通して接続する無線LANがあります 有線LANの規格で1つだけ覚えて欲しいものはイーサネットと呼ばれるやつで ネットワークの状況を監視して空いてるタイミングで通信するっていうやり方 (CSMA/CD方式) で やってます データが衝突した場合、 もう一度送信するって感じですね
ページ41:
無線LANで覚えて欲しい事はWi-Fiです 利便性がすごい高いです。 電波さえ届けば使えます からね! ただ盗聴される恐れもあるって考えると、 それなりのセキュリティ対策は必要になって きます ここで、情報通信に必要な機器の名前とその役割を覚えてもらいたいなって感じです その機器 の見た目と名前と役割をリンクして覚えてもらえればいいなと思ってます。 まず1つ POWER WIRELESS INTERNET ROUTER https://free-icons.net/pcsp022/ こちらですね ルータと言いまして IPアドレスを認識して、 ネットワーク同士の通信を中継するよ うな機器になります と言いましても、皆さんまだIPアドレスについて教えてないので、 なんやねん。 それと思っちゃうか もしれませんが。 インターネットに接続されたコンピュータとか、スマートフォンの機器 そいつらに危機を識別する ために割り当てられるやつがあります これがIPアドレスですね 例えば、とあるネットワークAとネットワークBがあって、これが別の地域にあるとしましょう Aにこういうものが届いてきました 「宛先IPアドレスはネットワークBの中にあるよ」 そしたら次々 とルータを介して目的のネットワークまで到達していくんだよって話です ただ、その宛先IPアドレスを見てね、 自分のネットワーク宛であればそれを捨てちゃうんです
ページ42:
ただ、実際にはもっと複雑に、 ルータ同士が入り組んでるんですよ どうしてこっちに送ったら目 的のところまで行けるんだろう て言うことで、次にルーティングって話をしていきたいと思います どのルータに送ったら宛先のネットワークへの通信が早く行えるかってのを判断することをルー ティングと言いましてこのルータは、 経路の表を持ってるんですこの経路表のことをルーティン グテーブルといいます そして、その経路、選択の判断材料となるもの これをメトリックなんて言ったりしますが 基本的に経由するルータの数が少ないほうがいいよね みたいな感じで1番少ないやつを選択す るのが基本ですがそこの経路が故障しちゃいましたってなった時は別の経路になったりします。 なお、この宛先ネットワークに至るまでに経由するルータの数のことをホップ数なんて言ったりし ます ちょっとこの後説明しやすくするために、あえてホップ数みたいに難しい言葉を使います ルータールータロト ルータA ルータ ホップ数が少ない方 ルータ ルータールータD こんな感じですね やっぱりルーティングテーブルの役割っていうのは、 最適な出口を選ぶことなんですよ テーブルを見て目的地に到達するための出口から、 データを出せば良いかってのを決定するん ですでもルーティングテーブルがないと通信としては迷子状態になるんですよ。 ちょっとルーティングテーブルはIPアドレスができてないと後々きついので後で解説したいと思い ます 続きまして
ページ43:
· Fek Parts .. Power • 8-Port Gigabit Switch with 4-Port PoE https://eonet.jp/column/recommend/easy-to-understand-switching-hubs.html こんな道具です これをハブといいます。 たくさん穴が空いてますねみたいな感じがありますがLANケーブルとかを挿すようなところになっ てます。 コンピューターとかの機器をケーブルで接続するようなものになりますね で使うハブとか、ケーブルによって通信速度ってのがあります この通信速度を表す単位として、1秒間あたりに送ることができるデータ量っていうことでbpsを使 います Wi-Fiにおいてもハブと同じような役割をしてるものがありますってそれをアクセスポイントと言い ますので覚えておきましょう。 では演習問題です 問56 IP ネットワークにおけるルータに関する記述のうち, 適切なものはどれか。 ア IPアドレスとドメイン名を対応付ける。 イIPアドレスを利用してパケット転送の経路を選択する。 ウアナログ信号とディジタル信号を相互に変換する。 エほかのコンピュータから要求を受けて、 処理の実行やデータの提供を行う。 ITパスポート試験 平成21年春期 問56より引用 これはもう説明通りって感じでしょうけれども IPアドレスを認識してネットワーク同士の通信を中 継するものだっていましたよね ルータは経路選択も行う的な話もしましたので、多分大丈夫だとは思うんですがイですね。
ページ44:
ちなみになんですがアの説明はこの後やります。 これはDNSが答えになるわけなんですが。 ドメインネームシステムって言ったりします ② プロトコルとパケット通信 ①の方で説明しました。 インターネットについて 複数のネットワークが、 世界レベルで結びついた、巨大なネットワークなんだみたいな話をしたん ですがそれの続きって感じです。 そしたら、この通信を可能とするためにいくつか決まり事が存在してるんですね 例えば「ケーブルの種類これにしてよ」 「こうやって届ける相手を指定してよ」 「文章はこう やって2進数のデータにしてよ」 「通信がかぶらないように、この信号を見てよ」 などなど、多すぎてキリがないんですよ これらを簡潔に言うのであれば 文章をどうやって伝えればいいのかこんな感じで通信状態を伝えようとか みんなが好き勝手な変換方法とかを利用してたら違う決まりを使っている人に送れますか? 無理ですよね! だから、 通信は全部同じ決まり事のもとで行われてるんだと この決まり事のことをプロトコルといいます 要は、技術の約束事のことです やっぱり、たくさんのプロトコルが存在するからそれが互いに互換性がないと通信がうまくいかな い原因になるわけです だから、この通信には、こういうプロトコルを使おうねみたいに標準化したものがございます その代表例として覚えておいて欲しいのは2つ1つは、OSI基本参照モデルですね
ページ45:
OSI参照モデル アプリケーション層 7 ユーザーがアプリケーションを操作するための規格 6 プレゼンテーション層 データ形式の違いを補正し、 正しく表示するための規格 5 セッション層 通信開始から終了までに関する規格 4 トランスポート層 通信における信頼性を確保するための規格 3 ネットワーク層 迷わずデータを届けるための規格 2 データリンク層 隣の機器に確実にデータを送るための規格 1 物理層 コンピュータからケープルへデータを渡すための規定 https://kanda-it-school-kensyu.com/network-basic1-contents/network-basic1_ch02/network-b asic1_0202/ こんなやつです OSI基本参照モデル...システム同士の通信を円滑にするために標準化された設計モデル 現在のコンピュータ同士は基本これですね 原則としてこれに従って設計されたりします。 さっきのプロトコルの前に出した 通信変換とかケーブルの種類とか、 電子的なところから物理的 なところまで幅広くなってるんです これは、それぞれの階層に分けたものになりますね 下に行けば行くほどなんか物理的になっていくみたいな感じですかね 上の方がなんか電子的 ですよね。 ただ皆さんこれ1から7層まで全部覚えなくていいです ただその代わり TCP/IPプロトコルスイー トってのを覚えてもらいます。
ページ46:
OSI 参照モデル TCP/IP の階層 プロトコル 第7層 アプリケーション層 第6層 プレゼンテーション層 アプリケーション層 HTTP,SMTP,POP3 FTP,SSH, SSL/TLS, RIP,SNMP... 第5層 セッション層 第4層 トランスポート層 トランスポート層 TCP,UDP... 第3層 ネットワーク層 インターネット層 IP, ARP,ICMP, IPsec... 第2層 データリンク層 ネットワーク Ethernet, PPP... インターフェース層 第1層 物理層 https://attadesign.co.jp/blog/590/ この真ん中のやつです 右のやつは見ての通りプロトコルがたくさんあります。 これ全部覚え ろって言うのは無理難題ですので。 今後情報1レベルで使っていくのは多分6個位ですかね ちなみに、私は右に書かれているプロトコルは全部覚えてます 無理矢理覚えさせられました ていう私の昔話は置いといてこの真ん中のやつを覚えてください OSI基本参照モデルよりかは数が少ないから覚えやすそうですよね! 実は例えばですけど、 OSI基本参照モデルを見てもらうとネットワーク層がこのプロトコルであ ればトランスポート層はこれにしとけばトラブルは少なくなるよね みたいに、実はプロトコル同士には相性っていうのがあります で、大体おんなじ団体が作ったプロトコルってセットで使われることが多いんですよこのセットを プロトコルスイートと言いまして TCPとIPが代表してTCP/IPプロトコルなんて言われたりします 現在の通信のほとんどこのモデルをメインとしてます そして、このTCP/IPの通信方法の代表例としてパケット通信っていうのがあります そして、インターネットでデータを通信するときに、 プロトコルのそれぞれの階層で情報を追加しま すこの情報をヘッダといいます このヘッダにはその階層で必要となる送信元とか送信先であったり大きさとかそういったパケッ ト自体に関する情報も含まれております ちょっと画像では長いので、最初の頭文字4文字だけで書きます
ページ47:
アプリケ パパケット ③トランス ヘッダ TCP Vパケット ②インター IP TCPパケット ①ネットワMAC IP TOP パケット メール内容など こんな感じです これだけ覚えてくれればいいですかね ちょっとパケットの説明に移ります 例えば、 皆さんこんな場面にはあんまり遭遇したことないと思いますが 例えば、 皆さんの前の人がエスカレーターでタンスを持っていたとしましょう そうすると、多分ふらついて 隣にぶつかりまくったりするんでしょうかね そうすると、運ぶスピードは遅くなりますよね ところが、これを複数に分割するとしましょう そしたら持ち運びやすそうですよね。 これをデータに置き換えて考えると ある回線を通りたいデータがいます このデータはめちゃくちゃでかいです。 なので通ろうとする と通信が遅くなります。 だから、これをパケットと呼ばれる単位に分割します つまり細かくしたデータがパケットってこと ですね そうやって送ってるんですよ これをパケット交換方式なんて言ったりします そして、このパケットには、 宛先の情報とか付与されてます この情報をヘッダといいます これで、ネットワークを詰まらせずとは言いにくいですが 詰まらせにくく通信が可能になり送信 中にエラーが発生してそのパケットだけをもう一度送り直せばいいだけ て言うことなんですね ③ IPアドレスとドメイン名 ここでやっと出てきました。 IPアドレスです。 最初に通信の流れを見てから、IPアドレスはちょっと詳しく見ますね
ページ48:
まず自分のパソコンから相手のパソコンに対してメールを送ることを考えます ただ、実際には、 複数の端末を経由して行うわけですよね 自分のパソコンをA 相手のパソコン をBとします そして、今後、端末のことをノードと言うこととします じゃあ、ここで皆さんに聞きたいこととしてはAからBにメールを転送するのに 何が必要でしょう か? 宛先のノードがどこかがわからないと送ることできませんよね ノードの ノードの A 現在、こういう状態ですがこういったノードを特定するためのアドレスをIPアドレスといいます インターネットに接続するのノードはインターネット上で一意のIPアドレスを持っていないといけな いんです つまり かぶらない唯一のものを持っていないといけないわけです。 このIPアドレスを、 特にグローバルIPアドレスといいます だから、通信には宛先のIPアドレスがなくちゃいけないわけですね ただ、今回の画像を見てみると AとBの間には端末が二台あります 運が良く、AとBがつながってれば良いものをね 宛先だけあっても今回直接届きません てか大 体直接届きません。 だから、途中でどこを経由したらいいんですかっていうのが必要なんですよ もっと言えば、次にどのノードに送ればいいんですかって話ですこの時使うアドレスをMACアド レスといいます 隣接するノードのやつですね。 やっぱりIPアドレスとは違うんです 機器ごとに定まっている固有のものなんですね。 ここでん? と思ってくれた方は鋭いです。 IPアドレス 一意 被っちゃいけない唯一のものだ MACアドレス 機器ごとに定まっている固有のものだ でも、IPアドレスはかぶらなければ、 私たち自分で設定することができます もちろん決まりはあり ますけどね。 また、IPアドレスは最終目的地のやつなんですよ てところはちょっと押さえといて欲しいですね。 ちなみに、先ほどグローバルIPアドレスってのが出てきましたよね! 実は、 それに対してですね 企業とか組織って言った独立したネットワークの中で使用することを 前提としたIPアドレスも存在してます。 これをプライベートIPアドレスと言いますので、セットにし て覚えておきましょう では、IPアドレスの表記方法について見ていきたいと思います 10進数表記: 192.168.100.1
ページ49:
2進数表記11000000.10101000.01100100.00000001 こちらご覧ください 実はIPアドレスの正体ってこんな数字の羅列なんですよ。 このノートを見てくださってる方は、パソコンで見てるかスマホで見てるかタブレット見てるかわか りませんが自分のIPアドレスを知りたい方は 「確認くん」というサイトで確認することができます 気になったら見てみてください! 話は戻りましてピリオドで区切ってある4つの数字が出てくると思うんですね さて2進数では何桁 あるでしょうか 32桁あります。 こんな感じで32ビットで、IPアドレスを表す方式をIPv4といいます このvはバージョンですね だからバージョン4ってことです。 IPL4 ||00000010|0|000.al|001000000000 ↓ 192.168.100.1 こういう関係性になってます IPアドレスを32桁の2進数で表して、8ビットずつピリオドで区切って10進数表記にするって言う感 じです ちなみになんですが、 これって232通りの情報を表せるわけじゃないですか ゆうと大体43億通り の情報を表せちゃうんですね そして、IPアドレスは、 2つの部分から構成されてて 画像の青色の所と緑色のところと赤色の所が例えば企業とかが組織単位にネットワークがあっ たとしよう そのそれぞれのネットワークをかぶらないように識別するための部分なんですね この部分ネットワークアドレス部と言います 画像の黄色いところここは同じネットワークに属するノードをかぶらないように識別するための 部分ですここホストアドレス部といいます このホストってのが、パソコンとかスマホであったり、 そういう通信するノードのことです つまり、IPアドレスによって、 そのノードはどのネットワークに属しているのかなとか、どのホストに 属しているのかを識別することができるってことですね ただちょっと厄介なことを言うと、 ネットワークアドレス部はですねどこまでがネットワークアドレ ス部なのか 変化することがございますのでとりあえず前側だなってところは押さえといてくださ い。
ページ50:
ただ、この話を聞いて、ホストアドレス足りなくねと思いますよね (圧) 実はそのホスト数に応じてホ ストアドレス分の長さを変えたいって言うやっぱできます ただこれは情報Iの範囲から大きく外れ ますので、説明は割愛します これを可能にする技術をサブネットマスクなんて言ったりするんですけれどもこれはぜひご自身 で調べてみてください これ以上行き過ぎると難しすぎちゃうので、一旦変えますね 実はIPv4だとIPアドレスが枯渇してしまうみたいなことが懸念されちゃうんですね 実は、通信機器の数って43億よりも多いって言われてるんですよ ただ、IPアドレスってそのノードを特定するためのものじゃないですか 明らかに足りないって言う ふうになってから さらに、数を増やそうってことで128ビットでIPアドレスを表現するIPv6が出てきましたね 128ビットって事は128桁になるわけですよねさすがにちょっと長すぎるので、ここで2進数バー ジョンは書きません なので、基本的な記述のところだけ見ていきます 128ビットをまず最初に16ビットずつ分けます そして、 分けられた2進数を1ブロックごとに16進数 に直していきます 10進数じゃなくて16進数になりますのでアルファベットとかが登場したりしますね。 そして、バージョン4だとピリオドで区切っていたものが、今度はバージョン6だと : で区切ります これをコロンなんて言ったりするんですけどね そしてこれがちょっとややこしいんですけど、 省略前の形 (完全表記) 2001:0db8:85a3:0000:0000:8a2e:0370:7334 省略後の形(圧縮表記): 2001:db8:85a3::8a2e:370:7334 これが0000が連続して出てくる場合は、一応そのかわり:: こんな奴が出てくるわけです ただ ちょっと要注意点はございますが、 それは後々お話しします。 でも、これだとわからんくない?いう話なんよ だからこれがあるって事は、 0が連続していてなおかつ、 省略する前の形は8ブロックあるはず だから今回の場合、 省略した後は6ブロックですけど、 明らか2つブロック分が省略されてるんだ なってことがわかります ただこれはなぜかよくわからないんですが :: を使えるのは1回までです だから、複数箇所で0が連続してる場合は片方は省略して :: でいいんだけどもう片方は省略し てはいけません どこを省略してるのかわからんから では、次に宛先IPアドレスを取得する方法を考えてみましょう IPアドレスって、それぞれのノードに一意に割り当てられてるものってのは、もう皆さん大丈夫で しょう ただ、これ欠点があります それは覚えにくいんです。 だから、アルファベットとか数字を使って文字列に置き換えましょうってことでこの置き換えたも のをドメイン名といいます
ページ51:
要は、インターネットの世界で、 ウェブサイトがどこにあるかみたいなその住所的なものだと思っ てくれればいいですよ! https://www.kanalilith-ramen.com こんな感じですね。 めちゃくちゃ単純ですけれども。 ※このURLは架空です。 華菜リリスラーメ ンのURLになります。 自分の脳内世界の人気メニューは 星屑クリスタル冷麺だそうです httpsの正体は後々やりますが、先にこの後ろ側の記述を見ていきたいと思います www、、、 というホスト kana-Lilith-ramen、、、 ドメイン名となります こんな感じで階層別に表記していく そして、このドメイン名とIPアドレスの対応関係で ドメイン名からIPアドレスを変換する仕組みの ことをDNS そしてこれを行うサーバ つまりドメイン名とIPアドレスとの対応を管理しているものが DNSサーバとなります ドメイン名とIPアドレスの対応を示す情報ってのは、DNSゾーンファイルって言うテキストファイル にDNSレコードとして記述されてます ドメインはIPアドレスを人間目線でわかりやすくしたものなんだなって思ってくれればいいです URLがわかれば、ドメインがわかって、 そのドメインからIPアドレスを入手するって感じです そして、IPアドレスとドメインを紐付けた対応の表を持っているのがDNSサーバってことになりま す 私たちが何らかのウェブサイトを見たいなって言いたいとき それを送付する際にその前に DNSサーバにリクエストとしてドメイン名を送付しているってことになります そして、DNSサーバ側は受け取ったドメイン名をもとにそのドメインに対応するIPアドレスを自分 が保持している対応表から探していってそのIPアドレスをレスポンスとしてクライアントに教えて いるって感じです そうすることで、クライアントは宛先IPアドレスを入手できるわけですね では、過去問演習です
ページ52:
問60 インターネットでは, 通信プロトコルとして使用されてきた IPv4 以外にも IPv6 が 使用され始めている。 IPv6 の説明のうち、 適切なものはどれか。 ア IPv4 のネットワークとは共存できないので, 独立したネットワークとして構築す る必要がある。 イ IP アドレスのビット長が IPv4の4倍あり, 心配されていたIPアドレスの枯渇が 回避できる。 ウ IP アドレスは数値ではなく,ホスト名とドメイン名による文字列で構成されてい る。 エ暗号通信の機能はなく, 暗号化と復号は上位層のプロトコルで行われる。 ITパスポート試験 平成22年 秋期 問60より引用 この問題、 ちょっと難しいですが 目的としては、IPv4だとIPアドレスの枯渇問題が懸念されてるわけでした それを解決するため に作られたのがIPv6でしたね したがって答えはイとなります ④ WWWと電子メール ここで見ていくのはウェブページについてです 皆さんを多分聞いたことあると思うんですよWWWって じゃあそれって何なんて話なんですね ワールド・ワイド・ウェブの略です www... インターネット上のウェブページを閲覧できるサービス ちなみに、皆さんウェブこれの意味わかりますかね 意外と知らない人は多そうですけれどもク モの巣です あの有名な節足動物ですね クモ類に属します。 てっきり生物の話題が出ると、こうやって話題の転換が起きちゃいますので、出来る限り生物の 話は控えます 私のことをよく知ってくれてる人は生物の人だみたいな印象があると思いますが 笑 では話戻りますね ここからはその仕組みを見ていきたいと思います。 ここでウェブページを閲覧するソフトウェアそしてそれを管理するコンピュータ この2つの間で 成り立ってるんですね 前者の閲覧するソフトウェアをウェブブラウザあるいは単にブラウザっていいます ソフトウェアというか、プログラムというかって感じですが 例を挙げるとSafariとかChromeとかedge なんかが有名ですね そして、ウェブページを管理するコンピュータのことをウェブサーバといいます 今後ウェブブラウザはブラウザ と略させていただきます
ページ53:
このページを見たいですっていうリクエストを送ったら、 それをWebサーバがレスポンスとして送っ てくれるって感じです そういう認識を持っていただければいいかなと思ってます ちなみに、このページはウェブページと呼ばれる単位ですので覚えておきましょう これあるまとまりを持ったウェブページの集合をウェブサイトと言ってるような感じです もちろん、これはブラウザ側がスタート地点になりますよね 例えばあるサイトのページを開きた いです。 そうするとウェブブラウザからサーバに対して http://www.kanalilith-ramen.com こういうのをウェブブラウザからウェブサーバにやってるわけですよ インターネット上でウェブページを見るのに ウェブページの場所を表すものが必要になります まさにこの記述なんですがこれをURLといいます 記述形式と言った方が適切ですか Uniform Resource Locatorの略 とりあえず、情報の場所を指定する記述形式の事なんだなって事はまぁ覚えといてください 実際は、URLと送信元のIPアドレスを両方送りますからね そして、それに合致するものを宛先IPアドレスとして返すってことをやってます ブラウザ URL送信元IPアドレス Web '7-115 宛先IPアドレス ドメイン名の2 URL ex) http://www.Kanalilith-ramen.com ビプロトコル https←httpにSSL/TLS が追加された。 ※雑です 状況としては、こういうことです で、緑で書いてあるんですけれども HTTPと書いてありますよね URL の場合だと小文字では書 いてありますが、こいつの正体はプロトコルの1種です Hypertext Transfer Protocol の略です このプロトコルは、ウェブサーバとブラウザの間で、 Web情報をやり取りするためのプロトコルな んだよってところはちょっと押さえといてください さらに、こいつにSがついた形httpsとか、見たことあるんと思うんですが HTTPSはこれに送るデータの暗号化であったり デジタル署名をつけたりつまりはIPとかアプリ ケーションの仕組みを変更しなくても、 安全な通信が行えるようになったよねみたいなやつです データの暗号化とか、 デジタル署名とかはこのノートの⑤で扱っていきます
ページ54:
送られたら、ウェブサーバ側では文字列の情報のファイルとかそういったものを宛先のIPアド レスとして返すっていう感じです ただ、ウェブページを管理するコンピューターなのでそういった意味わからん記述がなされてた りするんですよ そして、このウェブページに作成する際に使われるの言語の名前をちょっと覚えてもらいたくて これをHTMLといいます Hypertext Markup Language の略 つまりハイパーテキストで記述しているんですよ ハイパーテキスト... ハイパーリンク機能を使って互いに関連付けられたデータ また、新しい言葉が出てきたウェブページにおいては、別の場所にある情報とそれを関連付け る機能がありまして、この機能をハイパーリンク機能といいます 自分のファイルから、他のファイルとか文書とハイパーリンクを貼ってつなぐことができるもの れもハイパーテキストってこと ちなみに、HTMLのMに該当するところ マークアップとあります 実はタグで構造化してたりする んですね。 実は文章とか表とか画像とかリンクっていうのはタグと呼ばれる文字列を使って指 定されますね こうやってタグで構造化してるんですが、 こういう系の言語をマークアップ言語と言います 文章の構造とか、文字の大きさとかの修飾情報を記述するもんです そして、こういうのってクライアントとサーバーで構成されてるじゃないですか こういう系のシステムをクライアントサーバシステムといいます このクライアントサーバシステムは概念です 目的の処理をサービスを要求するクライアントと サービスを提供するサーバに機能分割をすること こうすることで、 特定のアプリケーションとかコンピューターに依存しないような柔軟な分散処理シ ステムの建築を可能にすることができるよってことですね 本来は、サービスを要求するプロセスと、 それを提供するプロセスが、 互いに通信しながらやるこ とを指す言葉です あと1つだけ覚えて欲しい言語ウェブページに関するもので色とか大きさとかそういったものを 指定するものをCSSといいます では、ここまででWWWの話を終わりにしたいと思います 次に電子メールについて見ていきたいと思います
ページ55:
問82 PC1のメールクライアントからPC2のメールクライアントの利用者宛ての電子メー ルを送信するとき, ①〜③ で使われているプロトコルの組合せとして,適切なも のはどれか。 ☑ // メールサーバ メールサーバ PC1 ① (2) (3) ア POP3 POP3 SMTP イウエ POP3 SMTP SMTP SMTP POP3 POP3 SMTP SMTP POP3 ITパスポート試験 平成31年 春期 問82より引用 PC2 -
ページ56:
問96 A さんは次のように宛先を指定して電子メールを送信した。 この電子メールの受信 者に関する記述のうち, 適切なものだけを全て挙げたものはどれか。 [宛先] To:B さんのメールアドレス Cc:C さんのメールアドレス Bcc:D さんのメールアドレス, Eさんのメールアドレス (1) CさんはDさんのメールアドレスを知ることができる。 (2) DさんはCさんのメールアドレスを知ることができる。 (3) EさんはDさんのメールアドレスを知ることができる。 ア (1) イ (1), (3) ウ (2) I (2), (3) ITパスポート試験 令和6年 問96 より引用 ではいきなり過去問じゃなくて、 その他得ための基本知識を身に付けていきましょう! インターネットを利用して、メールを送受信する仕組みのことを電子メールと言います そして、こ の送受信するためのソフトウェアをメーラといいます 電子メールでは、ユーザ名とドメイン名を@で結んだメールアドレスっていうのを宛先として利用 するんだよってところです 現在、私罰ゲームで 華菜リリス(リリス)という名前でアプリをやっていますので kana_lilith@example.com こんな感じですね ユーザ名@ ドメイン名 みたいになってますよね! そして、電子メールっていうのはメールサーバと呼ばれるコンピューターで受け渡しが行われる そしてこのメールサーバーの機能としてメールを保管するものがあります。 これをメールボック スといいます。 クライアントA 迯メールサーバ SMTP 受信メールサー クライアント SMTP Pop IMAP 画像で表すとこんな感じ 青文字と赤文字で書かれてる SMTPとかPOPとかIMAPって何やろうって言う話ですね
ページ57:
やっぱりこれってネットワークの通信である つまりプロトコルが定められてるんですね この青文字と赤文字で示したのはプロトコルになります この3つ覚えてください SMTP... メール送信に関するプロトコル 要はメールを送信するための決まり事を定めたもので す POPとIMAP... メール受信に関するプロトコルだから、メールを受信するための決まり事を定め たものなんだと そして、今思ったでしょう メール受信はプロトコルが2つあります。 ただ、厳密にこの2つはちょっとだけ違うんですね POPは受信したメールをサーバから自分の端末にダウンロードする形 つまりサーバ上にはメー ルは残らないってことです IMAPはサーバ上にメールを残しておくんですね つまりスマホとかそういった別のデバイスとか を利用しても見ることはできますよ。 現在こっちの方が主流になってますね。 では、ここまで確認完了ってことで 最初の過去問を解いていきたいと思います
ページ58:
問82 PC1のメールクライアントからPC2のメールクライアントの利用者宛ての電子メー ルを送信するとき, ①〜③ で使われているプロトコルの組合せとして,適切なも のはどれか。 ☑ // メールサーバ メールサーバ PC1 ① (2) (3) ア POP3 POP3 SMTP イ POP3 SMTP SMTP ウエ SMTP POP3 POP3 SMTP SMTP POP3 PC2 こちらですねまずPC1からメールサーバに対して電子メールを送信しています ①は送信に関わってくるプロトコルだろうなってことが予測つくと思うのでSMTPとなります よってアイは除外できます ②はサーバー同士のメールの転送です やっぱり送信に関することですので SMTPですね。 ③はメール受信に関することですのでPOPかIMAPかっていう推測がつくわけですね ただ、今回はIMAPがございませんので POPとなります 以上より、この問題の答えはエになります では、今からアドレスの指定先ってのを見ていきたいと思います 3つ To、、、 メールを送る主な相手のアドレス 必ず1人以上指定しなければならない Cc、、、 参考程度に送る相手を入れるところ、 指定はしてもしなくてもオッケー ※内容はToと変わらない
ページ59:
Bcc、、、 他の受信者に知られずに、 同じ内容を送る相手 ここに指定されたアドレスは、 受信者 一覧を表示されたりはしません 例えばToにAさんを入れたら 主に送りたい相手はAさんですよ CcにBさんを入れたとすると 参考程度にAさんと全く同じものを送りますよ BccにCさんを入れると 同じものが送られてくるけどCさんに送った事はAさんとかBさんから見 たらわからないってことです AさんとBさんに何か隠し事をしたいんでしょうね それでは演習問題行きます 問96 A さんは次のように宛先を指定して電子メールを送信した。 この電子メールの受信 者に関する記述のうち, 適切なものだけを全て挙げたものはどれか。 [宛先] ToB さんのメールアドレス Cc:C さんのメールアドレス Bcc:D さんのメールアドレス, Eさんのメールアドレス (1) CさんはDさんのメールアドレスを知ることができる。 (2) DさんはCさんのメールアドレスを知ることができる。 (3) EさんはDさんのメールアドレスを知ることができる。 ア (1) イ(1),(3) ウ (2) I (2), (3) この問題ですね AさんはBさんとCさんとDさんとEさんに情報を送りたいと思ってます アドレスの指定先がこん な感じになってます。 それでは、 正誤判定をやっていきたいと思います (1)CさんはDさんのメールアドレスを知ることができる これはバツですよね 他の人たちに内緒でDさんに送ってます DさんはBccに入ってますので、周りからは分かりません (2) DさんはCさんのメールアドレスを知ることができる ○ですね Ccに入っていますので、 全員わかります (3)EさんはDさんのメールアドレスを知ることができる これですね ちょっと難しめです。 だけどDさんはBccに入っていることを考えるとバツなんです よね 従って、正しいのは (2) だけだからウとなります
ページ60:
⑤情報セキュリティ ここではセキュリティについてやっていきますで、 皆さん多分こう思ったでしょう 第1章でやっ たやん。 ただ、そこでは、こういう犯罪があるんだよ マルウェアとかいたねとかそんな話なんですけれど ネットワークの世界で 考えられる対策って言うことをここで勉強していきます 例えば、情報を暗号化してみたり デジタル署名とは何なのかそれについても学んでいったり パリティについてやってみたり そういうことをここではやっていきますね 例えば、 皆さん、ネットワークの通信において、いろんな危険が考えられると思うんですね ① 盗聴 ②改ざん ③なりすまし 例を挙げると、この3つ ①へぇーそんなこと やるんか ②内容変えた31 ③なりすましたら 華菜リリスが恋をしちゃいました (設定ですよ) 私がある人に「大好き!」と電子メールで送ったとしましょう ところが、それを盗聴されてたら恥ずかしいですし 改ざんされて「大嫌い」 みたいに変わってたら 嫌ですし。 なりすましされても嫌ですよね! 全部意味がわかると思いますが データのやりとりを盗み読まれたりデータのやり方を書き換えられたり正当な人物になりすま して、データをやりとりしたり いやですね! こういったリスクが考えられるわけですがこれを完全に消し去るって事は不可能なんです。 だから、 最低限のレベルまで持ってきたい
ページ61:
ですねここでまず 盗聴の対策を考えていきたいと思います 敢一 おはよう 暗号化 暗 かびよん 復号 鍵:unicodeを攻字ずつずらす これですね ちょっと用語を確認していきます 重要な意味を持つ文書本来の姿を変換して意味のなさそうな文字列で表現したものを暗号とい います つまり、言い換えるのであれば、 特定の人にしかわからない形にしたものです そして元の文章本来の姿 つまり暗号化されてないただの文 画像で言うと 「おはよう」のことで すこれを平文といいます。 この平文を暗号にすることを暗号化 そしてこの暗号化した後の文 画像で言うと「かひよん」の ことを暗号文といいます また、この暗号文を平文に戻す行為を複号といいます そして、下に青文字で鍵と書かれてますね Unicodeを1文字ずつずらす。 と書いてあります。 実はこれが平文を暗号化するための手順なんだってことです。 この手順を鍵と言ってるわけで す こうやって、暗号にするための鍵をその文書を読む人だけが知っていれば、 情報の漏洩を防げ るってことです 暗号化するためには、 平文を暗号化できるルールがあって、なおかつ暗号を平文に直せるルー ルがあるこの2つのルールがないときついですね そして、平文が重要なものであればあるほどそれを読みたいって考える人は増えますよね つまり、不正な手段で入手しようって考える人がいたり 暗号の特性から推定して復号してこよう としたり だから、暗号を作ればいいってだけの単純な話じゃないんです。 だから、鍵を他人が入手できないように管理したり 変換のルールをもっと複雑にしようとかす る必要が出てくるわけです てことで暗号化方式ってのを見ていきたいと思います いろんな分類があるんですけれども、今 からは代表的な2つを見ていきます。 共通鍵暗号方式と公開鍵暗号方式ってやつです
ページ62:
共通鍵暗号方式... 暗号化と復号で同一の鍵を用いる手法 つまり、送信者と受信者では、同じ鍵 (共通鍵)を持っていることとなります (共通鏡 平時 送信 受信者 こういうことです データを送る側と、 データを受ける側で同一の1本の鍵を用いるってことになります だから鍵を しっかり管理しなくちゃいけないってことですね。 ただ、共通鍵が絶対に外部に漏れないようにしないとどうなるかわかりますかね そうなんですそれ以降の情報が全部筒抜けになります だから配布するのがまあまあ手間です 漏洩したらもう意味がないですからね そして、1対1だったらいいんですけど送り手がたくさんいる場合に、 鍵の管理が相当大変になる のわかりますよね 送り手の数に合わせて鍵を用意しなくちゃいけないから しかもそれが漏れたら全部筒抜け 人数が多くなるだけ、 鍵の管理が大変になるってところですね 代表例はAES てことで、それを改善したのが公開鍵暗号方式です 公開鍵暗号方式... 暗号化を行う鍵と復号を行う鍵を別々にした方式。 まず、この方式では鍵を2つまず用意します 鍵A(受信者の公開鍵)と鍵A' (受信者の秘密鍵) ここで鍵Aで暗号化されたものは鍵A'だけでしか復号ができない ここで暗号化する鍵のことを公開鍵 復号する鍵のことを秘密鍵といいます これからは、アルファベットで表したものは公開鍵 そしてアルファベットに’(ダッシュ)をつけたも のは秘密鍵だと思っといてください
ページ63:
受信者 A ↓ 平時化 晧 送信者 受信 AI 時 平 受付 足 鍵Aがあります 受信者の公開鍵です。 これを利用してデータを暗号化して送ります。 別に、暗号化用の鍵が公開されてても復号化の鍵が秘密になってれば大丈夫ですからね だから送信者は受信者の公開鍵を利用して送るわけです そしてこれで暗号化されたデータって のは受信者が持っている秘密鍵でしか復号できません。 てことなんです。 と言っても、あんまりイメージわかないと思いますのでちょっとふざけた例えを使いますね 皆さんは、両親の家から旅立って一人暮らしを始めたとしましょうか それで皆さんは見られたくないものを両親の家に忘れたことに気づきます ラブレターでも黒歴史ノートでもなんでもいいんですが それをバレないように郵送してもらいたいわけです ラブレタ 皆さん A oké ok こんな状況です そこで、 共通鍵暗号方式のイメージを掴んでもらいたいんですが このラブレターに鍵をかけて もらおうって考えるわけですよ 共通鍵だったら、1つの鍵で施錠と解除するのを両方やるわけです 共通鍵で鍵をかけました これだったらもう見られる必要はないです その状態で郵送しました が、残った鍵は渡さないといけないですよね。 ただ、郵送したとして、 漏洩する可能性もゼロではないので 直接持ってきてもらうとかしかできな いわけですね
ページ64:
一方で、 公開鍵暗号方式であれば自分で公開鍵と秘密鍵を持って 公開鍵だったら仮になくし たとしても、そこまで大きい支障は無い だから、 公開鍵を両親の家に郵送します。 もう一つの秘密鍵は、 自分で厳重に管理することとします だったら、両親は公開でそのラブレターを鍵かけて郵送してもらえば届いたら自分が持ってい る。秘密鍵で復号すればいいって話ですね ちなみに、公開鍵の代表例はRSAってやつですね 大きい数の素因数分解が困難なことを利用 した方式になります。 こんな強そうな公開鍵なのに実は弱点があります それが共通鍵暗号方式に比べて、 処理に時間がかかったりすることです だから、 共通鍵と公開鍵のいいとこ取り出てきたのがハイブリッド暗号方式です 公開鍵の良いところって 鍵の配布が簡単であったり 鍵数はあんまり増えないみたいなところ があります ただ、演算が非常に複雑 CPUとか大きな負担が強いられることになるわけです 特に大きいデータをやり取りする際はもっと時間がかかります だから、 データ本文のやりとりは、 時間の短い共通鍵を 共通鍵の受け渡しに公開鍵を利用しま す これがハイブリッドです! ここまでで盗聴について見てきました では、次に改ざん対策でハッシュ関数ってのを見ていき たいと思いますと言いたいんですが ハッシュ関数とかは残念ながら 情報Iの範囲では扱いませ んので割愛します てことで、ここまで鍵について勉強してきましたが、 一旦実力チェックってことでITパスポートの過 去問行きましょう!
ページ65:
問60 公開鍵暗号方式で使用する鍵に関する次の記述中の a, b に入れる字句の適切な組 合せはどれか。 それぞれ公開鍵と秘密鍵をもつ A社とB社で情報を送受信するとき, 他者に通信を 傍受されても内容を知られないように, 情報を暗号化して送信することにした。 a を使って暗号化した情報をB A社から B社に情報を送信する場合, A 社は 社に送信する。 B 社は A 社から受信した情報を b で復号して情報を取り出 す。 a b ア A社の公開鍵 A社の公開鍵 イ A社の公開鍵 B社の秘密鍵 ウ B社の公開鍵 A社の公開鍵 I B社の公開鍵 B社の秘密鍵 ITパスポート試験 令和4年 問60 より引用 この問題ですね 公開鍵暗号方式に関する問題です A社からB社に情報を送りたいって言ってます これはAが送信者 Bが受信者になってるので AはB社の公開鍵を用いて暗号化してますよ ね! て事はB社自身の秘密鍵で復号すればいいってことになりますので a、、、 B社の公開鍵 b、B社の秘密鍵 となりまして 答えはエとなります
ページ66:
問57 暗号化方式の特徴について記した表において, 表中の adに入れる字句の適切な 組合せはどれか。 暗号化/復号の 暗号方式 鍵の特徴 鍵の安全な配布 相対的な処理速度 a 暗号化鍵と復号鍵が異なる 容易 C b 暗号化鍵と復号鍵が同一 難しい d a b C d ア 共通鍵暗号方式 公開鍵暗号方式 遅い 速い イ 共通鍵暗号方式 公開鍵暗号方式 速い 遅い ウ 公開鍵暗号方式 共通鍵暗号方式 遅い 速い エ 公開鍵暗号方式 共通鍵暗号方式 速い 遅い ITパスポート試験 令和6年 問57 より引用 では、次こっちの問題です まず、鍵の特徴として暗号化鍵と復号化鍵が異なるって事はこれが公開鍵暗号方式ですね 一方で、下の同一って事は共通鍵暗号方式ってことになります 相対的な速度 公開鍵は複雑のため時間がかかります つまり遅いってことです。 共通鍵は単純なので速いとなります したがって、答えはウとなるわけです ただ、デジタル署名の方を扱っていきますね これの凄いところは改ざん・なりすまし 両方対策 できるんですね さっきは、公開鍵暗号方式でやりましたが、 こことはちょっと違って秘密鍵を利用し、 暗号化するこ とになります デジタル署名本人の秘密鍵を使用して、 メッセージやファイルなどの電子文書に付加する電子 的データ デジタル署名を作る時と検証するときに、公開鍵暗号方式と同様に秘密鍵と公開鍵のペアを使 います
ページ67:
ハッシュ化ヒ Jrwich ハッシュ化 ハッシュ値 ハッシュ値 先一国 ハッシュ値面 「送付共公開鍵 で復号 膨化 なりすまし対 (送信秘密鍵) ここで見ていくのは、なりすましの対策ですね まず送るデータをハッシュ化したハッシュ値を用意します このハッシュ関数を用いてハッシュ値を生成します ハッシュ関数は難しいので割愛しますとは 言ったんですけど、 何か値を作るんだなと思っといてください そして、この作られた値ってのは、元に戻すことがほとんど不可能です そして、ハッシュ値を送信者の秘密鍵を用いて暗号化していきます 秘密鍵で暗号化したって事 はそのペアが公開されているんですよね これいいんですかね だって公開されてる公開鍵で復号できちゃうんですよ 言い換えるんだったら、誰でもデータを確認できちゃうわけです ただ、これって元のデータをハッシュ化して得られたハッシュ値ですよねこれを暗号化してるわ けですから一応問題は無いんです。 そして暗号化されたデータと、 元のデータを相手に送り付けます そしたら、受信者側はまずハッシュ化します そして、 暗号化されたものを送信者の公開鍵を用い て復号します ここで送信者の公開鍵で復号できた つまり送信者の秘密鍵で暗号化された つまりなりすまし はされてないよねってことです 今回、デジタル署名の本当の目的ってのはデータを安全に送るためではなくて 送信者の本人 確認をするためなんです 本人であることを証明するために送信者の秘密鍵を用いた暗号化し ているってところなんですね では、過去問演習行きましょう
ページ68:
問39 ディジタル署名において, 発信者がメッセージのハッシュ値からディジタル署名を 生成するのに使う鍵はどれか。 ア 受信者の公開鍵 ウ 発信者の公開鍵 受信者の秘密鍵 エ 発信者の秘密鍵 応用情報技術者試験 平成25年 秋期 科目A 問39より引用 この問題はもう皆さん余裕です これはエですよね 本人確認のためのものですから。 では、次に公開鍵っていうのがちゃんとそれが本人のものであるかを証明することについて見て いきたいと思います ここで出てくる認証機関が認証局です 第三者機関で認証局自身のデジタル署名を施したデジタル証明書と呼ばれるものを発行して、 公開がちゃんとそれが本人のものであるよねってことを証明してくれます 申請者(公開鍵を利用する人)は認証局に対して公開鍵を提出して、証明書の発行をまず依頼し ます 正しくは、 公開鍵と身分証明書ですね u 公開鍵 認証局(CA) Pan nna デジタル証明書 こういう関係性です そして内容をチェックして本人であることが確認取れたら デジタル証明書 を発行してくれるよねって関係ですね これを発行してもらえれば 公開鍵は本人であることが証明されるのでデジタル署名とか暗号 化を実施することができますよねってことです こんな感じで、 認証局とか、 公開暗号方式を利用して安全に通信を行う仕組みをPKI (公開鍵基 盤)といいます それでは、セキュリティの最後として、パリティについて勉強していきます
ページ69:
パリティチェック... パリティと呼ばれる誤り。 検出用のビットデータに付加してデータの整合性を検 査する方式。 1ビットの誤り検出しかできないために、 連続したビットに誤りが起こる現象 (バースト誤り)には対 応できません 一度、ビット列の中の1の数が奇数になるように、パリティビットを追加してみるって言うことを考え てみましょうか 奇数パリティなんて言ったりするんですけどね。 1010000 これを奇数パリティにしてあげると1の数が偶数ですよね つまり先頭に1をつけてあ げます よって11010000 これでオッケーです 逆に1011000 これだと既に奇数になってるので、 先頭につけるのは0ですね よって、01011000 となるわけです じゃあこれで一旦通信してみましょっか 奇数パリティ E ⑤ 11010000 ・パリティビット 01011000 11010100 通信 010/00/0 a 通信したら、こんなことになりました この右の方で緑で書かれてるのがパリティビットです そして、通信した後のおかしくなってるのが青で書かれてます 通信中にトラブルが発生しちゃった場合ですね 上だったら、1の数が偶数になっている よってこれが間違いであるよということがわかりますね つまり、誤り検出ができたわけですが、誤りを訂正することはできません。 あくまで、パリティチェックは誤りを検出するってところなんですよ 訂正ではないので間違えない ようにお願いします。 複数箇所誤りを含むと 間違ってるのに検出できないなんてことが出てきます だから、 100%検出できる方法ではないんだよねってところを押さえといてください パリティは付与する方向によって名前が全然違います 横だったら垂直パリティ 縦だったら、 水平パリティ 横と縦両方だったら、 水平垂直パリティなんて言ったりします ただし、水平垂直パリティの時だけはちょっと厄介 1ビットの誤りを訂正できます 片方だけだっ たら検出だけです。
ページ70:
水平垂直パリティの場合 1ビットの誤りの検出・訂正ができますと ただし、片方だったら1ビットの検出のみちょっとここは押さえといてください 皆さんお疲れ様でした ここまででネットワークの分野は終わりです ここからはデータについて 勉強していきたいと思います。 ⑥データベースの基本 ここからはデータベースって言われるものを勉強していきます そもそもデータベースって何なんでしょうかね? よくDBと略されたりします。 データベース... 規則に従って整理されたデータの集まり そしてこのデータの整理法みたいなも のをデータモデルといいます そして、その規則の種類によって、いろんなデータベースの分け方がございますが皆さんが 扱っていくのは関係データベースと呼ばれるものです 関係データベース 教科書によってはリレーショナルデータベースって書かれているものもあると 思いますが、 同じものです ただ、このノートでは関係データベース あるいは略して、 RDBと言わせていただきます 行/タプル 列/フィールド 主キー ID 氏名 部署コード 部署コード 1 山田 1001 1001 部署名 営業 2 佐藤 1002 1002 製造 3 鈴木 1001 1003 経理 4 田中 1003 5 原田 1002 6 山口 1002 7 山本 1001 8 阿部 1003 関連/リレーション https://fulfillment-c.com/database/what-is-rdb/ こういう系のデータベースです 表形式で表したものですね。 一旦そういうイメージで大丈夫です この表が表すものって何かって言ったらですね データの関係性なんです。 この横列のことをタプルと言いますレコードとか行とか組とか言ったりしますがね そして、逆に、縦の列だと属性とかアトリビュートとか言います 例えば、名前の縦列 属性を見てもらうと 全部名前ですよね こういう風になってることで、 データベースのデータとかを効率よく検索することができるわけです ね
ページ71:
検索... データベースから必要な情報を取り出すこと 例えば、学生番号の属性で文字が入ってたら困りますよね! こんな感じで、大量の情報を蓄積してるわけです この蓄積したデータの操作ができるソフトウェ アってのも存在していて、それをデータベースソフトウェアといいます 後は覚えて欲しい用語として2つあるので個別に説明します データベースサーバ... 複数の人が共通に利用できるデータベースを管理するコンピュータ DBMS... データベースサーバーのように複数の利用者がアクセスしたりするようなデータベース を作ったり、管理したりするシステム そして、DBMSにおいて、データの同時アクセスに対する矛盾の発生を防止し、 データの一貫性 を保つための機能を排他制御と言います ⑦データベースの管理 実際データベースって複数の処理が発生することがございます そうしたときにおかしくならない ようにしましょう て言ったときの処理単位のことをトランザクションといいます データベースを動かすために、 SQL っていう言語が必要なんですけれどもそれを行うための最 小単位だと思ってくれればオッケーです 例えば ATM 500円 1500 * 2000 ↓ 2000 1000 こういうことを考えます ある人は、もともと1500円持ってます そしてそのうちから500円を別の口座に移しました はい、そうするとこれは500円マイナスになるので、 1000円 間違いないですね
ページ72:
ところが、こうやって映している途中に、障害が発生してしまいまして 確かに500円は行ってるん だけど、表示が2000円のままから変わりません おかしいですよね。 通信の不具合で処理が失敗してしまったって感じです ただ、最初の処理は成功してるんですよ つまり500円消えちゃったみたいなこうなると結構ま ずいのがわかりますかね 特にこれが大きい金額とかだときついですよね。 この時の処理を見てみましょう その時に、送る側をAさんの残高 送られる側をBさんの残高としましょう ①Aさんの残高から500引く ②Bさんの残高に500足す この2つの処理がなされてるんですが ①が成功して ②が失敗してる状態です だから、 実際にこういうシステムを構築するためには両方が成功して初めて処理が完了するん だとするんです。 だから、この例だと①と②を合わせてトランザクションっていう感じですね ちなみに、こういう処理のことをトランザクション処理という このトランザクションには必須の特性が4つほどあるんです ACID特性なんて言われたりするん ですけど。 Acidと聞いたら 理科が得意な人は酸だ!みたいになるかもしれませんが、 多分関 係ないです 実はこの4つの特性をやりたいんです でも情報の教科書とかには基本書かれてませんので割 愛します。 ただ、ACID特性のIだけはやっておきます この後ロックについてやるときに必要になるので 隔離性、、、 トランザクション同士の実行順序によらず、 結果が一定である では、ロックについてやっていきますねこれも残高の話を用いて説明していきます。 今度はちょっとリアリティーを持たせるために大きい金額でやってみますか ①Aさん→しさん ①Aさん さん ②Bさん→Cさん A: 16000 1:20000 C: 300 D 2400 この2つの処理を行います
ページ73:
まずAからCに5000円送金します その時に、最初にAさんの残高を取得してその後残高から5000円引いたものを新しい残高とし てAさんのところに登録します 次Cさんの残高を取得して 残高+5000円を新しい残高としてCに登録します て言うのがざっくりとした流れ BさんからCさんも同様ですよね BさんからCさんも5000円送金で やってみましょう。 この2つの処理が同時に行われるってことをちょっと考えます AC、、、AさんからCさんに5000円送金する B C、、、BさんからCさんに5000円送金する このように今から表記していきます AC①Aさんの残高を取得、、、 16000 B→C②Bさんの残高を取得、、、 20000 AC③残高から5000円引いたものを、 新しい残高としてAに登録、、、 11000 BC④ 残高から5000円引いたものを、 新しい残高としてBに登録、、、 15000 AC⑤Cさんの残高を取得、、、 300 B→C⑥Cさんの残高を取得、300 AC⑦ 残高から5000円足したものを、 新しい残高としてCに登録、、、 5300 BC⑧ 残高から5000円足したものを、 新しい残高としてCに登録、、、 5300 こういう処理がなされてます 数字 はわかりやすく処理ごとに残高の数字を振ったもの ここでおかしいと思いますよね ⑦・⑧の処理で、両方とも5300です 2人から5000円ずつ送金し てもらえたのに実際反映されてるのは片方の5000円です 本当は10,000円プラスされてないといけないんですけれどもね こうやって1つのデータベースに 対して、 複数の処理を同時にやらせようとすると 結果がおかしくなっちゃうんです これを防ぐための機能がロックです ACの時に先にデータベースにロックをかけておきます こうすることでロックをかけてる方のト ランザクションが終わるまではもう片方のトランザクションは実行されず待たされてる状態になり ます つまり、今回で言うと、ACのトランザクションがロックかけてるのでB→Cの処理は今待たさ れてるってことです だから、正しく処理が完了されたらロックが解除されるって仕組みです 次に、BCがデータベースにロックをかけてこの送金処理が実行されることで、ちゃんとCの残 高が10,300 になるわけですね ただ、ロックをやってると1つだけ困った状態に陥ることがございます ロックを複数のデータに対して行うと、お互いにそのロックの解除を待ち続けてしまう こんな状態 になります。この状態をデッドロックといいます
ページ74:
では、次にデータの損失を防ぐ仕組みについて見ていきたいと思います やっぱりデータベースって多くの重要なデータが保管されてます そういったデータが消失してしまったらどうでしょう だめですよね だから、データを復旧する技術っていうのが確立されてるってことで、 その技術を勉強していきた いと思います データベースを復旧させる技術は、ロールバックとロールフォワードってあります の前に、コミットについて先にやらせてください コミット... トランザクションの中で行われた変更を確定して、 データベースに反映させる処理 これで原子性を確保するわけです と言いたいんですが、 原子性とは何か これって先ほどやりましたACID特性のAですね トランザクションの処理っていうのは全部実行 される または 全く実行されないの2極化になるよ このいずれかを担保しますよってことです。 つまり中途半端がないってことです。 全部の処理が成功したことを確認した後にコミットすることで、 原子性を確保しているって感じで す 1つでも成功してなかったらコミットしませんってことですね では、復旧についてやっていきましょう まずロールバック... トランザクション処理が失敗した際に行うもの 更新前ジャーナルを利用して、トランザクション処理を実行する直前の状態に戻る こういうことです DB トランザクション * 更新前ジャーナル トランザクション処理が途中で失敗しました だから、更新前ジャーナルを利用してトランザク ションを実行する直前の状態まで戻すわけです トランザクションの失敗をやり直したいだけですからね 失敗したトランザクション処理を取り消す 操作だとも言えるでしょう 復旧に使う際の予備データのことです。 更新前ジャーナル... トランザクション処理によって変更される対象のデータに対し、トランザクショ ンを実行する直前の状態の予備を取ったファイル データベース全体のコピーじゃないところには気をつけましょう
ページ75:
では、次にロールフォワードについて見ていきたいと思います ロールフォワード... 障害とかで、 データベースが破損した場合に行います これは障害発生直前 の状態に戻りますね。 ここで使うのは、更新後ジャーナルとバックアップファイルの2つです これはトランザクション処理とは関係なく、障害とかでデータが破損したりしたときの復旧です ま ず最新のバックアップファイルを用いてデータベース全体を復旧させていきます ただ、これだと、バックアップ時点から障害までの変更が反映されてません だから、この後に更新後ジャーナルっていうのを用いてその間に行われた変更内容とかも復旧し ます バックアップファイル... 定期的に取得しているデータベース全体のコピー 更新後ジャーナル... 変更対象のデータに対して、トランザクション実行直後のデータを記録したも の それでは、次にバックアップについて見ていきたいと思います バックアップ... データベースを複製して、 別の場所に保存すること フルバックアップ... データベース全体(=すべてのデータ)をバックアップする 差分バックアップ... 直前のフルバックアップから変更分だけをバックアップする 増分バックアップ... 直前のフルバックアップまたは増分バックアップからの変更分だけをバック アップ それでは演習問題いきましょう 問63 トランザクション処理におけるロールバックの説明として, 適切なものはどれか。 ア あるトランザクションが共有データを更新しようとしたとき,そのデータに対 する他のトランザクションからの更新を禁止すること イ トランザクションが正常に処理されたときに, データベースへの更新を確定さ せること ウ何らかの理由で, トランザクションが正常に処理されなかったときに,データ ベースをトランザクション開始前の状態にすること エ 複数の表を, 互いに関係付ける列をキーとして、一つの表にすること ITパスポート試験 平成30年 秋期 問63より引用 ちょっとここまでの内容が少し難しかったんですが、わかりますでしょうかね 明らかにエに関しては教えてないのでてか情報Iの範囲ではないので、 答えとしては除外しま しょう ア~ウまでの用語は全部答えられたらいいかなと思ってます アは排他制御の説明 イはコミットの説明 従って答えはウになります
ページ76:
問71 図は処理1, 処理2の順でデータベースを更新するトランザクションの処理フロー を示している。図中のa~cのうち, コミット処理 (処理1, 処理2の更新結果を確定 させる処理)に該当する箇所だけを全て挙げたものはどれか。 開始 処理 1 処理が 正常終了したか? Yes 処理 2 No 処理2が No 正常終了したか? Yes a 終了 b C ア a 1 a, b b, c I C ITパスポート試験 平成26年 秋期 問71より引用 次の問題ですねこれはちょっと難易度高めではありますが 結論を言うとアになります トランザクションは、 更新が正常に終了した場合のみデータを更新します つまり、1つでも異常があればロールバックする必要が出てきますよね だからaだけがコミット処理 残り2つはロールバック処理ってことになります ⑧データの収集と尺度 では、ここからはデータベースも終わりましたので、データについて見ていきましょう まずデータを収集する手法は2つ覚えてください 対象となる全部のデータを集めたり調査することを全数調査 これに対して、その対象の1部を取り出して、 データを収集したり調査したりすることを標本調査と いいます 実際に多くの意見を集めたり、大規模な実験も行うのは大変だからインターネットで公開されて 無償で二次利用可能なデータ(オープンデータ)を使ったりします
ページ77:
ここからはデータの整理を見ていきたいと思います データは尺度水準によって4つに分類されます 尺度水準... データが表す情報の性質の分類の基準 まず大きく質的データと量的データに分けて 質的データの中でも、順序とかそういうのは関係なくて、区別とか、 分類のために固有の名前と か番号をつけましたって言うデータを名義尺度といいま 質的データの中でも順序には意味があるんだけど、 その間隔には意味がない数値が割り当て られてるようなデータは順序尺度といいます よく学校で渡される5段階評価のシートとかあれとかまさにそうです 5のほうがいいよねとか。 だけど、1と2の間 2と3の間 必ずしも均等であるかと言えばそうではないみたいな感じ 量的データの中でも間隔の差は一定だけど、 比率には意味がないようなデータを間隔尺度とい います 学校の学年とかもそうですね 後は温度℃とかもそう だから 1年生と2年生では1年ごとになるわけじゃないですか だから間隔としては一定ですけれ ども 2年生は1年生の2倍だというわけでもなさそうですよね 量的データの中でも間隔とか比率に意味があるようなデータを比例尺度といいます 身長とか体 重とかそういうのです。 さっきから言ってる質的とか量的とは何かって言ったカテゴリとして把握可能なのか数値として把 握可能なのかってところで分類してます ⑨データの分析! ここから⑨⑩0 で扱っていく内容は 数学の方でも同じことをやります だから、このノートで解説する時も、やっぱり数学と一緒になっちゃうかなって感じがしますので できれば数学系のノートを見に行くことをお勧めします 私の説明、結構わかりにくいと思いますので では、やっていきましょう 最初に、データの欠損値と外れ値について見ていきたいと思います
ページ78:
150 150 10 100 50 50 0 50 100 150 200 https://bellcurve.jp/statistics/course/12929.html 0 まずこちらをご覧ください 赤丸してあるところが明らかに他のデータから値が離れすぎちゃって ますよね こんな感じで、他の多くのデータから大きく離れた値のことを外れ値といいます あるいは、データの値がもうよくわからん収集されなかった こういう値は欠損値といいます 特に入力ミスとか、測定ミスとか、そういうことによる値は異常値として扱います 例えば、おそらくこの問題は生物基礎をやってる方は余裕だと思うんですが Q動物細胞において2番目に多く含む物質を次のうちから選び 番号で答えなさい ① 炭水化物 ② 脂質 ③ タンパク質 ④ 核酸 こういう問題があったとしますちなみにこれ答え は③なんですけれども今回重要なのここではなくてですね この問題をテストで200人に出したとします そしたら基本的に① ~ ④でばらけるじゃないですか ただ、その中に1人だけとか⑤と答えた人がいます これは明らかに入力ミスとして見なせますよね 従って⑤は異常値であると考えるんですね 次に、統計に使われる指標を見ていきたいと思います なんですけど、 そもそも統計ってなんですかねって話です 統計...データを集めて、全体の傾向を割り出すこと 例えば、平均値とか中央値とか最頻値とか範囲とか分散とか標準偏差とかそういうのがあります ここで見ていくのは代表値って言われるやつ 平均値と中央値と最頻値を見ていきたいと思いま す ⑩ で分散と標準偏差はやっていきたいと思います 普段だったら、最後に過去問を解く予定なんですがここでもう過去問を出しちゃいます。
ページ79:
問59 次のデータの平均値と中央値の組合せはどれか。 [データ] 10, 20, 20, 20, 40, 50, 100, 440, 2000 ア 平均値 中央値 イ ウ H 20 40 300 300 40 2020 40 40 ITパスポート試験 令和4年 問59 より引用 この問題を元に考えていきたいんですね 代表値... データ全体の特徴を1つの数値で表したもの そしてこの代表値は3つあります ここでは、あんまり難しいことやりたくないので簡潔に説明します ●解き方のポイント 平均値xの求め方 n人の値が、X1,X2,X3,…, Xn のとき、平均値は、 x=1/17 (x+x2+..+x) n データの合計 https://www.try-it.jp/chapters-6303/sections-6304/lessons-6313/ 平均値... すべてのデータの合計+データの個数で、算出できるもの 例えば、簡単な例を出しましょう [データ] 18、12、16、20、10
ページ80:
とありますこの時の平均値って言われたら すべてのデータの合計は18 +12 +16 +20 +10です ねこれ全部やると76になるかなと。 76をデータが5個あるので 76 ÷ 5 = 15.2 だから、 平均値は15.2 ですよねってことです 過去問の問題を見てみると データの合計を計算すると つまり全部足すと2700になるかなと思 います それを2700をデータの個数で割り算してるわけですから。 今回、データは9つですね 従がって、2700 ÷ 9 = 300 となりますので、 平均値は300ってことになります 中央値(メジアン)...データを昇順、あるいは降順に順番に並べて行った時に、真ん中にくる値の 事ですね さっきのデータを利用して中央値、今度は求めてみましょう [データ] 18、12、16、20、10 ただ、これだと数値がバラバラなので、 左側を小さくしていくと 10、12、16、18、20になります ここの真ん中ですから16ですよね。 よって中央値は16ってことになります ただ、データが奇数個だったら真ん中を判別するのは簡単ですよね じゃあ偶数だったら真ん 中ないやんと思いますね そしたら、偶数のデータを用意してみましょうか [データ] 10、11、12、16、18、20 これを用意しました では、この中央値を出してみましょうか そしたら真ん中にいるのって12と16ですね じゃあこの2つの平均を取ってあげましょう。 よって 12 +16をして28 そして28 2 = 14 よって中央値は14ってことになります では、過去問だったら 10, 20, 70, 20 (40), 70, 100, 480, 200 4402000 中央値 40 H こういうことになるわけです
ページ81:
端っこから右左右左、、、 スラッシュを入れて行くのが私流です 次に最頻値ですね 最頻値 (モード)... 出現頻度が最も高い値 [データ] 10、11、10、13、10、12、11 みたいなデータがあります あるとしましょう。 このデータにおいて最も頻繁に出てくる値って何 でしょうかね 3回出てきてる10ですよね したがって、このデータにおいての最頻値ってのは10になります 代表値はここで終わりです では、次に度数分布表ってのを見ていきたいと思います データを整理するための手法です 度数分布表とヒストグラム 【統計学をやさしく解説】 10 8 階級 数 相対度数 累積 (万円) (人数) (%) 度数 6 85~108 5 16,7 5 4 108~131 8 26,7 13 2 131~154 8 26,7 21 154~177 5 16,7 26 0 177~200 4 13,3 30 85~108 108~131131~154 177~200 営業売上額 引用 https://wakara.co.jp/mathlog/20251007 今からやってくるのは、度数分布表とヒストグラムってものです 実際に計算するというよりかは 情報では部分の名前を覚えてもらいたいって感じなんですけれどもね まず、 画像の左のような表を度数分布表といいます こうすることで、 何かの傾向がわかりやすく なるわけです。 そして、この度数分布表で、 区切られたそれぞれの区間のことを階級といいます そして、その区 間の幅のことを階級の幅 それぞれの階級に含まれる値の個数を度数 そしてそのそれぞれの階級の中央値を階級値と言 います だから、最頻値ってそのデータにおいて最も度数が多い値と言い換えることもできるんですね
ページ82:
これに該当する過去問が見当たらなかったので、 オリジナル問題です 皆さんは、中学校でもこれやってますし 選択肢なんていらないですよね! あるクラスの生徒20人が受けた小テスト (20点満点とする) の得点を整理し、以下の度数分布表 を作成しましたこれについて、 次の4つの問いに答えなさい 度数分布表 得点の階級(点) 度数(人) 0以上4未満 4/1~8/ 811~121) 12 ~162 167~2.11 合計 (1)階級の幅はいくつか r (2) 「8点以上12点未満」 の階級値はいくつか (3) 度数が最も多い階級はどこか (4) 12点以上の生徒は全体の何%か ではやっていきましょう 3 8 3 20 (1) 階級の幅とは 区間の大きさのことでしたね したがって4-0=4になりますので答えは4で す。 (2) 階級の中央値を階級値って言うんでしたねてことで8+12をして20 20-2だから10 よって階級値は10になります (3) 度数が1番大きい人は8人のところですから 8点以上12点未満 (4)12点以上って事は 12点以上16点未満のところと16点以上20点未満のところ、 両方含みま すね てことでその2つの区間にいる人たちを合わせると8人います 全体は20人でその中の8人って事は40%ですねよって40%が答えです。 実際、 度数分布表は棒グラフみたいなものを使います これをヒストグラムと言います
ページ83:
⑩ データの分析II 主に⑨でやってきたのって、ほとんどおさらいの形だったんですね 中学校でやってきたこととか 新しい内容だとしても、比較的難易度、 は簡単なやつ ここでやるのは数学Iの世界に本気でのめり込んでいきます でも、解説してるのはあくまで情報ですので では、最初に分散と標準偏差について見ていきたいと思います これは、いずれもすべてのデータに対してどのぐらい散らばってるんだろうなって言う散らばり 具合を見るものです そこで平均値からどれぐらい離れているんだろうか 平均値との差ですよね。 これを見てあげた いなと思います。 平均からの差が大きいほどこのデータは平均から離れています 散らばって いますと見ることができますから 分散 ... 平均値からのばらつき (データー平均値)の平均このデーター平均値のことを偏差 と 言ったりします 偏差... データの値 平均 必ずその値から平均を引いてるんだから 偏差を出したい場合は 平均値よりデータの値の方が 大きければ、それは正の値として出るし逆にデータの値が平均より小さいんだったら負の値とし て出ますよねって感じです そして、それぞれの偏差を、 そのデータの個数で割り算してあげたらばらつき平均出ますよねー と言う考え方をしております。 でも、偏差ってプラスマイナスも含めてばらつきはわかります ただ欠点があるんですよ。 ばらつき全部集めて平均を求めると0になります 平均を取るとパーになります。 プラスとか、マイナスがあるせいで相殺されちゃってね だったら正の値と0だけ出るようにすれば いいやん 0以上ってまとめちゃったほうがいいですか てことで二乗の考え方を使います マイナスだったとしても、 それはプラスになりますから だから、相殺されないように、 プラマイを全部プラスにしますってことです この偏差の2乗の平均を分散と言ってるような感じなんです いや、もうバリバリ数学やん 数学が苦手な方とか嫌いな方 私も含めてですけれどもやってる と頭痛くなりますよね 裏話ですがこれ事実として作ってるときに頭痛くなりました! ちょっと説明長いですが、お付き合いください このノートを見てくださっている優しい方には申し 訳ないですがね。 [データ] 18、12、16、20、14 これの分散を求めてみましょうってことでまずこれの平均値は16です なので
ページ84:
1番最初の18については (18-16)2 = 22=4 12については(12-16)²= (-4)2=16 みたいな具合にやっていくと データ…18,12,16,20,14 平均値:16 (8-16) = 4, (12-16)=16, (16-16)²=0 (20-16):6,(14-16)=4 (4t/6tot/614)÷5=8 こんな感じになりますよね 分散8. 女 よって、分散は8になる感じです この分散が大きいほど、そのデータのばらつきが大きいよねってことです 一旦別のデータを用意しますね [データ] 18、15、16、17、14 これも平均値は16なんですけれども 一旦分散を計算してみましょうか
ページ85:
データ18,15,16,12,14 ○平均値:16 (18-16)² = 4, (15-16)=1, (16-16)²=0 (17-16)=1, (14-16) = 4 (4+1+0+1+4):5=2 分散2 こんな感じになります て事は、ばらつき具合はさっきのに比べたら小さいってことですね 標準偏差... 平均値からのばらつき 分散の平方根を取る ここで平均値からのばらつきと聞いて 分散と何が違うん? って思った方は鋭いです 先ほど説明しました。 分散ってのは偏差の2乗の平均ですよねて事は単位変わっちゃうことが あります。わかりづらくなっちゃうんですね。 次元を合わせるためのものだと思ってくれればオッ ケーです。 cmだったものがcm²とかになったらわかりにくいですもんね ただ、この説明、 ちょっとわかりにくいと思いますので、 ゲームの点数とかで考えてみましょうか テストの点でもいいんですけど。 単位を点として考えましょ 実際のデータで元はと言えば点なんですよ 偏差の2乗としてしまうと 単位まで2乗されちゃうん です だから、 その単位の次元合わせとして正の平方根をとってあげることで帳尻を合わせてるんだ てところですね [データ] 18、12、16、20、14 これさっきやったもので 分散は8でしたよね じゃあ標準偏差は V8 となって、大体2.8だよね みたいな感じです では、次に散布図と相関係数って話をしていきます これをやって情報のノートは終わりになりま す
ページ86:
100 物理の得点 0 数学の得点 100 https://ja.wikipedia.org/wiki/%E6%95%A3%E5%B8%83%E5%9B%B3 このようなグラフが散布図なんですがここからは2つの変量の関係性ってのを見ていきたいと思 います。 変量... 身長とか体重のようにある特性を表す数量 その2つの点のデータを座標みたいにとってあげて目に見える形にビジュアル化しましょうって感 じです 一旦xとyの関係を見ていきたいと思います そこで、 散布図の描き方みたいな感じのものを見ます x11 b2 ① Scatter Plot Grid (0-20) わかりやすいように、色を振ってみましたがどうでしょうかね 青だとxが1の時にyが2だからそう いう位置に点を打ってます こんな感じで散布図を書いていく具合ですがなかなか全部書いて
ページ87:
いくのって大変なので傾向だけ見たいと思います。 xとyがペアになっているよ。 みたいなイメー ジだけでも持ってくれればいいかなと思ってます。 こんな感じで座標平面上に書くのって結構大変ですからね こんな感じで、 2つの変量の関係性 (相関関係) をこんな感じで図で、 ビジュアル化したものを散布 図といいます そして、2つの変量を比較して 片方が増加したら、もう片方も増加しますよねみたいな関係という か傾向が見られるときにこれを正の相関があるといいます 一方が増加するともう片方は減少する傾向にあるよねとしたときに、これを負の相関があると いいます そして、正の相関 負の相関 どっちつかずだな どちらの傾向でもなさそうだなって言った場合 に相関がないといいます ちょっとこれは画像で確認していきましょう 負の相関 無相関 正の相関 r=0 r>0 r<0 引用 https://mathlandscape.com/correlation/ 右上がりになっているものが、 正の相関 右下がりになっているものが、 負の相関 どっちつかずが相関なし
ページ88:
g ○ 9 8 2 e 90 正の相関 こんな感じで適当に直線みたいなのを引きました 汚いですけど点の分布がこういう直線に近 いほどその相関関係は強くなるよねって感じです この散布図を見てもらったときに この画像に書かれてますrは相関係数と呼ばれる数値なんですが今からそれについて扱ってい きます この相関係数ってものが正の値を取るのか、 負の値を取るのかによって決まっていくものになり ますから の前に共分散って言うやつをやらないといけないんですよ 2つのデータを用いて相関を数値で表してみよう 2つの変量xとyがあります こいつらはペアです。 偏差 さて、覚えてますでしょうか? そのデータの値から平均を引いたものですよね。 xの偏差とyの偏差を出します それを掛け算します。 そしてその掛け算によって得られたものの 平均を共分散といいます ちょっと練習問題見てみましょうか あるクラスの生徒5人に対して 数学のテストと英語のテストの関係性を調べてみました その結果として、 画像のようになりましたと
ページ89:
生徒 A 13 C b E 6 ク 3 4 89 S 6 5 では、数学の点数Xと英語の点数Yの共分散を求めてくださいって問題です まず、最初にそれぞれの平均値を求めていきましょうか 数学の平均は6 英語の平均も6ですかね そしたら、それぞれの偏差とその偏差の積を求めていきたいと思います あくまで分散ではない ので気をつけてください。 生徒Aについて 数学の偏差は6-6=0 英語の偏差は7-6 1 偏差の積は0 × 1 = 0 生徒Bについて 数学の偏差は4-6-2 英語の偏差は3-6=-3 偏差の積は (-2)x (-3)= 6 こんな具合にCDEを出すと 生徒 国の偏差の後点 偏第一種 偏差の a A 6 ク 0 -2 13 C b E こんな感じになります 4 89 S ク 6 5 6 6 2 3 - -1 a | -
ページ90:
共分散はXの偏差とYの偏差の掛け算をしたものこれを平均したものですよね つまり (0 +6 +6 +0 - 1) + 5 = 2.2 よって、共分散は2.2となるわけです では、次に相関係数を見ていきたいと思います 実は、 共分散でも正の相関 負の相関 わかります 正の値になるのであれば正の相関 負の値になるのであれば負の相関 共分散が0に近ければ相関なし みたいにできるです ところがなんで相関係数なんてものを学ぶんですかって話なんですよ。 実 は共分散を利用すると、こういうことはわかります。 ただ強弱がよくわからないんですね 共分散が大きいとか、小さいだった相関関係が強いとか弱いは言えません。 その強弱を調べるために、 相関係数を勉強します 共分散の場合だと 単位の取り方によっては影響を受けてしまうんですね そうすると数字の大 きさが影響してしまうみたいな感じです。 散らばり具合に数字の具合がよくわからん 相関の強弱を数字の大きさで見るなんてほとんど不可能なんですよ だからこういうことをします 共分散をそれぞれの標準偏差をかけたものを利用して、それで割っ てあげます これで得られるものを相関係数といいます 実際に計算してみましょう あるクラスの生徒5人について 1日のスマホ使用時間と小テストの点数を調べたら、以下のデー タが得られた スマホの使用時間をX 小テストの点数をYとして 相関係数を求めましょう
ページ91:
生徒 スマホ 小テスト A 2 9 火平均3時間 Yの平均...65 B C 3 5 b 4 6 3 5 今回は平均だけ先に求めちゃいました スマホの使用時間の平均は3時間 テストの点の平均は6点です では、まず最初にどっちでもいいんですけど、 分子に来る共分散を求めちゃいましょう <共分散 Ab 相関係数の分子 メ偏差 Y偏差 十分散粉分散 -2 3 4 9 - 1 1 C b σ- 4 a E 2 (-b) + (-1) fat c f ( b) 5 私が計算ミスとかしてなければこれでいいのかなと思います この-2.6ってのが分子 =-2.6 そして、分母は X分散とY分散 それぞれを求めてからルートをかぶせて、標準偏差とします Xの分散は分散がそもそも偏差の2乗の平均ですから xの分散書いてあるやんてことで 10/5 =2 そして、ルートをかぶせて、2となります
ページ92:
Yの分散も20/5 = 4 これにルートをかぶせて4=2ですね て事は、分母は√2 × 2ってことになります これを計算すると、 大体-0.91になります てことで、結果としては強めの負の相関となります 相関係数は-1から1までの値を取ります。 0より大きければ正の相関 なんだけど1に近ければそれは強めだよね 0より小さければ負の相関 -1に近ければ強め 0だったら相関なし 確かに正負とかないことがわかる上にその強弱もわかる すごいんですけど、計算が結構めん どくさいです ただ、相関係数って極端な値があると結構引っ張られやすいってところも押さえといてくれるとう れしいかなと思います では、このノートは終わりにします
Comment
No comments yet