Hatena::ブログ(Diary)

脱エンタープライズ志向 このページをアンテナに追加 RSSフィード

2009-07-05

第5回プログラマの数学読書会を主宰してきた

| 00:39 | 第5回プログラマの数学読書会を主宰してきた - 脱エンタープライズ志向 を含むブックマーク

今回で最終回を迎えたプログラマ数学読書会。色々な人に支えられながら、今回めでたくフィナーレを迎える事が出来た。本当にみなさん、ありがとうございます。

次回からはまた新しく本を選定して、第1回○○読書会をやっていこうと思っています、よろしくお願いします。

今回の章は7、8、9と一気にと

今回もid:Nabetaniさんから問題をいただいた。

問題とその解説はこちら

  • 問題
    • 問1
      • 6面体のサイコロを3回振る。同じ目が一度も出ない確率を計算せよ。
    • 問2
      • 128bitの乱数を1兆個発生させる。同じ値が一度も出ない確率のおおよその値を求めよ。(必要なら、数学公式集などを利用する)
    • 問3
      • 128bitの乱数を一日に10万回発生させる。同じ値が一度も出ない確率が99.9%を下回るのは約何日後か。
    • 問4
      • 「N bit の乱数を何個発生させたら同じ値が一度も出ない確率が p % を下回るか」のおおよその値を計算するプログラムを書け。また、Nは32〜512 辺り、p は50%〜99.9999% 辺りを想定している。
    • 単なる確率の問題に見えるかもしれませんが、GUIDやハッシュの衝突の話です(実際のGUIDは単なる乱数ではありませんが)。128bit というのは、GUIDのビット数です。
  • 解説

主宰がへなちょこなので、問1以外解けなかったです。

解説は当日お休みのid:Nabetaniさんの代わりにid:nidouchiさんが解いた回答をもとに解説を進めていった。篠原さんも解説に協力頂きありがとうございます。

こんなにレベルの高いもので、自力で解くことができなくても考える事は大切だと今回読んだプログラマ数学で改めて感じさせてくれた。フムフムと聞いているだけでも、考え方がこの勉強会をやる前とやった後では大分違っていた。問題を数学的アプローチから考えれるようになってきていると思う。例えば、物事が大きいのであれば小さく考えて、一般化することで大きな物事にも対応できる力が得られる事や、それらまとまりを作ったり、ルールを見いだしたりなど今まである1点でしか物事を見る事ができなかったが、色々なアプローチを考察中に交える事が出来るようになったと思う。数学の世界だけでなくこの世の中の物事を見極めるには、数ある選択肢の中から最良を選択し、それから導きだされる答えに証明というパワーを備えなければならない場面が沢山あると思う。そのときに、物事をそのままとらえるのではなく、このプログラマ数学という本で学んだテクニックを発揮する事で、最良の道を選択する事が可能になると僕は思う。

そうそう

今回は即興で問題を出してみた。(テーマは数学的帰納法だけど。)当日その場でうまく伝える事が出来なくてすいません。。。

  • 問題
    • ある紙を無数の直線で分ける。隣り合う領域が同じ色にならないように色を塗り分けるには何色の色が必要になる?
  • 答え
    • また後日アップ、乞うご期待!

この解の証明なんだけど、それが分からなかったので即興で持ち込んでみた。当日は絵を書きながらワタワタしながら説明したけど、なんとなくみんなに伝わったようで、篠原さんが代表で考察してくれた。証明は数式でやるには難しいけど、その絵の解説で証明になっていると思うと言ってくれたのでちょっとうれしかった。(絵も後日アップ予定。)

最後に

今回でプログラマ数学読書会は最終回を迎えた訳だけど、次回も新しい本で新たなスタートきります。

ということで、今後の予定!

  1. 〜7/8一杯 図書推薦
  2. 〜7/12一杯 推薦投票締め切り
  3. 7/13次回の本を発表!
  4. 〜7/16一杯 第1回でどこまで進めるか決定
  5. 8/1第1回開催!

こんな感じで進めます。

本の推薦は横へな読書リスト http://webbookshelf.jp/yokohena で行う。

(id/pass yokohena@gmail.com/yokohena)

今後もよろしくお願いします!

Yes, We Can!

tannztannz 2009/07/06 23:00 おつかれさまでした!

次はどの本になるか楽しみですね。
自分が読みたい本だったら、是非参加させてもらえたら、と思ってます。

