カテゴリー : Lerning

「数学文章作法 基礎編」という本を結城さんが出すらしい.


【お知らせ】4月10日に刊行される結城浩の最新刊『数学文章作法 基礎編』(ちくま学芸文庫)を抽選で無料プレゼントいたします。 (^^)http://t.co/beAowBStFx
@hyuki
結城浩

ま,また僕に本を買わせる気ですか結城さんー!

IMG_7475]

実のところ,僕の所属する研究室には大分優遇してもらってて,技術書や数学書は研究費で購入してもらうことが多いです.修士二年間で買ってもらった本の総額はちょっとこの場では言えないぐらいになっています.

しかし,なぜか「数学ガールは自費で買う」という謎の制約を自分に課しており,これまでもそうしてきました.

閑話休題

今回結城さんが出す本は「数学文章作方(さくほうと読むらしい) 基礎編」という本で,おそらくは「数学ガール」を始めとした「一般人でも分かりやすく興味をひく数学本」を多く買いている結城浩さんの作法エッセンスがツラツラと書かれているのでしょう.「基礎」と言ってるのであまり崩せないでしょうが,結城さんらしい「作法」が読んでみたいです.

正直な話,僕みたいな学生にとっては「理科系の作文技術」という大定番があるので,文章作法本のような本を心待ちにしていたわけではありません.結局論文・文章を読み&書きまくることが一番の方法だと思いますしね.

しかし結城さんですよ.数学ガールの作者ですよ.それなら読みたいですよ.という感じで,この記事を書いた次第です.

作法本の発売が楽しみです.どのような内容になってるのでしょうか.

個人的には「数式と数式を繋ぐ論理の流れ,滑らかに説明(それでいて硬くなり過ぎない)する流麗な文章の書き方」などなど期待しています.一般向けの方々に文章を書くコツ等があるのかもしれませんしね.

SC 合格した!

遅ればせながら、あけましておめでとうございます。

正月はまわりにひかれるほどの寝正月っぷりでした。今年は大学生活で最も重要な年になる気がする。。

タイトルの通り

