2009-01-01から1年間の記事一覧

CEDECへ行ってきました

仕事が忙しくてブログが放置ぎみになってしまいました。やっとマスターが終わったかと思えば、CEDECですね。 今回から横浜なんですねぇ。 S県民にとっては会場が遠い・・・・

ベイズの定理(入門編)

前回のエントリーで予告した通り、今回は「ベイズの定理」です。 事前に断っておきますが、ベイズの定理は簡単です。 内容は小学生レベルの算数ですから、解らなくても自信を持って何回か読みなおせば絶対にわかります。 (わからなかったらコメントに質問し…

モンティホール問題の補講

前回のエントリーで解答をくれた方たち、ありがとうございます。 正解した方たち、おめでとうございます。 前知識なしで2問とも正解した方は、非常に頭のいい方だと思います。 残念ながら不正解だった方たち、落ち込まないでください。 私も最初にこの問題を…

【回答編】はてな民に確率の問題を出してみよう

この記事は「はてな民に確率の問題を出してみよう」の回答編です。 まずは、そちらをご覧ください。

はてな民に確率の問題を出してみよう

こんにちは、今回は確率の話です。 以前、職場で余興として問題を出したのですが、ほぼ全員がこの問題を知りませんでした。 理系が多く集まる職場なので、意外にみんな知らないんだなぁと思ったのですが、今度はリテラシーの高い(と勝手に思っている)はて…

RE:自分ならこう書く - pythonでA*

自分ならこう書く - pythonでA* - ラシウラ おぉぉぉ、コードが添削されとる! しかし、ソート付きキューのheapqは知らなかったです、勉強になります。 それにしても、C言語のベタ移植だったとはいえ、Pythonに直すと短くなるもんだなぁ!! ・・・でも、短…

よく使うファイル操作早引き

Pythonでよく使う便利なファイル操作のまとめ。 こういう便利な機能を使っちゃうと、C言語でツールを作るのがバカらしくなりますね。 テンポラリファイル(一時ファイル) tempfileモジュールを使います、テンポラリファイルを作成する方法はいくつかあって…

wxMaxima覚書

wxMaximaとは? 「wxMaxima」とは、フリーの数式処理ソフト「Maxima」のGUIフロント版です。以下のページからwxMaximaをダウンロードすることができます。 http://wxmaxima.sourceforge.net/wiki/index.php/Main_Page Ubuntu(Linux)の場合は、以下のコマンド…

今更ながらjsonを使いました

Python2.6になって、jsonが標準モジュールになりましたね。 JavaScriptとの連携をするつもりはないんですが、可読性のあるpickleとして使えるかなと思いました。 import json a = { "name":"Tim", "age":19, "email":"tim@timcity.com", "visible":True } js…

クロージャの正しい使い方

先日、私が「クロージャの使い所が、イマイチわからないっす」とつぶやいてたら、知人から以下のページを教えてもらった。 クロージャの正しい使い方 orz .... 誰かクロージャの正しい使い方を教えてください。 (いや、確かに使ったら便利な場面もあるけど…

SDK1.5でOpenGLサンプル

SDK1.5からOpenGLの扱い方が変わったんですね。 今まで動いてたソースが動かなくて、おじさんビックリしちゃったよ。 SDK1.5からは、GLSurfaceViewを使うように変更になりました、日本語資料が無かったのでサンプルを張っておきます。 res/drawableにrobot.p…

すごい乱数生成アルゴリズム「xorshift」

みなさん、こんにちは、今回は乱数の話です。 特に複数機種でのコンシューマ機でゲームを開発をしていると、機種間で乱数値を統一するために乱数生成アルゴリズムを自作しますよね。 そこでよく使われるアルゴリズムが「線形合同法」です、内容は至って簡単…

numpyで2次元ベクトルの外積

一般的には2次元の外積の存在は賛否が分かれる所ですが、numpyでは2次元ベクトルの外積が用意されています。 import numpy numpy.cross([0,1],[ 1,0]) #-1 numpy.cross([0,1],[-1,0]) # 1 numpy.cross([1,0],[ 0,1]) # 0 どうやら内積の90度回転版みたいです…

ローカル変数で「L」とか「D」の変数名を使うやつ!

ローカル変数だからって1文字の変数名を付ける奴! 本当にそれでいいと思ってんのか?! 特に大文字の1文字変数を名づけた上に、値を上書きするやつ!! Rubyだったら怒られてるぞっ!! このダメプログラマがっ!! プログラミングの神様に謝れ!!! ごめ…

高速数値計算ライブラリ「Numpy」覚書き

Pythonで一番有名で普及しているライブラリと言っても過言ではない「Numpy」の覚書きです。かなり多機能な数値計算ライブラリで、内部はC言語で記述されているため超高速に動作します。 ベクトル ベクトルの長さ&正規化 import numpy a = numpy.array([[2,2…

PythonでA*(A-Star)アルゴリズム

今回はA*アルゴリズムをPythonでやってみます。 ゲームプログラマの間では、もはや常識となりつつある最短経路問題解決アルゴリズムです。 A*は、古典的手法である「ダイクストラ法」を改良したものです。 スタート地点からノードnを通ってゴールに辿り付く…

RSA暗号で「ふっかつのじゅもん」を作る(3)-完結

Pythonを使って高速素数判定をしてみる - Pashango’s Blog RSA暗号で「ふっかつのじゅもん」を作る(1) - Pashango’s Blog RSA暗号で「ふっかつのじゅもん」を作る(2) -RSA暗号鍵の生成 当初はサクッと終わらせるつもりだったのに、意外と長くなってしまいま…

RSA暗号で「ふっかつのじゅもん」を作る(2) -RSA暗号鍵の生成

Pythonを使って高速素数判定をしてみる - Pashango’s Blog RSA暗号で「ふっかつのじゅもん」を作る(1) - Pashango’s Blog さて前回からの続きです、RSA暗号で「ふっかつのじゅもん」を作ってみましょう。 RSA暗号では、暗号化するデータのビット数よりも、1…

RSA暗号で「ふっかつのじゅもん」を作る(1)

オッス、オラ、トンヌラ! 前回は、高速素数判定を作りましたが、今回はRSA暗号を使って、昔懐かしの「ふっかつのじゅもん」を作ってみましょう。 Pythonを使って高速素数判定をしてみる - Pashango’s Blog あ、「今さらRSAかよ」と思いました? 自分でRSAを…

AndroidでColladaのローダーを探しています

〃〃∩ _, ,_ ヤダヤダ! ⊂⌒( `Д´) < AndroidでCollada読めなきゃヤダ! `ヽ_つ__つ ジタバタ _, ,_ (`Д´ ∩ < 自分でLoader書くなんてヤダヤダ ⊂ ( ヽ∩ つ ジタバタ 〃〃 〃〃∩ _, ,_ ⊂⌒( つД´) < Colladaバージョン変わったら `ヽ_ ノ ⊂ノ 書き直…

Pythonを使って高速素数判定をしてみる

みなさん、素数を数えてますか? 『素数』は1と自分の数でしか割ることのできない孤独な数字。 暗号化できたり、乱数を作れたり、心を落ち着いたりして、私達に勇気を与えてくれます。 素数といえば「エラトステネスのふるい」ですが、あれは大きい桁の素数…

"sep".join()は気持ち悪くないよ!

"sep".join(list) が気持ち悪い理由 そんなに Array.join がいいのか Pythonの','.join()がキモいと思ってた時代が僕にもありました Pythonの文字列連結(join)にまつわる議論 まとめと考察(2) "".join()が色んなところで話し合われているんですね。 眺めて…

小数点の切り上げ/四捨五入/階乗計算

時々使うんだけど、調べると検索になかなかヒットしなくてイラッとするものたち。 小数点の切り上げ import math math.ceil(0.1) #=>1.0 四捨五入 round(0.4) #=>0.0 round(0.5) #=>1.0 round(0.15,1) #=>約0.2 round(124,-1) #=>120 階乗計算 階乗はVersion…

Androidを始めることになりました

仕事の関係上、Androidを始めることになりました。実は携帯アプリは、昔やってました。 でも、携帯アプリの開発にはあまり良い思い出はありませんね。 「なんだこの仕様・・・」とイラつくんですよね、特にドコモさんにはいつもイラつかせて頂いておりました…

Inkscapeのプラグインでも作るか

そろそろ作っておくべきか・・・ でも、Inkscapeプラグインの日本語資料はほぼ壊滅。 あっても古いしな・・・とりえあず、inkex.pyあたりを読むしかないか・・・

主成分分析を使ってバウンティボックスを作る

以前にnumpyを使った主成分分析を公開しましたが、今回はそれを使ってバウンティボックスを作ってみます。 ある頂点集合に対して、適切なバウンティボックスを求めたいとしましょう。簡単に思いつく方法としては、基底軸X,Yごとに最大値&最小値を求め、それ…

Inkscape0.47の新機能

Inkscape0.47(NightBuild版)を触ってみた感じですが、結構良いです! ただ、正式版ではないのでまだ不安定かな・・・ざっと触った感触で、独断と偏見で主な新機能を挙げていきます。 充実したスナップ機能 0.47を起動すると、新しいツールバーが目につきま…

同じ色を一気に変更する方法

前からInkscapeを使っていて、不便に感じていたのが「色で選択」がないことでした(Illustratorにはある)。 色で選択は無いですが、同じ色を一気に変更する方法があったのでメモ。 「エフェクト」→「色の数」→「Replace color...」を選択すれば、色を一気に…

なぜPythonには"標準"で定数を定義できないのか?

結論から言うと、Pythonになぜ"標準"で定数がないのかは「わかりません」。 答えを求めていた人には申し訳ない。 Pythonには知っての通り、定数を定義できません。 (独自でconstクラスを実装すれば定数らしき事はできます) 定数の実装が難しいとは考えにく…

pyevolveによる遺伝的アルゴリズム(3)

pyevolveによる遺伝的アルゴリズム(1) pyevolveによる遺伝的アルゴリズム(2) 今回はGAで「巡回セールスマン問題」を解いてみます。 「matplotlib」のインタラクティブモードを使い、巡回経路がリアルタイムで変化するようにしました、経路がウネウネと最適化…