ところで!
いよいよSICP読み始めようかと思ってます。

また日記にまとめながら進めていこうと思うんで、良かったら読んでやってください。

hkhumanoidhkhumanoid 2009/07/06 23:41 tannzaさん

> また日記にまとめながら進めていこうと思うんで、良かったら読んでやってください。
もちろん、読みます!
読むだけでなく、参加させてください><

tannztannz 2009/07/07 00:04 > 読むだけでなく、参加させてください><

ぜひ!
お互い日記書くなり、わからない部分は勉強会開いてフォローしあったりできるといいですね。

hkhumanoidhkhumanoid 2009/07/08 10:01 tannzさん
上の僕のコメント内
> tannzaさん
ごめんなさい、誤字していました・・

http://d.hatena.ne.jp/tannz/2009070
この日記をみたらSICPに向け進展してそうですね。楽しみです。

2009-06-23

第5回プログラマの数学読書会開催のお知らせ

| 09:31 | 第5回プログラマの数学読書会開催のお知らせ - 脱エンタープライズ志向 を含むブックマーク

第5回を迎えるプログラマ数学もついに最終回

参加表明はATNDで!

第5回プログラマの数学読書会 : ATND

そういえば、

id:TakamiChieさんの交流会が同日の13時から16時まで開催されるので、参加を表明。

交流会開きましょう! プログラマーズホリデー 開催決定! - 高見知英のかいはつにっし(β)

プログラマーズホリデー#1(新横浜) : ATND

最近は、

ついに会社の上司に辞める宣言をした。これから会社を僕が望むような会社に変えていけばいいと説得されたけど、意思は変わらなかった。

気持ちは変わらず、辞める方向でと最後に念を押した。

fuki1234fuki1234 2009/06/24 11:02 とうとう決断したんですね!
これからの道が開けるように応援しています!!

hkhumanoidhkhumanoid 2009/06/25 00:45 fuki1234さん
ありがとうございます!
まだ、具体的に次が決まっているわけではないですが><

hidecheckhidecheck 2009/06/26 00:29 ついに辞めましたか。次回の懇親会で詳しく聞かせてください。

hkhumanoidhkhumanoid 2009/06/26 00:43 hidecheckさん
辞める宣言をしただけで、まだ退社はしていないです。
辞める時期もまだ詳細まではって感じですね><

2009-06-12

第4回プログラマの数学読書会を主宰してきたー

| 00:02 | 第4回プログラマの数学読書会を主宰してきたー - 脱エンタープライズ志向 を含むブックマーク

6月6日(土)自らが主宰する第4回プログラマ数学読書会を開催してきた。

今回はなんと3人もの新しいメンバーが参加してくれた。ありがとうございます。

まだ第4回だが、内容は既に終盤で次回で読了する予定。ということで今回は5、6章を勉強した。

id:Nabetaniさんの提供問題

MLから抜粋。以下のすべてid:Nabetaniさん提供の問題です、ありがとうございます!

問題

正の整数aとbを受け取り、1からaまでの整数から重複なくb個を選ぶ選び方をすべて出力するプログラムを書け。

出力順は問わない。また、不正な入力(範囲外、非整数、負の数など)に対する対応はしなくて良い。

実行例:

>combi 6 3

1 2 3

1 2 4

1 2 5

1 2 6

1 3 4

1 3 5

1 3 6

1 4 5

1 4 6

1 5 6

2 3 4

2 3 5

2 3 6

2 4 5

2 4 6

2 5 6

3 4 5

3 4 6

3 5 6

4 5 6

>combi 8 6

1 2 3 4 5 6

1 2 3 4 5 7

1 2 3 4 5 8

1 2 3 4 6 7

1 2 3 4 6 8

1 2 3 4 7 8

1 2 3 5 6 7

1 2 3 5 6 8

1 2 3 5 7 8

1 2 3 6 7 8

1 2 4 5 6 7

1 2 4 5 6 8

1 2 4 5 7 8

1 2 4 6 7 8

1 2 5 6 7 8

1 3 4 5 6 7

1 3 4 5 6 8

1 3 4 5 7 8

1 3 4 6 7 8

1 3 5 6 7 8

1 4 5 6 7 8

2 3 4 5 6 7

2 3 4 5 6 8

2 3 4 5 7 8

2 3 4 6 7 8

2 3 5 6 7 8

