フェルマーの原理

この文章では、波のある点の運動について運動方程式を立て、最小作用の原理からフェルマーの原理を導きます。このときの一般化運動量とエネルギーは、ちょうど質量0の粒子の場合に一致しています。最後にフェルマーの原理から光の直進性と屈折の法則を導きま…

光の粒子説と屈折

光を粒子だと思って屈折が説明できたとしても、屈折する粒子と反射する粒子の比は力学の中からは出てきそうもありません。そういった意味で現実を説明する理論としては終わってますが、遊ぶことはできます。 この文章の目標 歴史的には、フーコーの実験によ…

ユーリの使った背理法のロジック

数学ガール/フェルマーの最終定理の10.3.2「風景から問題を見出す」(p299)でユーリが問題10-1を解いてみせています。そのとき使ったロジックについて考えてみました。定理 命題\(P, Q, R\)に対して\((\lnot P \land Q) \Rightarrow R\)と\((\lnot P \land Q…

放浪問題の別解

『数学ガール/乱択アルゴリズム』の問8-2 放浪問題は、確率過程の一種、離散マルコフ連鎖の簡単な例のようです。また、線形代数に関する知識をもう少し使うと、次のようにも解くことができます(定理になるような部分は赤字で強調しました)。勉強のモチベーシ…

より自明な場合から考える。逆から考える。

行列A,Bがあって"AB = A+B"が成り立つとき、BAを求めるって問題。どう考えたら解答に近づけるだろうかと考えてた。行列式、逆行列の性質、線形独立の条件あたりを探索していけば、解法に近づくんだろうか?うーん。2012-09-29 10:07:28 via web これだとさす…

フィボナッチ数列の公式

元ネタ 『数学ガール/乱択アルゴリズム』からです。 ストーリーらしきもの "ぼく"は、8章を読み終えると、なんとなくパラパラと本をめくってみた。ふと問題7-2(p269)が目にとまる。この問題、今なら一般のn乗について求めれそうだ。ちゃんとした問題のかたち…

「行列のトレースは固有値の和」の証明が簡単にならないか考えてみた

数学:物理を学び楽しむために(MB120321.pdf)p371の定理6.34の(6.5.12)の左の証明についてです。証明の中で 代入すればすぐにわかるのだが、もっとエレガントなやり方はないかなあ? と書かれていたのでエレガントか分かりませんが、簡単にならないか考えて…

YIELDを廃止しました【Hello Algorithm】

HelloAlgorithmでは実験的にYIELDという関数を使えるようにしていましたが、別に変数モニタリング機能を使う方法があります。変数モニタリング機能はYIELDを使って実装されていましたが、9月19日のアップデートにより使われなくなったため、YIELDは廃止する…

死亡率0.5%の上乗せについて

この記事は『やっかいな放射線と向き合って暮らしていくための基礎知識』(rbb20120913.pdf)を読んで、手を動かした記録であって、何かを主張するようなものではありません。まずp83(4.6 確率的におきる出来事についての考え方)には 赤玉が50 個だったとして…

【アップデート】Hello Algorithm 2012-09-19

変数をモニタリングするための操作方法が変わりました。(動画を参照ください) 関数名は正規表現で [A-Z][A-Z0-9_-]+, 変数名は[a-zA-Z][a-z0-9_]* に変わりました。 関数名を大文字に限定したのに合わせてprintをPRINTに変更しました。 フェイスブックページ…

放射線の基礎知識を新たな常識にしよう

理論物理学者の田崎さんが書いた『やっかいな放射線と向き合って暮らしていくための基礎知識』がいよいよ紙の本になるようです(公式、アマゾン)。出版後もpdfで無料ダウンロードできるそうです。この本はどんな本かと言うと、新しい「常識の基盤」を築くこと…

Rubyの実行箇所がキラキラする

【ニコニコ動画】Rubyプログラムの実行箇所をブラウザで見れるようにしてみた ニコニコ動画なんで、会員しか見れないと思いますが、これはすごいですね。特にキラキラするところがすごいです。どうやってやっているのか全く分かりません。

朝になったらソーシャル図鑑さんに紹介が載っていた

今日の話ではないのですが、朝ツイッターを見たら [ウェブサービス] Hello Algorithm: このサイトでは、数学ガール-乱択アルゴリズム- に登場する擬似コード風のプログラミング言語を実行することができます。... URL #webサービス2012-09-10 11:00:32 via d…

Ruby技術者認定試験シルバーの勉強用アプリを試作してみた

次のような内部DSLを書いて、メインプログラムを走らせると、ランダムに問題が出題されるアプリを作ってみました。 # -*- encoding: utf-8 -* problem "範囲演算子の問題" do size = 5 str = Rcert::random_string(size) f = rand(size-1) l = f + 1 + rand(…

ボードゲームの電子化はボードゲームの売上を上げると思う

ボードゲームを購入する最大の障壁は対戦相手がいないことだと思います。ボードゲームをPCゲームに移植すれば、コンピュータが対戦相手になってくれます。オンラインゲームなら加えて、遠隔地にいるプレイヤーが対戦相手になってくれます。じゃあ、一緒にい…

ボードゲームの電子化について

UIの部分がほぼ完成しました。試しに1ゲームしてみたら、20分程度かかりました(ホンモノのボードゲームとして真剣に対戦したら60分程度かかるようです。)。ぼくが下手なのもありますが、結構時間がかかります。 ボードゲーム用ゲームエンジンみたいなのを作…

テクノロジーの進歩と人間関係の希薄さ

今日、散髪したとき「なんでこの人、こんなにぼくに良くしてくれるのかなぁ?恩人でもなければ友人でもないのに」と思いました。お金というテクノロジーがあるから、関係性が生まれたのですが、それはお金無しのやり取り、あるいは物々交換よりも圧倒的に希…

プログラミングの題材にボードゲームを使う

Webプログラミングの題材によくブログ、ECサイトが選ばれます。ECサイトは求められる要件を個人が想像するのには難しすぎるし、ブログは単純です。ではボードゲームはどうでしょうか。ぎりぎり実装方法を思いつくくらいのUIとAI,ほどよく複雑なルール。自分…

5月を振り返る

5月のはじめはwiki2htmlとhello algorithmの手直しを毎日少しずつしてきました。TODO管理は個人用非公開wikiでしました。それぞれのプロジェクト・ページの他に、習慣的にやることのリストをwikiに書き出すようになりました。リストには毎日やること、週に一…

リンクスライダー:素朴なNPCを実装

昨日見通したのとほぼ同じ方法でNPCと対戦できるところまでゲームを作りました。唯一の違いはC拡張を書くのを止めて、subprocessを使ったところです。 1戦目 2戦目 もし公開するつもりならば、やることはまだまだたくさんありますが、だいたいどうするべきか…

リンクスライダー、NPC対戦までの道が見えてきた

あらかじめ用意した操作手順を配列でNPCに与えることに成功しました。 これでようやく、NPCとの対戦までの道のりが見えてきました。今、手元にあるのは c/c++なら(おそらく)1秒以内に与えられた状況からゴールまでの操作手順が生成できる pythonのc拡張の書…

リンクスライダー(1人用)の最善手を計算してみた

前回紹介したリンクスライダー。AIを作りたいのですがJavaScriptで考えるのはしんどいので、まずc++で計算してみました。結果を見せるために、ゲーム上で手動で操作して動画は撮りました(答えを見ながらやっているため、操作がぎこちない。。)。 まずパズル…

プログラムの題材としてのパズル

Eテレでパズルを題材にしたアニメが放送さてています。ストーリーはよく理解できないのだけれども、登場するパズルが面白そうです。今リアルタイムでアニメのキャラクタたちが勝負しているゲームは、リンクスライダーと言うのですが、これが特に面白そうだっ…

ブログを書くだけでは自分の"今の考え"は正しく伝わらない

wordpressユーザーの方とかのブログを開くと、よく「自分の考えを理解してもらうためにブログを書くのが良い」という意見を目にします。でもそれだけでは自分の考えを知ってもらうことは出来ず、かえって誤解されるんじゃないかと思います。そういったぼくの…

競技プログラミングについて

最近PKU, AOJなどといったオンラインジャッジシステムで問題を解いてます。いわゆる競技プログラミングというやつですね。競技プログラミングは柔軟な発想を養うので役に立つだとか、グローバル変数をガンガン使うから悪い癖が付くだとか色々言われています…

一般ユーザーを遠ざけるプログラムの公開の仕方

ぼくはプログラムを公開することがありますが、一般ユーザーはあまり近づかないようなやり方で公開しています。たとえばVectorではなくgistにwiki2htmlは公開していますし、helloalgorithmは独自ドメインは取らないし、ファビコンも付けてません。それどころ…

はじめてのMMOG

このGWはMMOGに初挑戦してみました。ちょっとFF5っぽいと言ったら語弊がありますが、ぼくが10年前、まだコンソールゲームをしていた頃のゲームとそれほど変わらない見た目のRPG。アイテム課金もあるそうですが、最強を目指したりしなければ、課金しなくても…

変数モニタリング機能を追加しました

今年の初め頃に数学ガール-乱択アルゴリズム-に登場する擬似コード実行環境として「hello algorithm」を開発していたのですが、最後に予告した機能がまだ追加されていませんでした。UI的にも使いにくいところがあり、またバグもあると思いますが、まずは公開…

設定ファイルで記法をカスタマイズ可能にしました

先程wiki2htmlを更新しました。ここから最新版がダウンロードできます。 今回のアップデートで、"wiki2html.ini"というファイルをフォルダに置くことで、記法を変更することができるようになりました。この変更で、例えば単純なMarkdown記法のファイルをwiki…

gistを色々な用途に使う

gistはコードスニペット置き場のような使い方が一般的だと思います。でも、gistそれぞれの投稿に1つのgitリポジトリが割り当てられていることを考えれば、もっと色々な使い方ができることに気付きます。ぼくが使っているのは2通りで、1つはフリーウェア置き…