情報セキュリティスペシャリスト試験に合格しました。(すごい嬉しい

得点

得点

ちょ、午後2!!
まぁ、ギリギリとはいえ合格しました。

本試験は

2009春に午後2が3点差で落ちて、2回目の挑戦でした。
春の時点では、ネットワーク関連の知識がほぼ0で、サーバもいじったことがなく落ちて当然な感じが。
2回目の今回は、試験勉強は全っくしてない(2回目ということで、モチベーションが。。)。それでも受かったってのは、大学のサーバ班での活動とかがつながったんだろうなぁ、としんみり。

研究室も決まったし、今年もがんばるぞ!!

Go 勉強会した #0

この前の土・日にコンパイラの授業でGoの勉強会(もとい、ソース読み会)が行われた。
ものすごい濃い2日間だったので、まとめておく。

下準備

資料

  • Go プロジェクトページ
  • How to Install
  • チュートリアル等(English)
    • Install

      hgでリポジトリをclone。How toのページではhttps経由だったけど、Pythonのsslモジュールがないとか起こられたりしたので、http経由だと落とせた。

      hg clone -r release https://go.googlecode.com/hg/ $GOROOT

      インストールは$GOROOT,$GOOARCH,$GOARCHをShellの環境変数にexportして$GOROOT/src/all.bashを実行すればOK。ちなみに、$GOBINを指定しないと~/binに実行ファイルがデフォルトでおかれる。

      gtags

      Goのソース読み会では、プロジェクタでソース映しながら教授の講義とともに進めて行くかんじ。といっても、受講生は3人で学生にバシバシ読ませてたけど。ちなみに、自分の担当はyacc,lexなどの構文解析まわりだったり。

      ソース読み会が初めてな僕に、gtagsなるツールがないと話にならないというアドバイスを先輩からもらったので、早速設定。
      gtags使うと、シンボルとか関数の定義/参照とかをファイルをまたいで飛びまわれるという便利なもの。大きなソースを読むのにはかかせないらしい。

      ソースディレクトリのルートで”gtags -v”を実行するだけで準備完了。結構すぐタグファイルが生成されたりして興奮した。

      Goの特徴とか

      Goの勉強会は、Goの実装を読むことがメインなソース読み会だったのでGoでプログラムを書いたりなどはほとんどしなかった。
      (チュートリアルを高速で読んだり)

      チュートリアルを作成

      • “go”でスレッド生成 : go-routine
      • channelでスレッドとやりとり(joinもchannelで)
      • “;”を(一部)省省略できる
      • 型推論
      • 多値
        • チュートリアル読んで、go-routineで積分近似(台形公式…)を行うプログラム書いてみた。

          package main

          import ("fmt"; "strconv"; "math"; "os")

          func main() {

              if len(os.Args) < 2 {
                  fmt.Println("args: number-of-thread");
                  os.Exit(1)
              }

              /* Setting the environment variable $GOMAXPROCS or calling↓
                 runtime.GOMAXPROCS() will change the number of user threads↓ */


              Thread, err := strconv.Atoi(os.Args[1]);
              n := 10000000;

              if (err != nil) {
                  fmt.Println(err);
                  os.Exit(1)
              }

              var (
                  Pi = 4*math.Atan(1);
                  start, end, result float64  = 0.0, Pi, 0.0;
                  h float64 = (end - start) / float64(n)
              )

              ch := make(chan float64);

              //Function literals are indeed closures
              trap := func(start, end, h float64, n int, ch chan float64, f (func(float64) float64)) {
                  var integral, x float64 = (f(start) + f(end)) / 2., start;

                  for i := 1; i <= n - 1; i++ {
                      x += h;
                      integral += f(x)
                  }
                  integral *= h;
                  ch <- integral
              };

              //Let's go!
              for i := 0; i < Thread; i += 1 {
                  fmt.Printf("- call go-routine %d -\n", i);
                  var local_start = start + float64(i) * float64(n / Thread) * h;
                  var local_end   = local_start + float64(n / Thread) * h;
                  //Function-literal can be argument
                  go trap(local_start, local_end, h, (n / Thread), ch,
                      func(a float64) float64 { return math.Sin(a) })
              }

              fmt.Println("- now calculating with go-routine -");

              for i := 0; i < Thread; i++ { result += <-ch }

              fmt.Printf("- integral f(x) with %f to %f\n number-of-Threads = %d, accuracy = %d \n = %f\n",
                  start, end, Thread, n, result)
          }

          Shellの環境変数$GOMAXPROCSで、同時実行できるgo-routineの数を指定できる。デフォルトでは1

          SHINYA% export GOMAXPROCS=1
          SHINYA% time ./trapezoidal_integrate 2
          - call go-routine 0 -
          - call go-routine 1 -
          - now calculating with go-routine -
          - integral f(x) with 0.000000 to 3.141593
           number-of-Threads = 2, accuracy = 10000000
           = 2.000000
          ./trapezoidal_integrate 2  1.87s user 0.01s system 98% cpu 1.915 total
          SHINYA% export GOMAXPROCS=2
          SHINYA% time ./trapezoidal_integrate 2
          - call go-routine 0 -
          - call go-routine 1 -
          - now calculating with go-routine -
          - integral f(x) with 0.000000 to 3.141593
           number-of-Threads = 2, accuracy = 10000000
           = 2.000000
          ./trapezoidal_integrate 2  1.87s user 0.01s system 178% cpu 1.053 total

          $GOMAXPROCSを2で。ちゃんと2倍の速度が出て満足満足。

          次回は

          ソースに踏み込んで、Goの構文解析周りを報告するよ!(予定)

Java Kueche 初参加してきたメモ

大学で開催される勉強会「Java Kueche」に参加。

Railsの話

沖縄インデックスの下東さんの発表。
Railsの便利な点,約束事,バージョンごとの追加機能を発表されていた。

Rails開発未遂な僕には、「とりあえず便利だから触って」という副音声が聞こえました:)