2 4 5 6 7 8

3 4 5 6 7 8

>combi 20 20

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

この問題は今回の5,6章で学んだ組み合わせや再帰を含む良い問題だと思う。なので、当日はこの問題の自分の答えの発表やid:Nabetaniさんの解説を中心に行った。

*自分の答えは別途掲載します。

id:Nabetaniさんの回答

http://nabetani.sakura.ne.jp/hena/june/を参照

def combi( n, m )
  if m==0 
    yield []
  elsif m<=n
    combi( n-1, m ){ |s| yield s }
    combi( n-1, m-1 ){ |s| yield s+[n] }
  end
end

def combi2( n, m, sel, pos)
  if m==pos
    yield sel
  else
    lo = pos==0 ? 1 : sel[pos-1]+1
    (lo..n).each{ |x|
    sel[ pos ]=x
    combi2( n, m, sel, pos+1 ){ |e| yield e }	}
  end
end
combi( 7, 5 ){ |s| puts s.join(' ') }
puts
combi2( 7, 5, [], 0 ){ |s| puts s.join(' ') }

こちらは桁分ループするスクリプトを動的に生成し、evalする方法

def combi3( v0, m )
  s=(0..(m-1)).map{ |i| "(#{m-i}...v#{i}).each{ |v#{i+1}|" }.join('')
  s+="yield [" + (1..m).map{ |i| "v#{i}" }.join(",") + "]"
  s+="}"*m
  eval s, binding
end
combi3( 6, 3 ){ |v| p v }

で、これが動的に生成したもの

=begin

# combi( 6, 3 )

(3...v0).each{ |v1|

(2...v1).each{ |v2|

(1...v2).each{ |v3|

yield [v1,v2,v3]

}

}

}

=end

これはRubyで作成したcombi2をC++版で実装したもの

#include <vector>
#include <cstdlib>
#include <iostream>

using namespace std;

template< typename proc_type>
void combi( int n, int m, std::vector<int> & sel, int pos, proc_type proc )
{
    if ( m==pos ){
        proc( sel );
    } else {
        int lo = pos==0 ? 1 : sel[pos-1]+1;
        for( int x=lo ; x<=n ; ++x ){
            sel[ pos ]=x;
            combi( n, m, sel, pos+1, proc );
        }
    }
}

void show_vec( vector<int> const & v )
{
    for( int i=0 ; i<v.size() ; ++i ){
        cout << v[i] << " ";
    }
    cout << "\n";
}

int main( int argc, const char * argv[] )
{
    int n = atoi( argv[1] );
    int m = atoi( argv[2] );
    combi( n, m, std::vector<int>(m), 0, show_vec );
}

当日は2グループに分かれてやったので、反対側のグループはというと、なかなか面白そうなのをやっていた。

id:hidecheckさん、Bennettさんの提供問題(ありがとうございます!)

組み合わせ - hidecheckの日記

Androidで3連単フォーメーション馬券 - hidecheckの日記

あと、Bennettさん。

Error 404 (Not Found)!!1 の「B(hidecheckさん・Bennettさんの問題)」あたりを参照。

数学的要素が・・・

濃くなってきた。

# へなちょこレベル99の自分にはハードルが高く感じられるようになってきた

# ある程度の数学プログラミングの素養がないと、この先ついていけなそう…

横浜へなちょこプログラミング勉強会 #3 行ってきました - 謀 跡地

を受けたので、ちょっとやり方を変えてみた。

  • 今回は自己紹介に問題を持参したかを言ってもらって、問題出題者がグループ分けをしたときに偏らないようにした。
  • 出題者を分けた後、参加者自身にどちらのグループでやるかを決めてもらった。

今回はうまいこと分かれたけど、次回はこのやり方でうまくいくかわからない。分け方は再度模索しなくては。

今回初参加のdekiotoさん、kanameさん、nidoさんありがとうございます。

次回7月4日(土)同じ場所、同じ部屋、おんなじ時間です><

よろしくお願いします。

今回の振り返り(グループ分けして、相手が名にやったかわからないので、お互いになにやったか発表中)

Nabetaniさん、cavefishさんは笑い男でごまかし。

f:id:hkhumanoid:20090606201532j:image

これはid:Nabetaniさん作の「渦」。再帰を利用している。

HTML Canvas で 再帰的タートルグラフィックス - 鍋あり谷あり

