スタート幾何 第 2 回

スタート幾何 #2 というものに参加してきました.

http://partake.in/events/eb51cfab-184e-4c79-a08d-2c148451ffa8

今回は会場係もやっていたのですが, 諸々の私の手落ちにより開始時刻が非常に遅れてしまいました. ご迷惑をお掛けしました.

内容

教科書は松本幸夫先生の「多様体の基礎」を使っていました. すごく丁寧に書いてあってギャップや読者への宿題がほとんど無い本なのですが, それが良かったみたいでした.

今日は第 2 章から始めて, 例 2 のところまで行きました. 細かく突っ込んでいってしまったので, 速度としてはこんなものになってしまいました. 私としては, 定義の気持ちや証明のポイントなどを突っ込んで, どこがキモなのか伝えられたので満足しています.

懇親会

みんなの分のお菓子を買っていただいた方がいらっしゃって, 勉強会後にその場でプチ懇親会みたいになりました.

参加者に教師の方もいらっしゃったようで, 大学入試で使う数学と高校までで教える数学のギャップの話を主にしていました. 自分もすごく興味があり, また問題を抱えているな, と思っているところなので, 現場の方と話せて非常に有意義な時間になりました.

参加者

基本的にみな数学好きな感じでしたが, 年齢の幅が広かったり IT 関係以外の人も来ていたりして驚きました. ご高齢な方は数学を学ぼうという意欲はかなり強い方で, 非常に自分への刺激になりました.

数学への理解を広めたいなぁ, と思っている身としては, 自信を付けていただいた感じです.

逆にそういう方が勉強会を知るのに, 実質 Twitter が必須になってる PARTAKE を使うのは障壁にもなるんだなぁ, と実感しました. (だったら, オープンソースなんだからお前がなんとかせい, という話ですが :P)

まとめ

数学をやる立場としても, 数学を教える立場としても非常に充実した会でした. 次回も是非参加したいと思います. (もちろん家族との時間も大事にね. YAuth ポイント収集頑張れ!! > 俺.)

スタート代数 第1回

今日はスタート代数という勉強会を開催してきました. http://partake.in/events/989bf10a-d5f0-4fcc-ba1f-f152fe2f7072

「スタート」と頭に付いていますが, 懇切丁寧に教えるのではなく懇切丁寧にツッコミを入れる大学のゼミ形式でやってきました. 初めてこの形式に触れた人は驚いたかもしれませんが, ゼミ形式では発表者が理解を深めるのが目的となっています. ソースコードレビューを思い浮かべてもらえると感覚は理解できると思います.

なぜ体論からか?

通常, 代数を学ぶ際には「群」→「環」→「体」と進むのが普通です. でもそこで敢えて体論から始めるのには訳があります.

まず, 体が代数的対象の中で一番身近なこと. もちろん自然数や整数も使っていますが, 割り算が許されない数を扱う場面は少ないと思います.

第2に具体例が分かりやすいこと. 群の例として剰余群が出てきたり, 環の例として多項式環が出てきたりしますが,「これ使ってすごいことができるぜ」感が足りないのです. それに比べてガロア理論での「方程式の根の様子が分かっちまうぜ」の方が印象が強いと考えました.

もちろん群や環のことも少しは知らないと体の話ができないので, その部分については全力でバックアップしていってます.

結果報告

今回は3ページまで進み, 多項式とその根について語り始めるあたりで時間切れとなりました. 遅いように感じると思いますが, 確実な理解を得るためにはこれくらいのスピードになってしまうものです.

「抽象代数を理解するとは?」や「数学のゼミってどんなふうにやるの?」という, あまり知られていない (と思われる) ところが, 体験できたのではないでしょうか?

こちらに参加者の方の板書ノートが公開されています. http://lockerz.com/s/135335969

宿題

今日は宿題がいくつか出ていました.

  • 1のある可換環 R に対し, ∀a ∈ R, a0 = 0
  • 四元数体の逆元を計算せよ
  • ある可換とは限らない群において, ある元の逆元が1つしか存在しないことを示せ

どれもそう難しくないので挑戦してみてください. 1つ目の問題などは「R が可換で無かったらどうなるか?」「R に1が無かったらどうなるか?」「0の公理を削ってみたらどうなるか?」と色々といじってみると, 公理の必要性が分かると思います. (自分はこんなふうにして数学の抽象概念を理解していました.)

まとめ

内容はけっこうガチでやってしまったので, 次回何人参加するのか不安ではあります. また, 元々数学ができる人しか参加しないんじゃないか? という指摘もあると思います. しかし,「数学の抽象的な思考を知った上でプログラミングをする方が幸せになれる」と確信しているので, 今後も様々な方法で数学について知ってもらえるよう活動をしていきます.

  • Java 使いのための数学入門
  • Coq を使って知る数学

などなどできたら良いな, と思っています. だいぶ先の話ですが :P

素因数分解の暗算高速化

誰の役に立つのか, 何の役に立つのか良く分からないが, 中学生くらいのときから数字を見るたびに素因数分解に挑んできた俺が使っている, 暗算で素因数分解をする方法を紹介します.

方針