JavaFX

id:skrbさんの発表。

JavaFXの紹介。
以下、ズラズラとメモ。

手続き型言語でのGUIの構築は難儀(set & addが大半.しかも見にくい)

構造はXMLで書くべき -> 手続き型言語 + XML

    • Adobe Flash Player
    • MXML ActionScript
    • Microsoft SilverRight
    • MXML C#

XMLとかで、GUIを定義するのは楽。ツールとかの恩恵も得られる。

けど

XML内部に手続きを埋め込めない。
プログラム内部で動的に生成することができない。

Java FX

宣言的文法でGUIを構築(json, cssチック)
実は、このプレゼン資料(パワポかと思った)もJavaFXで書いてたりします。

NetBeansにJavaFXが入ってるから、とりあえず触ってみてとのこと。

「数学ガール/ゲーデルの不完全制定理」を読んだ

数学ガール「ゲーデルの不完全制定理」を読了。
連休を利用して、だいたい読むのに12時間ぐらい掛かった。

数学ガール/ゲーデルの不完全性定理

雑感

  • やっぱりまじめに数学
  • 1,2作目とは違い、漫画の絵で脳内再生された
  • やっぱりテトラちゃん良い
  • ミルカさん!!っっ!

SF,ミステリー,冒険活劇,技術書/専門書,ラブコメ。数学ガールを読んでる時の感覚は、(あまり多くないけど)今まで読んできたどの書籍でも味わったことの無い感覚。
テーマは数学だから自分自身話の流れに参加しながら読み進める感じ。作中で「ん?」と思ったところの8割はテトラちゃんが質問してくれたり:-)

1,2作目では考えられないような行動/言動をあの人がしたり(読んでみて!)。

数学的なソレ

  • 序盤は数学の世界へ入るためのウォームアップ
  • ペアノの公理,無限,集合論などサクッと
  • 原始最適関数あたりがちょっと(?)

形式の世界と意味の世界の行き来が見事だった。形式的な式や証明を算術的に扱うためのゲーデル数というところで、なるほどなーと。感心。

  • 意味論的方法 – semantics
  • 構文論的方法 – syntax

英語でのソレがしっくりくるかも。(プログラマなら、、ね)

<pはxの”形式的証明”である>という述語を構成していくための、必要と鳴る述語や関数を定義していく場面は圧巻だった。まさに「プログラミングしている」という感じに形式的に証明を進めていく。
(論理型言語っていうのは、そんな風にルールと推論をベースにつくっていくものなのかな?)

まとめ

  • 不完全制定理のabstractを理解した!(detailは?)
  • 論理型言語とか興味もった(prolog)
  • Wikipediaの不完全制定理のコラムが読めるようになった

自分の中で述語論理だとか知らない分野に光が射した(数学広ぇ!)。わかっていたつもりの数学ネタを、ミルカさんになじられながら考えていくのも面白い(「僕」と一緒に)。

原始再帰性あたりからちょっと分からない(ユーリも!)なー。ここらへんは、巻末でコメント付きで紹介されている参考図書にあたれってことですね!結城先生! 読み直していくのも必要かも。

数学ガールで数学に興味をもって、数学ガールを読み終わったあとに読者自ら数学を学び始めることを、著者は一番望んでいるのでかも。(そうする!)

ということで、以下な参考書を注文。
ゲーデルの世界—完全性定理と不完全性定理
理性の限界——不可能性・不確定性・不完全性 (講談社現代新書)

内容とは関係ないけど、コミック版数学ガールを先に読んでいたので話がコミック版の絵で脳内再生されていったので、想像もしやすかったし楽しかった(ユーリは? imagine)。
数学ガール 上 (MFコミックス フラッパーシリーズ)

「僕」「ミルカさん」はまだ高校3年生になるちょっと前で終わったから、あと1年。数学ガールに”次回作”はあるのかな。楽しみにしておきましょう。

 
Better Tag Cloud