数学

ポリゴンと線分の当たり判定

先日のジムノ氏の注文により作成。何気に結構面白かったです(^^; 変数メチャ多くてちょい困ったけど。早速ですが考え方を。まずはポリゴンを含む平面と線分の当たり判定を考える。これは割りと簡単で、線分の両端がそれぞれ平面の反対側にいればよい。とい…

矩形と線分の当たり判定

キャラクターとレーザーの当たり判定をやろうと思ってぶち当たりました。キャラクターが矩形なのに対してレーザーは線分。直線なら話はかなり簡単だったんだけど残念ながら線分です。線分と直線の違いは説明するまでもないと思いますがこの程度ぐーぐる様の…

レイヤー合成

フォトショ等のDraw系ソフトでお馴染みのレイヤー。α値を用いることにより半透明が可能でいろいろと便利な代物。しかし実際の計算はどうやっているのか?簡単の為に普通の乗算合成だけに話を絞る。まずは2枚のレイヤーを考える。ある座標のピクセルに注目し…

動的当たり判定

そんな用語はありません。私が勝手に作りました。矩形同士の当たり判定というのはよく扱うわけで方法が載っているサイトはたくさん存在します。そんなに難しい話しではありませんが一応解説。 いきなり2次元で考えるとちょっと難しいので1次元で考えて見まし…

公式の覚え方

こんな公式を生協でカレー食っている最中にふと思い出した。(因果性はなし) こんなマイナーな公式は知らない人が殆どだろうしとても用途があるとは思えない上にちょっと計算すればすぐに出てくるような内容なので覚える価値等ないのだが、それでも試験にでる…

素因数分解

素因数分解は原則的にゴリ押ししかないということで桁が増えてくると事実上不可能になってくる。それを利用した暗号技術がRSAだ。詳しくは割愛するがもし暗号解読しようと思ったら512bitの数値を素因数分解することになる。 しかし512bit数値を素因数分解す…

人気投票

普通は気にいったのを上位いくつかを入れるのが普通だろう。または1位に何点をいれるとかして一票に重みをつけるとか。ただしこの方法画仕えるのは投票対象に対して投票者が十分に多い場合。もし投票者が少ない場合、1個や2個投票したところでバックノイズ程…

公式

自明として使ってもいいらしい。しかし、最近読んだ本は、 何の前触れもなしにこういう変形を普通にされて結構ビビリマシタ。

誤報

なんとなくテレビを見ていて思ったんだけど、0/0は0じゃないですよ。というか、そもそも定義できませんよ。収束方法によっては0になることもあるけれども極限なしでは未定義ですよ。

Numerical Recipes

数値演算プログラムの名著ですね。やや古い感じもしますけどプログラムで数値計算をやろうと思うなら一読する価値はあるでしょう。最近、自作の乱数クラスに分布関数を装備させようと思ってちょくちょく見ています。 一様乱数から分布関数通りの乱数を発生さ…

トーナメントの組み方

最萌えのトーナメント表を見て思ったのだがなんであんなに偏っているんだろう?いや、メンバーじゃなくてグラフそのものが。誰がどう見ても下半分の方が勝ち抜きが厳しいと思うんじゃないだろうか?決勝まで勝ち進んだ2人のうち、上半分からの勝ち抜きは全…

ぶった斬りトイレットペーパー

中心まで詰まったトイレットペーパーを斜めにぶった斬ると広げたときにどういう切り口になるか? まずは普通の円柱の場合を考えてみよう。この場合、切り口は波長が円柱の周の長さのサインカーブになる。トイレットペーパーの場合は最初半径0でだんだんと大…

複素解析

こういう計算は使ってないと結構忘れるもので・・・。留点定理は覚えていたものの留点の出し方とか忘れちゃってました。 で、こんな公式があるらしい。 これ知ってたらあと数時間得をしていたのにぃ・・・・。 で、t=t'を計算しようと頑張ってみたけど出てき…

階段関数θ(x)*1って、θ(0) = 1/2 だったのね。今日はじめて知りました。まあ、δ関数の不定積分と考えれば当然といえば当然なんだけどね。 *1:x0にて1と定義されている

え!?

なんとなく、高校の時の最初の数学の授業を思い出しました。その時、数学の先生は以下のような問題を出しました。 問題 紙の上に半径がRと2Rの同心円を描く。そこに適当な棒(つまりは直線)を投げる。そのとき、2Rの円内に重なる結果のうち、Rの円内に…

shuffleは置換である。

昨日の答え。shuffleは置換である。ので、逆置換を求めればよい。ただそれだけである。例えば、中身が「茶・赤・橙・黄・緑」というコンテナをシャッフルした結果、「赤・緑・黄・橙・茶」となったとする。この置換と逆置換は、 このようになる。置換自体は…

昔作った乱数発生クラスに、今は以下のようなメンバ関数が存在する。 //vectorや配列の範囲をあらわすイテレータやポインタを入れてください。 template< typename RanIter > void Shuffle( RanIter pFirst, RanIter pLast ){ int size = static_cast< int >…

収束する?

(ただし、c1とc2は任意の実数)さて、この式は収束するでしょうか?収束するとしたらその数はいくつでしょうか?これ、数学的に厳密に解くには激烈に難しい(はず)だが、物理屋さんは当たり前のように「0」として扱ったりします。(但し、c2!=c1かつc1=2π(の整…

2次元座標上に点が散乱している。ある点から、すぐ「上」にある点を一つ見つけるにはどうすればよいか?例えば(0,0)(1,5)(7,2)(-4,6)(-1,12)の場合、(0,0)からすぐ上にある点は多分だれが選んでも(1,5)になるであろう。また、(-1,12)の場合、すぐ上の点は存…