2016年07月
2016年07月26日
コンピューターのプログラムにおいて、期待されている答えと違うものを出力した場合、それは「誤り」である。
つまりプログラムにとっては「バグ」である。
たとえば、入力されたIDからデータベースに検索をかけ、目的の会員情報を引き出すというシステムで、入力されたIDとは違う会員情報を引き出してきてしまった場合、それはバグであり、システムにとって致命的な障害を起こすことになる。
コンピューターのプログラムはこんなところで間違ってはならない。
当然のことである。
ところが「絶対に間違いがあってはならない」と思われているコンピューター・プログラムの中には、間違うことが許されているものもある。
それが「機械学習」と呼ばれるものである。
続きを読む
つまりプログラムにとっては「バグ」である。
たとえば、入力されたIDからデータベースに検索をかけ、目的の会員情報を引き出すというシステムで、入力されたIDとは違う会員情報を引き出してきてしまった場合、それはバグであり、システムにとって致命的な障害を起こすことになる。
コンピューターのプログラムはこんなところで間違ってはならない。
当然のことである。
ところが「絶対に間違いがあってはならない」と思われているコンピューター・プログラムの中には、間違うことが許されているものもある。
それが「機械学習」と呼ばれるものである。
続きを読む
2016年07月25日
プログラムにおける関数というものは、その関数の中でさらに他の関数を呼ぶことができる。
たとえばいくつかの円を描くプログラムがあり、ある関数が「◯番目の円を描く」というものであったとしよう。
この関数は、「◯番目」という番号だけを受け取るが、その番号の円が描かれる位置と半径が必要である。
そこで、もうひとつ別の関数として、「◯番目という番号を受け取ったら、登録されている円を探しだし、その位置と半径を返す」というものを用意する。
以上を仮想プログラミング言語で書くと以下だ。
1:関数"円を描く"(n番目)[
2: 円=関数"円の情報を取得"(n番目)
3: 円を描く
4:]関数"円を描く"ここまで
5:関数"円の情報を取得" (n番目)[
6: n番目の円を取得
7: 円の情報を返す
8:]関数"円の情報を取得"ここまで
ここでは1つめの関数"円を描く"がその内部でもうひとつの関数"円の情報を取得"を呼んでいる。
これにより"円の情報を取得"という関数は、他のところからも呼ぶことができるようになり、再利用できるものになる。
関数の中から別の関数が呼べる、ということだが、それは必ずしも"別の"関数でなければならないわけではなく、自分自身を呼ぶこともできる。
これを"再帰関数"と呼ぶ。
続きを読む
たとえばいくつかの円を描くプログラムがあり、ある関数が「◯番目の円を描く」というものであったとしよう。
この関数は、「◯番目」という番号だけを受け取るが、その番号の円が描かれる位置と半径が必要である。
そこで、もうひとつ別の関数として、「◯番目という番号を受け取ったら、登録されている円を探しだし、その位置と半径を返す」というものを用意する。
以上を仮想プログラミング言語で書くと以下だ。
1:関数"円を描く"(n番目)[
2: 円=関数"円の情報を取得"(n番目)
3: 円を描く
4:]関数"円を描く"ここまで
5:関数"円の情報を取得" (n番目)[
6: n番目の円を取得
7: 円の情報を返す
8:]関数"円の情報を取得"ここまで
ここでは1つめの関数"円を描く"がその内部でもうひとつの関数"円の情報を取得"を呼んでいる。
これにより"円の情報を取得"という関数は、他のところからも呼ぶことができるようになり、再利用できるものになる。
関数の中から別の関数が呼べる、ということだが、それは必ずしも"別の"関数でなければならないわけではなく、自分自身を呼ぶこともできる。
これを"再帰関数"と呼ぶ。
続きを読む