11 時半起床.
やや鬱がいつもより苦しく, 頓服を飲んで何とか起きた.
無気力で何もやる気が起きない.
今日は部屋の大掃除をするつもりだったが無理だ.
掃除機をかけるだけ, というのも非常に難しいことに思える.
体調が優れず, また頓服を飲む.
横になって休む.
夕方になって少し動けるようになった.
シャワーを浴びる.
それから読書・絵・数学をやった.
頓服のせいか, 頭がぼうっとしている.
読んでいる本 Sucan Cain 『Quiet』の今日読んだ箇所がとても面白かった
Linux や Wikipedia などバザール型の開発が成功した影響で, 90 年代後半, アメリカの起業ではオープンオフィス環境 (パーティションを取り去って従業員同士のアクセスの自由を優先したオフィスデザイン) の導入とそれによるオフィス内グループでの Linux 型開発モデルの促進が進んだ.
けれども幾人もの心理学者が中心となってその実効性を検証したところ, 開発やデザインなどの創造性が要求される仕事に対して, オープンオフィスの導入は, 従業員一人一人が個別に作業を行う場合と比較してかえって非効率であることが判明する.
Linux に象徴されるバザール型の開発モデルはコンピューターネットワークという媒体が存在する場合において初めてその力を発揮するのである.
それは孤独に思索する人々が, 「思索の合い間」にネット上にアイディアを提供し, それが他の孤独に思索する人々に共有されることにより創造の連鎖が起きることによる.
グループオフィスでは, すでに始めから孤独に思索することができない.
この結果自体, 自分は初めて知ったし, 非常に面白い.
けれどもそれ以上に, こういうことをきちんと検証するのはすごいと思う.
その後, 絵を描き, 数学をやった.
絵も数学も一人で集中して行うものだから, 上の話と無関係ではない.
孤独に思索する個人が, ネットワーク上で他者と触れ合うことの意味が重ね合わされる.
少し励まされた.
2016年12月30日
2014年09月16日
エラトステネスの篩
借金の件でどうにもならず、電話が鳴るたび、メールが届くたび、恐怖に陥っています。
こんな事をしている場合では無いのですが・・・気持ちを落ち着かせたいのかもしれません。
ちょっと前から、 プロジェクト・オイラー というサイトにあるプログラミングの課題をやっています。このブログを確認したら、3 か月ちょっと前、 6 月 9 日 でした。
リハビリのためにやっていますが、亀の歩みでちょっとずつ進めています。
現在、 10 問目 に取り組んでいます。
「素数の和 (Summation of primes)」という問題です。
最初に考えた解き方は、2 から始めてそれぞれの数が素数かどうかを判定し素数ならば足していく、これを 2000000 まで繰り返すという方法です。それぞれの数に対する素数の判定は、その数未満の数 (実際にはその数の平方根未満の数) でその数が割り切れるかどうかを順に調べていき、どこかの時点で割り切れれば素数ではない、調べたすべての数で割り切れなければ素数とする、という方法を使います。この方法は試し割り法とも呼ばれ、単純ですが有用な方法です。
次に考えた解き方がエラトステネスの篩による方法です。上の方法でコードを書いている最中に思い出しました。
有名なアルゴリズムなので学生の時から何となく知っていたのですが、実際にプログラムとして実装したのは会社に入ってからでした。C 言語の練習問題の一つとしてこの課題がありました。
ご存知の方はたくさんいらっしゃると思いますが、自分の理解のために簡単に紹介しておきます。
エラトステネスの篩は、与えられた正の整数 N 以下の素数の列を求めるアルゴリズムです。
N = 10 の場合、得られる素数の列は 2, 3, 5, 7 です。
N = 20 の場合、得られる素数の列は 2, 3, 5, 7, 11, 13, 17, 19 です。
一般的な正の整数 N に対しては次のようになります。
(1) L を数列 2, 3, 4, 5,..., N とします。この段階では L の先頭要素は 2 です。
(2) L の先頭要素を p とおきます。
(3) L から p 以外のすべての p の倍数を取り除き、残った要素からなる数列をあらためて L とします。また、新しい L における p より大きい最初の要素のをあらためて p とします。この手順を、 p が N の平方根以上になるまで繰り返します。
(4) 上記の (3) の手順が終了した時の L が求める素数の列です。
たとえば、 N = 20 の場合、手順を進めるに連れて L と p は次のように変わっていきます。
L : 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
p : 2
L : 2, 3, 5, 7, 9, 11, 13, 15, 17, 19
p : 3
L : 2, 3, 5, 7, 11, 13, 17, 19
p : 5 †
† 5 は N = 20 の平方根 4.47213... よりも大きいのでここで終了です。
この方法を使ってプロジェクト・オイラーの第 10 問を解くには、求まった素数の列 L のすべての要素を足し合わせればよいことになります。
C 言語で試し割り法、エラトステネスの篩、各々を使ったプログラムを書いて実行させました。エラトステネスの篩を使った処理は非常に速いですね。このあたりはソースコードを合わせて後で追記しておこうかと思います。
小さな例ですが、アルゴリズムというのは面白いものです。
こんな事をしている場合では無いのですが・・・気持ちを落ち着かせたいのかもしれません。
ちょっと前から、 プロジェクト・オイラー というサイトにあるプログラミングの課題をやっています。このブログを確認したら、3 か月ちょっと前、 6 月 9 日 でした。
リハビリのためにやっていますが、亀の歩みでちょっとずつ進めています。
現在、 10 問目 に取り組んでいます。
「素数の和 (Summation of primes)」という問題です。
10 以下の素数の和は 2 + 3 + 5 + 7 = 17 である。
2000000 以下のすべての素数の和を求めよ。
最初に考えた解き方は、2 から始めてそれぞれの数が素数かどうかを判定し素数ならば足していく、これを 2000000 まで繰り返すという方法です。それぞれの数に対する素数の判定は、その数未満の数 (実際にはその数の平方根未満の数) でその数が割り切れるかどうかを順に調べていき、どこかの時点で割り切れれば素数ではない、調べたすべての数で割り切れなければ素数とする、という方法を使います。この方法は試し割り法とも呼ばれ、単純ですが有用な方法です。
次に考えた解き方がエラトステネスの篩による方法です。上の方法でコードを書いている最中に思い出しました。
有名なアルゴリズムなので学生の時から何となく知っていたのですが、実際にプログラムとして実装したのは会社に入ってからでした。C 言語の練習問題の一つとしてこの課題がありました。
ご存知の方はたくさんいらっしゃると思いますが、自分の理解のために簡単に紹介しておきます。
エラトステネスの篩は、与えられた正の整数 N 以下の素数の列を求めるアルゴリズムです。
N = 10 の場合、得られる素数の列は 2, 3, 5, 7 です。
N = 20 の場合、得られる素数の列は 2, 3, 5, 7, 11, 13, 17, 19 です。
一般的な正の整数 N に対しては次のようになります。
(1) L を数列 2, 3, 4, 5,..., N とします。この段階では L の先頭要素は 2 です。
(2) L の先頭要素を p とおきます。
(3) L から p 以外のすべての p の倍数を取り除き、残った要素からなる数列をあらためて L とします。また、新しい L における p より大きい最初の要素のをあらためて p とします。この手順を、 p が N の平方根以上になるまで繰り返します。
(4) 上記の (3) の手順が終了した時の L が求める素数の列です。
たとえば、 N = 20 の場合、手順を進めるに連れて L と p は次のように変わっていきます。
L : 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
p : 2
L : 2, 3, 5, 7, 9, 11, 13, 15, 17, 19
p : 3
L : 2, 3, 5, 7, 11, 13, 17, 19
p : 5 †
† 5 は N = 20 の平方根 4.47213... よりも大きいのでここで終了です。
この方法を使ってプロジェクト・オイラーの第 10 問を解くには、求まった素数の列 L のすべての要素を足し合わせればよいことになります。
C 言語で試し割り法、エラトステネスの篩、各々を使ったプログラムを書いて実行させました。エラトステネスの篩を使った処理は非常に速いですね。このあたりはソースコードを合わせて後で追記しておこうかと思います。
小さな例ですが、アルゴリズムというのは面白いものです。
新品価格
¥386 から
(2014/9/16 20:22時点)
2014年06月30日
メモ (自然数の定義を思い出す)
寝た切りですが、勉強したいと思い、この二日間ほど寝ながら数学・コンピューターのことを考えていました。
考える、というか、以前勉強したことを思い出すというか、そんな感じです。
ちょっと自分の頭の整理のために書きくだしてみます。記憶だけに頼って書いているのでもしかしたら間違っているかもしれません。すみません。
大学の数学の授業で、自然数 0、1、2、・・・ を構築するという手順を学んだことがあり、それを思い出していました。
一日かかりましたが・・・
まず、空集合を 0 と定義します。
注: 空集合は要素を持たない集合で、数学では記号 'φ' で表わします。ですからここでは 0 = φ と定義しています。
次に 0、つまり空集合 φ を要素とする集合 {0} = {φ} を 1 と定義します。
1 = {0} = {φ} です。
さらにこの 0 と 1 を要素に持つ集合 {0、1} を 2 と定義します。
大雑把ですが、このようにして自然数
0、1、2、3、4・・・
を
0 = φ、つまり空集合、
1 = {0} = {φ}、
2 = {0、1} = {0、{0}} = {φ、{φ}}、
3 = {0、1、2} = {0、1、{0、1}} = {φ、{φ}、{φ、{φ}}}
・・・・
と順番に作っていきます。
その後さらに、負の整数 (-1、-2、-3・・・) や有理数 (いわゆる分数 1/2、1/3、2/3・・・です) を定義し、実数を定義し、複素数を定義し、と進めていくのですが、私はこの論理の展開が好きで、よくできてるなあ、と感心しました。
特に有理数から実数を定義する手順の発見は 19 世紀の数学でとても重要な進歩の一つだったことを後で知りました。
そのこともあってか、コンピューターの勉強を始めて出会ったλ計算という分野で、上とは別のやり方で自然数を定義していく方法を知り、非常に面白いと思いました。
私がプログラミングを好きになったきっかけの一つだったと思います。
でも現在の私の場合、上のような論理展開を思い出すだけでも頭の中が混乱してしまいます。
論理の展開を追いかけるのがとても難しく、苦しいです。
すぐに疲れてしまいます。
時間もかかります。
頭の中に常に灰色の靄 (もや) がかかっているような感覚があり、考えていることがすぐにこの靄の中に消えていってしまうような気がします。
この靄をはらしたいのです。とても苦しいからです。
悪夢を見ます。恐怖で飛び起きたことがあります。
話が逸れました。
明日も寝た切りかもしれませんが、また別のことを勉強します。英語の勉強とか、試しにやってみたいです。
できるかどうか、まだわかりませんが・・・
考える、というか、以前勉強したことを思い出すというか、そんな感じです。
ちょっと自分の頭の整理のために書きくだしてみます。記憶だけに頼って書いているのでもしかしたら間違っているかもしれません。すみません。
大学の数学の授業で、自然数 0、1、2、・・・ を構築するという手順を学んだことがあり、それを思い出していました。
一日かかりましたが・・・
まず、空集合を 0 と定義します。
注: 空集合は要素を持たない集合で、数学では記号 'φ' で表わします。ですからここでは 0 = φ と定義しています。
次に 0、つまり空集合 φ を要素とする集合 {0} = {φ} を 1 と定義します。
1 = {0} = {φ} です。
さらにこの 0 と 1 を要素に持つ集合 {0、1} を 2 と定義します。
大雑把ですが、このようにして自然数
0、1、2、3、4・・・
を
0 = φ、つまり空集合、
1 = {0} = {φ}、
2 = {0、1} = {0、{0}} = {φ、{φ}}、
3 = {0、1、2} = {0、1、{0、1}} = {φ、{φ}、{φ、{φ}}}
・・・・
と順番に作っていきます。
その後さらに、負の整数 (-1、-2、-3・・・) や有理数 (いわゆる分数 1/2、1/3、2/3・・・です) を定義し、実数を定義し、複素数を定義し、と進めていくのですが、私はこの論理の展開が好きで、よくできてるなあ、と感心しました。
特に有理数から実数を定義する手順の発見は 19 世紀の数学でとても重要な進歩の一つだったことを後で知りました。
そのこともあってか、コンピューターの勉強を始めて出会ったλ計算という分野で、上とは別のやり方で自然数を定義していく方法を知り、非常に面白いと思いました。
私がプログラミングを好きになったきっかけの一つだったと思います。
でも現在の私の場合、上のような論理展開を思い出すだけでも頭の中が混乱してしまいます。
論理の展開を追いかけるのがとても難しく、苦しいです。
すぐに疲れてしまいます。
時間もかかります。
頭の中に常に灰色の靄 (もや) がかかっているような感覚があり、考えていることがすぐにこの靄の中に消えていってしまうような気がします。
この靄をはらしたいのです。とても苦しいからです。
悪夢を見ます。恐怖で飛び起きたことがあります。
話が逸れました。
明日も寝た切りかもしれませんが、また別のことを勉強します。英語の勉強とか、試しにやってみたいです。
できるかどうか、まだわかりませんが・・・
フレンズ 〈シーズン1-10〉コンプリート ブルーレイ BOX[初回限定生産] [Blu-ray]
中古価格
¥20,500 から
(2014/6/30 01:13時点)
中古価格
¥1,955 から
(2014/6/30 01:14時点)
タグ: 数学