f:id:hkhumanoid:20090612013735p:image

2009-05-10

第3回プログラマの数学読書会を主宰してきた

| 20:31 | 第3回プログラマの数学読書会を主宰してきた - 脱エンタープライズ志向 を含むブックマーク

ゴールデンウィークも明けた5月9日の土曜に「第3回プログラマ数学読書会*1を開催してきた。

今回は17:30スタート(準備、受付は17:00)ということで、14時から行われたid:TakamiChieさん主宰のプレ会*2にまず参加してきた。

14:00 プレ会

お店はKUBOTA食堂*3

ちょっと5分ほど遅れてしまったけど、そこには既にヤマギシさんとid:TakamiChieさん、id:hidecheckさんがいた。お昼を食べながら持参のPCを開いてプログラミングや最近のトレンドなど話しながら、まるでHacker's Cafe*4のように過ごした。id:motofumikomiyaさんが持ち込んだOpenCVネタを見ながら、面白い話や実際にUSBカメラを用いてOpenCVアプリを見せてくれた。話した内容はid:motofumikomiyaさんのエントリーを参照*5

こういうのって良いな。また次参加しよう!

17:00 第3回プログラマ数学読書会

まずはタイムライン

  • 17:00 準備、受付を開始
  • 17:30 自己紹介。
  • 17:45 第3章(剰余)ディスカッション
  • 18:35 休憩
  • 18:45 第4章(数学的帰納法)ディスカッション
  • 19:35 休憩
  • 19:45 振り返り
  • 20:30 片付け、撤収
準備、受付

今回は夜寄りということもあったが、外は明るくてプロジェクタを使うには少し厳しかった。だけど、なんとかしようと前回同様明かりが差し込むところ、天井に近い窓は座布団で塞いで、障子は外した襖を立て掛けて光を遮った。こういった皆さんの協力を得て、プロジェクタの設置と机の配置など準備は無事に終えた。

自己紹介

前回はタイムテーブルで組んだ時間を無視して自己紹介をやり続けた結果、なんと15分の予定が45分近くやってしまったので、今回はちゃんと1分で終えるようにタイムキーパーを用いて制御した。*6

持ち時間は1分だけど、1分って結構長い。*7

第3章(剰余)、第4章(数学的帰納法)ディスカッション

2チームに分かれてディスカッションをした。僕がいた方ではid:hidecheckさん、篠原さんが問題を作ってきてくれた。(対するチームではid:Nabetaniさんが問題を作ってきてくれたみたい。)*8ディスカッションをして率直な感想として、みんなすごい。特に篠原さん、id:hidecheckさん、id:Nabetaniさんは数学的アプローチっていうか考え方っていうかセンスみたいなものを感じた。今回の章(3、4章)からからより数学的な内容になっていて参加者の発言がより数学的でびっくりした。問題に出された内容も自作なのかどうかまでは聞いていなかったけど、とても考えさせられるもので「なんとか自力で解きたいっ!」と思わせてくれる問題でありとても魅力的で楽しめた。(次回は問題を作って来よう!)それに自分自身が納得いくまで何回も解説してくれた。感謝感謝。

振り返り

2チームに分かれてディスカッションを行ったので、前回同様にお互いどんなことをやったのか発表しあった。僕のいたチーム(ホワイトボードを使っていたので白板チームとでも言っておこう)は今までに話した内容であった。対するチーム(id:TakamiChieさんがわざわざ黒板を持ってきてくれたので黒板チームとでも言っておこう)はid:Nabetaniさんを中心に問題を出し合い、考え、理解を深めていったよう。

f:id:hkhumanoid:20090509195544j:image

これはid:hidecheckさんが持参した問題を振り返り時にみんなの前で発表&解説しているところ。和室なのでリラックスしながら考えたりできる

f:id:hkhumanoid:20090509201652j:image

これはid:Nabetaniさんが持参した問題。プログラマ数学P80の「部屋に畳を敷き詰める」という問題をより複雑にした問題を自作してきたのでそれを発表&解説をしてもらっているところ。*9

片付け、撤収

みなさんの協力のもと無事片付け、撤収も終えた。次回からはホワイトボードをもう1つ貸してもらおう!

読書会終わって、飲み会へ

今回は前回第2回の2次会で利用した横浜西口の鳥良*10で開催。ここで「転職をしたい!」と言う僕の相談に乗ってくれたid:hidecheckさんやだんさんから色々な情報をもらった。これはまた別エントリーに書こうかな。兎に角、プレ会でも飲み会でも自分の知らない世界の情報を得れてよかった。

