bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

2014-08-01から1ヶ月間の記事一覧

Haskellでニューラルネット

1.ニューラルネット ニューラルネットは元来あまり好きではない。人間の脳神経網を表現するモデルとして使われてきたのだが、脳神経網とニューラルネットワークとの間の対比関係を得る手段がないことが嫌いであることの最大の理由である。しかし、昨日、谷口…

Haskellで最大公約数、最小公倍数を求める

1.重要な概念 Haskellの良いところは、簡単にプログラムが書けること。実現するプログラムの意味するところが分かれば、そのまま記述すればよい。JavaやCなどの命令型プログラミング言語ではそうはいかない。意味するところを分析しそれを手順として示さな…

Haskellで分野向けの機械を開発する(3)

1.窮屈からの脱出 数式から木構造を生成する方法が、オペレーショナル・モナドに移行したが、コードが増えた割にはあまりご利益がない。数式の指定が固定的で、キーボードからの自由な入力にはなっていない。そこで、オペレーショナル・モナドの拡張版(モ…

Haskellで分野向けの機械を開発する(2)

1.数式から木構造を作成する機械 「Haskellで数式をビジュアルに」のところでも説明したが、一次元に書かれた数式を二次元の木構造に変換することができる。例は以下のとおりである。 そこで、オペレーショナル・モナドを利用して、数式から木構造を作成す…

Haskellで分野向けの機械を開発する(1)

1.分野向けの機械 Haskellは純粋関数型言語である。自販機、改札機、ロボットなどのある分野に向けた機械に本来備わっている状態を扱うことはあまり得意としていないが、これを可能にしてくれるのが、オペレーショナル・モナドである。オペレーショナル・…

Haskellで数式をビジュアルに(2)

2.プログラムで表現 数式を木構造に変換するプログラムをHaskellで実現する。数式が木構造に変換される様子をもう一度、図で示すと次のようになる。 複雑すぎて、Javaで実現しようとは思わない。直感的にHaskellでも苦労するかなと想像したが、取り越し苦…

Haskellで数式をビジュアルに(1)

1.木構造 数式は見慣れているため、簡単に理解できるように訓練されてはいるが、それでも、少し込み入ってくると、どのように計算したらよいか困るときがある。そのような時、木構造で描くとわかりやすくなる。3*4+5*6を木構造で表すと下図のようになる。 …

解釈次第で!(2)

1.三目並べ オペレーショナル・モナドには、いくつかの例が紹介されてるが、その中から、三目並べ(Tic Tac Tow)を詳しく調べてみる。オペレーショナル・モナドの使用に当たっては、次のモジュールをロードしておく必要がある。 cabal install operational …

解釈次第で!(1)

1.あなたは何を この文章はキーボード上のキーを打ちながら作成している。でも、もし、ワープロのプログラムではなく、ゲームのプログラムが動いていたなら、敵の攻撃をかわすべく、シューティングに夢中になっているかも知らない。このシューティングもキ…

ポーチトエッグ(落し卵)

1.朝はポーチトエッグで 泊まったお客さんのために、珍しい卵料理を試みた。ポーチトエッグ(Poached Egg)である。これもオーストラリア人のマイクから教えてもらった。彼はイギリス育ち、イギリスで博士号まで取って、オーストラリアの大学にポスドクでや…

キャロルおばさんのキャセロール

今日も昨日に増してお客さんが多数。朝から夕飯の用意をすることにした。今日も合理的な料理作りを楽しむために、イギリス料理。日本の食卓でイギリス料理が話題になることはないが、数は多くはないが、知っている限りでは、イギリス料理は本当に合理的にで…

鯛とアサリの蒸し焼き

昨日は、お客さんがあって、食卓が賑やかなので、少し豪華な料理を作ってみた。鯛の蒸し焼きはオーストラリアにいたときに、同僚のピーター(オーストラリア人)から学んだもの。彼は、イギリス人のお母さんから教えられたそうなので、おそらくは、イギリス…

Haskellで遊ぼう = マルチメディア

1.マルチメディアの世界へ Haskellの話は数学やロジックの話が多く、ゲームやアニメーション、はたまた、音楽の世界とは程遠いと思うかもしれないが、そんなことはない。本としては、少し古いのだが、The Haskell School of Expressionがある。これに、コ…

凹むこともある多角形(3)

1.多角形の面積を求める 多角形が凸多角形であるときは、その面積を求めることは簡単である。例えば、多角形の頂点の列が\(v_1, v_2, v_3,..,v_n\)であるとき、\(v_1\)から\(v_3\)へ、さらに\(v_1\)から\(v_4\)へ、同じように\(v_1\)から\(v_{n-1}\)まで、…

凹むこともある多角形(2)

1.凸多角形 多角形には凸多角形と凹多角形とがある。多角形の面積を求めるときは、三角形に分解してぞれぞれの面積を求め、最後に、それらの総和を求め、これを多角形の面積とする。しかし、凹多角形の場合には、間違ったアルゴリズムを利用すると、多角形…

凹むこともある多角形(1)

1.タイプを用意 多角形は、コンピュータ・グラフィックスやアニメーションを行うときに最も基本的な図形である。多角形には、三角形も、四角形も含まれるし、辺の数をとても多くしてあげると、円にも楕円にもなる。そこで、多角形を記述するのに必要な型シ…

数を整然と並べる

数がきれいに並んでいるものに、等差数列と等比数列がある。Haskellで記述する。 1.等差数列 等差数列は、各項の差が同じものをいう。例えば、奇数を小さい方から大きい方に並べると1.3.5.7…となるが、これは、最初の値(初期値)が1、差が2の等差数列で…

Haskellでウェブ・アプリケーション(4)

1.ブログを作成する 次の課題は「簡単なブログ」である。これは次の図に示すように三種類の機能を有している。一つはこれまでの記事の一覧表示であり、二つ目は新しい記事の入力であり、三番目は選択された記事の内容の表示である。 この課題は二つの相互…

Haskellでウェブ・アプリケーション(3)

1.回文を作る 最初の例は入力したテキストをそのまま出力していたが、今回は、加工する。そこで課題は「入力されたテキストと、それを逆順にしたテキストを接続して表示する」とする。このサービスをMirrorということにする。前回と同じように、まず、コン…

Haskellでウェブ・アプリケーション(2)

1.ブログの構築 ウェブで紹介されているHaskell web programmingは、簡潔で分かりやすい例題である。その内容に沿って説明し、yesogの活用法を学ぶこととする。 2.エコーで返す 最初の課題は、「/echo/テキストにアクセスしたら、そのテキストを返す」と…

Haskellでウェブ・アプリケーション(1)

1.ウェブ・アプリケーション・システムの構造 ウェブ・アプリケーションには毎日のごとくお世話になっている。このブログもウェブ・アプリケーションに一つであるし、困った時の検索エンジンや乗換案内などもウェブ・アプリケーションである。ウェブ・アプ…

細かく細かく分解する(2)

1.3次多項式の因数分解 2次の多項式の因数分解ができるようになったので、3次の多項式について考える。一般に、3次の多項式は\(p \times x^3 +q \times x^2 +r \times x + s\)と表すことができる。但し、\(p>0\)。これは因数分解できる場合には、\(a \…

細かく細かく分解する(1)

1.素因数分解 自然数を素数の積として表すのが素因数分解である。例えば、35という数は、素数5と7の積としてあらわすことができる。それでは自然数が与えられた時、それを素因数分解するプログラムを考えよう。与えらえた自然数を\(n\)とする。素数は次の…

Haskellでお絵かき(4)

1.フラクタル 数学的な模様で有名なのはフラクタルである。同じ操作を繰り返すことで、幾何学的に作成したとは思えないほどの面白い模様を作り出してくれる。マンデルブロのフラクタル幾何学を見ると、楽しい図形が沢山出ている。今回は、その中のいくつか…

Haskellでお絵かき(3)

1.自然数を数学的な模様にする 中学生のとき、素因数分解を学んだ。与えられた自然数を、割り切れない数(素数)の積で表したものだ。例えば、102は素数17,3,2の積で表すことができる。 自然数をその構成要素である素数を用いて絵画的に表すことを考えたのは…

Haskellでお絵かき(2)

1.円模様(アポロニウスのネット) Diagramsのギャラリーを見ていると、一つの円の中に外接しあう大小の円が模様のように描かれているものがある。それはアポロニウスのネットと呼ばれている。これは、デカルトの円定理を用いて作られたものである。 デカル…

Haskellでお絵かき(1)

1.お絵かき 論文を執筆する時、説明のために必ずいくつかの図を描く。特に、概念が難しい時は、図の役割はとても大きい。この頃は、Power Pointで図を描くことが多くなってきた。これは、Power Pointを用いると、割に簡単に描けることに起因している。しか…