chokudaiのブログ

chokudai(高橋直大)のブログです

電王戦について思う事

やねうら王の件で色々ありましたが、まぁ、あんまり悪い人はいないんじゃないかなーと思ってる。
やねうら王の立場としては、バグありよりはなしのを出した方が、興行的にも良い部分多いでしょうし、ああいう提案をするのは解る。
ドワンゴさんも、ああいうややこしい事態になった時に、ああいうネタに持って行く、というのはドワンゴさんらしい選択肢だなぁ、と思うし、失敗した時の撤回の速さは評価したい。

揉めちゃったこと自体は正直残念だけど、コンピュータ将棋、コンピュータによるゲームAIに注目が集まること自体は、凄く良いことだと思う。どっちが勝つにせよ、面白い将棋が見れると良いな。

結果を出し続けることの大切さ

タイトルはちょっとかっこいい感じのオーラ出てますが、すっごいかっこ悪いことを書きます。

今、自分が紹介されたらどうなるか

「今回のゲストは高橋直大さんです! 高橋さんは、Imagine Cup 2008 アルゴリズム部門で3位を獲得され、TopCoder Open 2010でも2位を獲得された、日本トップクラスの競技プログラマーです! 現在は、AtCoder株式会社の代表取締役として、コンテストの運営側に回り、後進の指導に力を入れています。」

自分の言いたいこと

2010年までしか結果出してなくて今は運営に専念してるっぽい紹介されちゃうけど、現役選手だよ!?普通に出場しまくってるよ!?

要するに何が言いたいか

良い結果を出した後に、その後同等の成果が出ないと、いくら活動を続けていても、「昔の人」扱いされちゃいます。きちんと結果を出しましょう。

いや、でもね? 去年だって、ICPFC2013で優勝したり、TopCoder Open 2013で世界5位取ったり、ちゃんとある程度の成果は出してるんだよ? ね?だめ? もっと結果出さないとだめ?

「実践・最強最速のアルゴリズム勉強会」開催します!

実践・最強最速のアルゴリズム勉強会

AtCoderを利用した、実践アルゴリズム講座を開催します!

概要とかは上に書いてありますが、無料講座で、3/9(日)から5週連続で開催します!

教育関係のをやりたくて会社を立ち上げたのもあるので、こうして勉強会を開けるのは凄い嬉しいです!

どんなことをやるの?

アルゴリズムの勉強、というのは、理論を学んでも、実践までするのはなかなか難しいし、実際コードにする機会というのは、なかなか少ないんじゃないかな、と思います。

例えば、「クイックソート」とか「マージソート」とか、「バブルソート」とか、名前は知っていても、仕組みは知らない人が多いと思うし、知っていても実装したことがある人は少ないんじゃないかなー?と思ってます。

とまぁ、アルゴリズムって、「自分で実装が出来る」か、「中身はよく知らなくても、ツールとして利用できる」のどっちかの状態にならないと、仕方ないと思うわけですね。

そこで、今回注目するのは、「自分で実装が出来る」のところ。汎用性が高く、ある程度自分で実装するべき、探索や動的計画法をベースとして、「どう探索するか」「探索過程をどうイメージするか」「どう計算を工夫するか」に焦点を当てて、勉強会を進めていこうと思っています。

どう進めるの?

進め方は、以下の3つの繰り返しとなります。

  • 講義 これから練習するアルゴリズムの説明をします。
  • 実践 具体的な問題を見た上で、どう実装するかをソースを見せて説明します。
  • 演習 別の問題で、実際に自分で組んでみましょう!

講義、実践は自分が前で説明を行い、演習中は、手を動かす形になります。会場中を回りながら困っている人のヘルプに入るつもりですが、解らないことがあったら、手をあげて質問をしてもらえると楽で嬉しいです。

どんな人に来てほしいか

スケジュールが、こんな感じです。

  • 03/09(日)第 1 回 シミュレーションと全探索
  • 03/16(日)第 2 回 いろいろな全探索
  • 03/23(日)第 3 回 動的計画法とメモ化再帰
  • 03/30(日)第 4 回 動的計画法と計算量を減らす工夫
  • 04/06(日)第 5 回 難問に挑戦!

1日目は、競技プログラミングってどんなものかな?というのを触れながら、まず形式に慣れてもらう形になります。ここは、競技プログラミング経験のある人が来ても、ちょっと退屈になっちゃうかもしれません。

2日目は、深さ優先探索幅優先探索といった、全探索の手法の話をしていきます。競技プログラミング慣れしていない人は、ここから参加するとちょうど良いと思います。

3日目は、全探索が間に合わなくなった場合に、動的計画法・メモ化再帰で、計算量を減らす工夫について説明します。ここからは、愚直な実装では正解コードが書けなくなるので、難しくなってくるかもしれません。

4日目は、さらに難しくなった動的計画法の話と、その他のアルゴリズムの説明をします。今回はグラフを省こうと思っていて、探索のイメージから習得しやすい、二分探索や、尺取法、半分全列挙なんかをテーマに、計算量を減らす面白さを体感してもらえると良いな、と思っています。まだここもちょっと未定です。