まとめ

今回は第3回ということで進め方も分かってきた。本を読み、問題を作ってそれを展開することで理解を深め、また仲も深めることもできるんだなって身を以て感じた。次回は僕も問題を作ってこようと思った。

Special Thanks

今回議事録を取ってくれたid:motofumikomiyaさん、ヤマギシさん

プロジェクタを用意してくれたid:kirara_397さん

プレ会を主催&黒板を持参してくれたid:TakamiChieさん

ありがとうございました

トラックバック

はてなダイアリー

はてなダイアリー

横浜へなちょこプログラミング勉強会#3に参加してきました - 高見知英のかいはつにっし(β)

横浜へなちょこプログラミング勉強会 #3 行ってきました - 謀 跡地

gen-sukegen-suke 2009/05/11 21:57 第3回、主宰お疲れ様です。
今回は出席できませんでしたが次回こそはと思っています。
そのときは宜しくお願いします。

hkhumanoidhkhumanoid 2009/05/11 23:13 お待ちしておりますw
数学的な内容なので、考える楽しさを多いに感じることができますよ><

2009-04-05

第2回プログラマの数学読書会を主宰してきた

| 19:25 | 第2回プログラマの数学読書会を主宰してきた - 脱エンタープライズ志向 を含むブックマーク

4月4日(土)に第2回プログラマ数学読書会を開催した。

そうそう、読んでみての感想

書き忘れていた。

一度専門学校のときに、基礎として学んだけど今回改めて学べてよかった。学生時代に習うのと、仕事をしてから学ぶのとでは違う目線で学べてのでとても良かった。

第1章 ゼロの物語

率直な感想として、この本を読むまでゼロのありがたさを感じなかった。ゼロって当たり前にあるから、「ない」こと自体が「ある」って言うのをこのプログラマ数学を読むまでゼロは「ない」ってことを表しているだけだろーって思っていただろう。けど、"ルールをシンプルにする"っていうことが仕事でもなんでもすごい重要で、それがないと何もかもすべてが複雑に入り交じってしまうってことになってしまう。とても恐ろしいことだなって思った。また大きなまとまりは小さなまとまりにして解くということも、うなずけますな。

第2章 論理

論理自体は普段プログラムでif文などを使っているので、なんら難しいテーマではないが、条件というのは大体複雑なものでそれをそのままプログラムに落とし込むのはバグを生む原因になったりする。けど、現場で重要視されるのは、昨今のハードはスペックも改善され性能的にはなんら問題がないのでやはり性能より可読性が要求される。仕様を加工せずにそのままコードに実装した方が追ってきやすという声も聞こえてくる。でもほんとは無駄があり「ここってよく見れば(^A)・Bじゃん!!」ってことがあったり、「ここって変数B使われてないじゃん!」っていうのがよくある。また、テストケース自体複雑になる世の中だけど、簡略化してやることでテストコードも短くなる。これらの理由から僕はカルノー図を使って簡略化した方が全然いいっていう結論に至った。ド・モルガンの法則やベン図など直接業務とし関わってこない知識としても、知っているのと知らないのとでは考え方が違ってくるのではと思う。

最初に

まずは参加してくれたみんなありがとう!初参加のid:goyokiさん、ベネットさんいらっしゃい><

スタッフにも感謝!

準備

当日部屋でプロジェクタのセッティングしている時に問題発生

部屋を閉め切って電気もオフにしても明るい!

ということで、急遽座布団や襖で障子や高い位置にある窓から漏れる光やをさえぎることに。何とかプロジェクトも見えるようになった。(写真とっておけばよかったー><前回のお手製スクリーンもそうだったように)

自己紹介

自己紹介は予定として一人一分を目安にしていて15分見積もっていたけど、終わってみれば45分やっていたw

でも、まだお互いのことあまり良くわからない中でも、「今、airに興味あります!」などから話は脱線して行き、予定時間は過ぎ去ったけどお互い何に興味あるのかなどを知ることができて、これからの発展につながったと思うと、やって良かったなって思う。(dan5さんが作っているゲーム面白そうだったなーw)

第1、2章を読んでのディスカッション