簡単に計算できるように, 1桁の掛け算と2桁の足し算くらいしか使わないことにします.

11で割る

まず, 一番簡単な11から.

11 = 10 + 1 を利用して, 11の倍数をどんどん引いていきます. 残りが0になったら11の倍数, そうでなかったら11の倍数でない, と分かります.

具体例

135 から始めます.

  1. 135 を 13 と 5 に分解.
  2. 13 - 5 を計算して 8.
  3. 11 で割れないので終了.

簡単ですね.

7で割る

7 * 3 = 21 を利用します.

具体例

1113 から始めます.

  1. 1113 を 111 と 3 に分解.
  2. 111 - 3 * 2 = 105.
  3. 105 を 10 と 5 に分解.
  4. 10 - 5 * 2 = 0. よって7で割り切れる.

色んな数で割る

せっかくなので, 41 くらいまでは揃えてみましょう. そうしておけば, 42^2 = 1764 までの数に出会ったときに素因数分解で困ることは無いです(誰得

3で割る

各桁の数字を足す. 有名なのですぐ分かる.

5で割る

下1桁見れ.

7で割る

既出

11で割る

既出

13で割る

13 * 3 = 39 を利用して,

  1. 下1桁と上の残りに分解
  2. 上の残りに下1桁の4倍を足す

で, 13で割った余りを変えずに数を小さくできる.

17で割る

17 * 3 = 51 を利用して, 下1桁の5倍を上の残りから引けば良い.

19で割る

下1桁の2倍を上の残りに足せば良い.

23で割る

23 * 3 = 69 なので, 下1桁の7倍を上の残りに足す.

29で割る

3倍を足す.

31で割る

3倍を引く.

37で割る

37 * 3 = 111 なので, 11倍を引く. 37の倍数で2桁のものは, 37 と 74 しかないので覚える.

41で割る

4倍を引く.

まとめ

非常に誰得なエントリですが, こういうネタが好きな人が居れば嬉しいです. というか変態です.

43 は素直にやると13倍を足さなきゃいけないので面倒です. 誰かもっと良い方法教えて.

それでは.

TAPL 読書会 第 5 回

今日は TAPL 読書会の第 5 回でした. 型の話をひたすらしてきました.

PARTAKE http://partake.in/events/9e460004-25c1-4c0b-b6a9-a2aa0443ab23

今日は余裕が無く会場に向かう電車の中でのみ予習した, という酷い状態で参加してきました. 9 章が型付き lambda 計算の話で, 今までの章の内容の組み合わせのような章だったのでなんとかその場で読めました. いつも 1 章分終わるかどうか, というペースなのですが, 今回は延長して終わらせました.

以下は kencoba さんのメモです. 話しいてる内容をその場でメモっていただいているので, 細かいとこまでメモしてあって助かります.

http://d.hatena.ne.jp/kencoba/20110409/1302330632

最後の Curry-Howard のあたりで話題に出した住井さんの記事というのは以下の IT Pro の記事です. なんと「型から実装が決まる」というめちゃくちゃ面白い話です.

http://itpro.nikkeibp.co.jp/article/COLUMN/20071005/283903/?ST=develop

言語処理系にはすごく強い興味があるのもあって読書会はすごく面白いのですが, それよりなにより型に引き寄せられる人に面白い (というかマニアックな) 人が多く, 濃いメンツが集まっていて楽しいです. 懇親会も行きたかったのですが事情により不参加. こっちの事情の方が大事ですし.

また来月にあるので, ゴールデンウィークもあることだし今度は予習をしていこうかと思います. 発表形式の方がスムーズなのは確かなんですよね. 他にも色々忙しいですが, そんなこと言わずに発表準備をしようと思います.

ライツアウトを代数的に見る (1)

みなさん, ライツアウトというゲームは知ってますか? 少し前に流行ったので知ってる人も多いでしょう. 4×4のマス目にボタンが配置されていて, ゲームの初期状態ではいくつかは光っています.

光ってるボタン:

光っていないボタン:

初期状態:

■ □ □ ■
■ ■ □ □
□ ■ ■ ■
□ □ □ □

ここで真ん中のボタンを1つ押すと次のように光り方が変化します.

□ □ □
□ □ □
□ □ □
↓
□ ■ □
■ ■ ■
□ ■ □

■ ■ □
■ ■ □
□ □ □
↓
■ □ □
□ □ ■
□ ■ □

このゲームのゴールは全てのボタンを光らせることです. (全てのボタンの光を消す, というのも考えられますが, 問題としては同じなので光る方を選びました.)

問題になるのは,

  • 初期状態だけを見てこのゲームはクリアできるのか?
  • 任意の初期状態に対してクリアする方法があるのか?

といったところです. これを数学的に扱っていきます.

線型代数の応用としてのフーリエ解析

Twitter で @siritori さんにフーリエ解析のことを語っていたら, それなりな長さになってました. ブログ1本分くらいあるんじゃないかと. ブログ記事の代わりにリンクを載せておきます.

http://togetter.com/li/109574

けっこう読んでもらっているようですね. 自分は何かを噛み砕いて人に説明するのが好きなようです. また機会があったら, こんな数学教室を開きたいと思います.

それでは.