5日目は、どれだけ難しくするかはまだ決めてません。4日目までの状況を見ながら、問題を選択するつもりでいます。これは演習が殆どになると思うので、少し経路が変わる毛色が変わるかもしれません。

はてなスターで誤字指摘するなら普通に教えてよ!!w

 

ここまで見て、好きな日に参加してもらうのが、一番良いと思います。とりあえず全部登録して、大変そうだったら途中でリタイア、でもいいと思います。(まずかったらワークスさんごめんなさい><)

ぜひお気軽に参加してもらえると嬉しいです!

最後に

競技プログラミングは、本当に面白いと思っていますし、普通のアルゴリズム教育とは、また違った視点でアルゴリズムが学べると思っています。少しでも興味がある方は、ぜひ遊びに来てくれると嬉しいです!

学校教育で鍛えられる「なんとなく」の力の大切さ

下から7割の人のための理科&算数教育 - Chikirinの日記

これを読んで。自分は算数の人なので、理科をスルーして算数部分だけ。

そもそもの大前提

  • リボ払いを選んだ場合の利子の額
  • 大半の人が選んでしまう住宅ローンの“元利均等払い”の恐ろしさ

この2つを教えるべき、ということを具体例として教わっているのだけれども、まぁ、「すでに学校で教えている」ことだよね、というのは言うまでもないと思う。まさか、「計算過程は教えずに、リボ払いが危険だ」という事実だけ教えろ」なんて言うことではないだろうし、計算方法は習ってる。というのは、すでにみんなが突っ込んでると思う。

学校教育で覚えていること

じゃあ、なんでこんな話をしているのか。学校で習ったことなんてみんな忘れるからだろう。応仁の乱の年号とか覚えてないのと同様、きっとリボ払いの計算は出来ない人は多い。これ、凄く大切で、リボ払いが危険だーってならったとしても、将来的にリボ払いが危険だということを覚えているか解らんのだよね。ってことで、「リボ払いが危険」ということを教えたところで、リボ払いもしくはその類似品で嵌る人ってのはそんな減らないわけですよ。

リボ払いを回避できる人は、どうして回避出来ているのか

まぁ、多分、利子がどれくらいになるか、という計算を出来る人は少ないと思うし、それを実際にした人はもっと少ないわけですよ。けどまぁ、回避してる人、というのはいくらでもいるわけです。そのパターンは、大別して2つに分かれるわけです。

  • 「リボ払いは危険」という知識だけ、他所から伝聞で知った
  • 危険かどうかは計算してないが、なんとなく危険そう

まぁ、多分どっちかだと思うんですね。自分は後者です。

なんで後者みたいな判断が出来るか、っていったら、「指数」ってものを習って、指数ってのはぎゅいーんって増えていくもの、っていうのが分かった上で、「金利」ってワードが解りやすく指数なので、「これやばいんじゃね!?」って反応出来るわけですよ。まぁ指数っていうとちょいずれるけど、直感的にやばそう、ってのがある程度判断出来るよね。

 

目指すべきはここだと思うんですよ。正直大学受験の数学が今解けるか、って言われたら、自分はあんまり解けないです。だけど、そこで身につけた感覚、みたいなのは今でも残っていて、結構大切だよなぁ、と思ってるわけだ。

 

学校教育で直観力をつける

結局、学校教育で身に着けるべきものは、直観力だと思う。

算数、数学だったら、まぁある程度は計算出来たほうが嬉しいし、数字がどれくらいになるか、どう変化するかのイメージが掴めるのが大切なんじゃないのかな。で、数学を専門で勉強する人は、そこが厳密になっていれば良い。

リボ払いだとか、そういう金利計算を、ケーススタディとして学ぶのはもちろん良いんだけど、それじゃ根本解決にならんし、まんべんなく触れて、なんとなくこんな感じなんだな、って風になるように学べば良い。もちろん、大人になって何となく理解しているには、学生時代にある程度計算出来たりしないとダメだと思うけどねw

 

そもそも、「社会」「国語」とかを挙げずに、ちきりんさんが「算数」「理科」だけを列挙してる時点で、「社会」「国語」に対する理解が必要だって解ってるんじゃないかな。

歴史とかだって、別に自分はなんとなくわかれば良いので、例えば応仁の乱が何年くらいあったかとか全然知らないけど、「どういう事をしたら」「どういう風になった」はなんとなく掴んでいるし、そのあたりが、例えば選挙なんかの判断に、なんとなーく絡んでるよね。多分。

国語なんて言語だから解りやすいよね、言語なんて厳密にやらずに何となく把握して何となく出来るようになってる。

何となく、ってすっげー大切なわけです。その何となくを鍛えてるのが学校教育だと思うんです。ってことで、自分は今の学校教育好きだよ。

 

しかしまぁ、単語とかなんとなーくじゃ全く覚えられないので、全く出来ない英語は滅びれば良いと思う。ばーかばーか。