13人いたので、7人と6人に分けてディスカッション。僕のいたところは主に自作プログラムの見せ合いだった。作ってきたコードを上から解説して、実際に動かして感想を言い合うっていう感じで進行していった。他にはテーマに関するテクニカルなトークや本テーマに合ったお勧めサイトを見て、そこにある問題を解いたりした。この短時間でも色々なソースコードを見れたし、テクニカルな話も聞けたのでとてもタメになった。

自分が用意したプログラムプログラマ数学のP55ページにある「3ランプゲーム」でルールをそのまま適用した条件分岐とカルノー図で簡略した条件分岐ではどのくらい処理速度が違うのかというベンチマークをしてみた。コードはこちら

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

# p55 3ランプゲーム実装
# 以下のいずれかのパターンになったら、ボタンを押す
# a.青いランプが消えていて、黄色いランプも消えていて、赤いランプも消えている
# b.黄色いランプは消えているが、赤いランプは光っている
# c.青いランプは消えているが、黄色いランプは光っている
# d.青いランプも黄色いランプも赤いランプも光っている

# 命題A 青いランプが光っている
# 命題B 黄色いランプが光っている
# 命題C 赤いランプが光っている

#   |    B
#   | f f t t
#   |----------
#  f| x x x x
# A |
#  t|   x x
#   |----------
#   | f t t f
#   |    C

# カルノー図で命題を簡略化した結果、
# (^A) ^ Cであることがわかった
# これをカルノー図で簡略しない場合とした場合との速度の違いを求める

import time
import sys
import codecs
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)

# ループ数
loop_count = 1000000
# 命題[A:青, B:黄色, C:赤]
bools_array = [[True, True, True], [True, True, False], [True, False,
True], [True, False, False], [False, True, True], [False, True,
False], [False, False, True], [False, False, False]]

# ルールをそのまま条件にした場合
print u"ルールをそのまま条件にした場合 >>> "
t1_s = time.time()
c1 = 0
for i in range(loop_count):
 for bools in bools_array:
   if (not bools[0] and not bools[1] and not bools[2]) or (not
bools[1] and bools[2]) or (not bools[0] and bools[1]) or (bools[0] and
bools[1] and bools[2]):
     c1 += 1
t1_e = time.time()
print u"  ボタンを押した回数 >>> ", c1
print u"  処理に要した時間 >>> ", t1_s - t1_e

# カルノー図で簡略化した場合
print u"カルノー図で簡略化した場合 >>> "
t2_s = time.time()
c2 = 0
for i in range(loop_count):
 for bools in bools_array:
   if not bools[0] or bools[2]:
     c2 += 1
t2_e = time.time()
print u"  ボタンを押した回数 >>> ", c2
print u"  処理に要した時間 >>> ", t2_s - t2_e

僕のMacBookのスペックは以下のとおり

  • CPU 2GHz Intel Core 2 Duo
  • メモリ 667MHz DDR2 SDRAM 1GB * 2

結果は

ルールをそのまま条件にした場合 >>>
 ボタンを押した回数 >>>  6000000
 処理に要した時間 >>>  -7.19288897514
カルノー図で簡略化した場合 >>>
 ボタンを押した回数 >>>  6000000
 処理に要した時間 >>>  -4.44591403008

だいたい2倍近くは変わる。まぁ100万回繰り返すってなかなか実作業でないけど、ありえるならバッチ処理くらいかな。でも、このカルノー図で簡略化するっていう考え方を知っているのと知らないのとではいろんな場面で差が出てくると思う。

他にもid:tom23-yuさんやid:Nabetaniさん(加算と減算 - 鍋あり谷あり)、当日時間内に見ることはできなかったけどid:motofumikomiyaさんはjavascriptで3値論理を実現してみた結果、条件付き論理積はP59の表と一致したが、条件付き論理和についてはP60と一致しなかったよう。異なるところはAがundefinedでBがtrueのときA||Bはプログラマ数学(というか論理学的)ではundefinedであるが、Firefoxではtrueになったという。同じくAがundefinedでBがfalseのときA||Bがプログラマ数学(というか論理学的)ではundefinedのはずがFirefoxではfalseになったという。これはFirefoxの仕様だというテクニカルな話を聞けて大変よかった。詳しくはこちらを参照。時間があるなら自分でも一度ちゃんと調べてみたい。他にもhidecheckさんがはじめMath! Javaでコンピュータ数学:連載|gihyo.jp … 技術評論社を教えてくれた。このサイトはプログラマ数学のような基礎的なことを取り上げて、Javaで問題を実装してみたりしていて面白いサイトだと思う。

