コンピューター科学
2016年07月30日
前回の「ループの次元:その1」では、コンピューター・プログラムにおける多重ループの多重度が「次元」を表している、という話をした。
この多重ループによって、自己相似イヤリングを描くことはできるのだろうか?
かなりややこしいことをする必要があるが、多重ループによって自己相似イヤリングを描くことは可能である。
ただここではプログラミングの技術そのものを語る場とは考えていないので、詳しく書かないことにする。
自己相似イヤリングを描くために「かなりややこしいこと」を駆使して無理矢理多重ループで複雑なプログラムを書こうとするよりももっと直感的に理解しやすいプログラミングのやり方がある。
再帰関数である。
続きを読む
この多重ループによって、自己相似イヤリングを描くことはできるのだろうか?
かなりややこしいことをする必要があるが、多重ループによって自己相似イヤリングを描くことは可能である。
ただここではプログラミングの技術そのものを語る場とは考えていないので、詳しく書かないことにする。
自己相似イヤリングを描くために「かなりややこしいこと」を駆使して無理矢理多重ループで複雑なプログラムを書こうとするよりももっと直感的に理解しやすいプログラミングのやり方がある。
再帰関数である。
続きを読む
myinnerasia at 10:03|Permalink│Comments(0)
2016年07月29日
プログラミングを始めたのは中学生の時だった。
最初にプログラミングを学んで、一番衝撃だったのは「ループ」だった。
ああ、これでもう短調な繰り返し作業はしなくて済む。
と思った。
ループを知って初めて書いたプログラムを仮想プログラミング言語で書くと下記のようになる。
1: ループ[
2: "アホ"と表示
3: ]ループここまで
上記のコードはいわゆる「無限ループ」というもので、一度実行させるとプログラムをストップするまで「アホ」という文字を表示し続ける。続きを読む
最初にプログラミングを学んで、一番衝撃だったのは「ループ」だった。
ああ、これでもう短調な繰り返し作業はしなくて済む。
と思った。
ループを知って初めて書いたプログラムを仮想プログラミング言語で書くと下記のようになる。
1: ループ[
2: "アホ"と表示
3: ]ループここまで
上記のコードはいわゆる「無限ループ」というもので、一度実行させるとプログラムをストップするまで「アホ」という文字を表示し続ける。続きを読む
myinnerasia at 08:08|Permalink│Comments(0)
2016年07月27日
フラクタル幾何学の特徴のひとつであった「自己相似」について。
全体を構成する「部分」が全体と同じ形をした縮小形である、ということを「自己相似」という。
自己相似を再帰的に繰り返すことにより、「爆発」が起こり、それまで整数でしか表すことができないと思われていた「次元」が、非整数のものもある、ということに気付かされる。
これをもうすこし具体的な例で示してみようと思う。
続きを読む
全体を構成する「部分」が全体と同じ形をした縮小形である、ということを「自己相似」という。
自己相似を再帰的に繰り返すことにより、「爆発」が起こり、それまで整数でしか表すことができないと思われていた「次元」が、非整数のものもある、ということに気付かされる。
これをもうすこし具体的な例で示してみようと思う。
続きを読む
myinnerasia at 08:06|Permalink│Comments(0)
2016年07月26日
コンピューターのプログラムにおいて、期待されている答えと違うものを出力した場合、それは「誤り」である。
つまりプログラムにとっては「バグ」である。
たとえば、入力されたIDからデータベースに検索をかけ、目的の会員情報を引き出すというシステムで、入力されたIDとは違う会員情報を引き出してきてしまった場合、それはバグであり、システムにとって致命的な障害を起こすことになる。
コンピューターのプログラムはこんなところで間違ってはならない。
当然のことである。
ところが「絶対に間違いがあってはならない」と思われているコンピューター・プログラムの中には、間違うことが許されているものもある。
それが「機械学習」と呼ばれるものである。
続きを読む
つまりプログラムにとっては「バグ」である。
たとえば、入力されたIDからデータベースに検索をかけ、目的の会員情報を引き出すというシステムで、入力されたIDとは違う会員情報を引き出してきてしまった場合、それはバグであり、システムにとって致命的な障害を起こすことになる。
コンピューターのプログラムはこんなところで間違ってはならない。
当然のことである。
ところが「絶対に間違いがあってはならない」と思われているコンピューター・プログラムの中には、間違うことが許されているものもある。
それが「機械学習」と呼ばれるものである。
続きを読む
myinnerasia at 08:04|Permalink│Comments(0)
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つめの関数"円を描く"がその内部でもうひとつの関数"円の情報を取得"を呼んでいる。
これにより"円の情報を取得"という関数は、他のところからも呼ぶことができるようになり、再利用できるものになる。
関数の中から別の関数が呼べる、ということだが、それは必ずしも"別の"関数でなければならないわけではなく、自分自身を呼ぶこともできる。
これを"再帰関数"と呼ぶ。
続きを読む
myinnerasia at 08:05|Permalink│Comments(0)