対するグループは主に納得できないことや分からないことテーマにディスカッションをしていたよう。詳細は議事が公開され次第リンクする。

振り返り

と、ここまで2つに分かれたのでお互い何を話していたのか、何をテーマにディスカッションしていたのかを発表し合った。その中で3値論理(true/false/undefined)を判定する関数をBoost(C++)がtriboolという関数で実装しているということや、pingはgを発音しない(要するにピングではなくピンと発音する)が正式だったり、Falseのことをファルスっていってしまうと*1男性器を指し示すことになるやなどのを幅広いことを初めて知った。(うーん、勉強になりましたw)そこでも話が盛り上がっちゃって掃除、片付け時間に食い込み。でも皆さんが片付け、掃除をせっせとしてくれたおかげで何とか終われた。

最後に

開催場所は和室ということもあり、場所として大丈夫かなって不安はあったけど、みんなくつろげて良いね!って好評価を貰った。ありがとうございます!ホワイトボードが後もう1つあれば良いねという声もあったので、携帯ホワイトボードを用意しようかしら。なんにしろ立地的にも部屋的にもみなさん好評だったので、次回5月9日も同じ場所で同じ時間で抑えて第3、4章をやりたいと思う。

では飲み1次会

終わったのが17時だったけど、最寄り駅の東神奈川のちょっとこじゃれた居酒屋で飲んだ。id:tom23-yuさんがここでお帰りとの事で別れました、お疲れ様でした。乾杯後、技術的な話やおバカな話で盛り上がりすぎて気づいたら23時。。。gen-sukeさん、ベネットさん遠くから来てもらっているのにすみません><(あっ!5月9日のじんぐうじさんの挙式用に冠婚葬祭用のスーツを新調しなきゃw)

そして2次会へ

横浜に着いたのが23時半くらいだった。この時点でいつの間にか一緒に行動していたid:Nabetaniさんがいなくなっていたのに気がついた。(気がつかなくてすいません。。)まぁまだ終電までちょっと時間あるし、ノリでこの時間からまた飲み屋に行った。ここでdan5さんとid:motofumikomiyaさんが帰宅だったのでお別れに、お疲れ様でした&dan5さん無事帰れたかなw)2次会のお店についたけど、何をオーダーしたかってみんなそろってソフトドリンク&スイーツオンリー。でも腹も落ち着かせれたしちょうど良かった。みなさん終電も近づいてきたのでここでお開き。時間は24時10分くらいだったかな。なにはともあれ無事に楽しく第2回を終えれて主宰としてはほっとしている。

写真

横へなです!

f:id:hkhumanoid:20090404170402j:image

こんな雰囲気でやってます!プログラムをみんなで見てワイワイやっています(このときはid:tom23-yuさんのVBAのソース見てたかな)

f:id:hkhumanoid:20090404154618j:image

これ2次会のお店、24時くらいだけどまだみんな元気です!見えないけどここにid:kirara_397さんもいます。みんなソフトドリンクとスイーツ(高見さん写真提供どうもです)

f:id:hkhumanoid:20090405000619j:image

参加者のエントリー

ひとまずここにトラックバック

はてなダイアリー

プログラマの数学 - 高見知英のかいはつにっし(β)

横浜へなちょこプログラミング勉強会 - 高見知英のかいはつにっし(β)

第2回横浜へなちょこプログラミング勉強会に参加しました。 - Gen-Sukeの日記

kirara_397kirara_397 2009/04/06 11:46 おつかれさまでした。略称は横へなでいいのん? 私は勝手に呼んでたけどw

hkhumanoidhkhumanoid 2009/04/06 19:50 kirara_397さん
第2回お疲れさま&議事ありがとうございました!
僕も勝手に横へなって読んでますよw
後、高見さんもだったかな><

平田敦平田敦 2009/04/09 20:18 はじめMathの平田です。
勉強会でのご紹介・ご利用ありがとうございます。
ツッコミどころが多いと思いますので、気軽に突っ込んでくださいね!
失礼しました。

hkhumanoidhkhumanoid 2009/04/09 21:41 平田さん
勉強会ではお世話になりました。
基礎を数多く取り上げていただいて感謝しています。
これからも本勉強会で取り上げさせてもらいますw