[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 19:19 / Filesize : 83 KB / Number-of Response : 367
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングの為の数学と算数 vol.3



1 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 06:30:23 ]
プログラムに必要な数学、算数に関する話題について語りましょう。
TIPS/Q&Aスレです。
宿題は自分で解き終わってから持ってきましょう。

前:プログラミングの為の数学と算数 vol.2
pc11.2ch.net/test/read.cgi/tech/1094368921/

2 名前:デフォルトの名無しさん [2007/12/08(土) 06:31:51 ]
それと社会と美術も頼む

3 名前:デフォルトの名無しさん [2007/12/08(土) 07:45:13 ]
>>1 おつかれ〜

過去ログ
プログラミングの為の数学と算数
pc.2ch.net/tech/kako/997/997150743.html

関連過去ログ

フーリエ変換について教えてください
piza2.2ch.net/tech/kako/996/996929748.html

交差判定アルゴリズム
piza2.2ch.net/tech/kako/996/996157997.html

最速の素数判定アルゴリズム
pc.2ch.net/tech/kako/993/993457354.html


4 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 01:25:49 ]
3次元ベクトルの外積についての質問なんですが、
a×bの外積は

a×b = (a.y * b.z - a.z * b.y a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x)

で求められると思うのですが、始めに教えてもらったときに

dot = DotProduct(a, b)とするとき、
a×b = (a.x - dot * b.x, a.y - dot * b.y, a.z - dot * b.z)

と教えてもらったのですが、これでも外積を求められるのでしょうか?

5 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 01:49:03 ]
a×b = a + (a・b) b

を主張してると思うけど、
この式の左辺は a と b の外積だから
当然 a と b の張る平面内にない

いっぽう右辺は a と b の一次結合

何かのまちがいかと

6 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 01:50:34 ]
>4
試算すりゃ一発でわかんだろ?

7 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 02:03:08 ]
>>5
やっぱり違いますよね。「これでもいける」と力説されてちょっと不安だったので安心しました。

>>6
一応計算はしてみたのですが、最近ベクトルについて勉強し始めたばかりで、
どっちがあっているかわからなかったもので…
もっと勉強しなきゃ orz



ありがとうございました。

8 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 12:38:54 ]
>>7
力説した奴は誰?

9 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:55:24 ]
3次元空間において各離散点(x,y,z)がスカラーを持つとき、ある任意平面で切った断面図を計算する
一般的な方法はあるんでしょうか?どんな探索・補間をすればいいのかいまいち分かりません。

10 名前:デフォルトの名無しさん [2007/12/12(水) 23:08:40 ]
なんつうか、思ったんだが、スレタイとしては、「数学のためのプログラミング」ってのが
いいんじゃない??



11 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:30:01 ]
>>10
それはそれで面白いと思うけど、でも別のスレだな

12 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:31:49 ]
>>9
任意平面への投影図ではなくて?
点たちはばらばらに存在しているの?
断面にはまれにしか点が乗らなくね?

13 名前:9 mailto:sage [2007/12/13(木) 13:15:58 ]
>>12
対象は、4面体や6面体が混ざった有限要素で、離散点は綺麗な格子状ではなくバラバラです。
↓のような感じで断面図を出したいのですが、どうやるのが一般的なんでしょうか?
ttp://infoshako.sk.tsukuba.ac.jp/ShakoDoc/MATLAB5/jhelp/techdoc/ref/slice.html

おそらく私が知らないだけで、すごいコモンな手法が既にあると思うのですが・・・

14 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:08:26 ]
>>13
Matlab は使ったことないんだけど、それは、連続なスカラー場の断面図?

離散点で値を持ってるなら、補間とかしないと無理かな。
4面体だと、バイリニア補間とかバイキュービック補間でいいと思うけど。
6面体だとどうしたもんだろう。ニアレストネイバーでいけそうな気もするか。

15 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:42:39 ]
>>13
そこにある例題のように、空間内のスカラー値関数 v = f(x, y, z) に対して
特定の断面に沿った v の値の分布が見たいということ?

そしてその関数 f は具体的な式などでは与えられていなくて、サンプルとして
いくつかの点における値だけがわかっているということか

補間する前に、空間全体に回転行列をかまして、断面が xy 平面になる
ようにすると処理が楽になったり?

16 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:38:06 ]
>>15
空間の方を回転するのは無駄だと思う。
補完って、逆から座標変換するような感じでするのが普通。

表示される xy 平面のこの点は元の空間ではこの点にあるはずだから・・・
というように。

17 名前:9 mailto:sage [2007/12/13(木) 22:47:15 ]
>>14,15
>Matlab は使ったことないんだけど、それは、連続なスカラー場の断面図?
そうだと思います。私も使ったことはなくて、ググってたら見つけたページです・・

すいません言い忘れましたが、求めたいのは断面図だけでなく、
断面積で重み付けした値の和(つまり全断面の積分値)もでした。

要素内のある1点の値を補間で求めるのは教科書などにあり、4面体内の点(x,y,z)の場合
x=x1+ξ(x2-x1)+η(x3-x1)+ζ(x4-x1),y=・・・,z=・・・から要素内座標ξ,η,ζを求めて
p=p1+ξ(p2-p1)+η(p3-p1)+ζ(p4-p1)で補間値pが求まります。ですが、
その点の位置(x,y,z)をそもそもどうやって決めるんでしょうか?
もしかして要素との断面の重心?

18 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:55:57 ]
例えばよ、基底ベクトル a と b で張られる平面
P = x a + y b
上の断面図を求めたければ、
P 上の点 (1, 1) に相当する三次元空間上の点は a + b だから、
この点の値を求めればいい。

この点に一番近い格子点4点を探して、
その4点に対してその補完式を使う。

19 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:58:22 ]
あっ、言葉足らずかも。

> P 上の点 (1, 1) に相当する三次元空間上の点は a + b だから
この作業を (x, y) に関して繰り返すのね。
一定範囲決めておいて。

積分したいんなら、↑の (x, y) の探索を十分広い範囲でやって、
求めたい有限要素の外にある場合は値を 0 にでもしておいて、
総和を求めればいいんじゃないかと。
あくまで、離散近似になるけど。

20 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:28:32 ]
ちょっと気になって前スレ950の
> |(PA×PB)・PC| / |AC・BC|
を試してみたんだけど、
a(0,0,0) b(1,0,0) c(0,1,0) p(1,1,0)
で計算したら距離0になったんだけど、俺の計算が間違ってる?



21 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:44:32 ]
>>20
その式、分母が間違ってるね。
四面体の体積 ÷ 底面積 = 四面体の高さ = 点から面への距離
と計算したいんだと思うんだけど、
その式だと分母が底面積にならない。

底面積は 1/2 |AC| |BC| cos∠ACB だ。
AC = (a, b), BC = (c, d) とすると、(ad - bc) / 2

あと、分子も、それだと四面体じゃなくて
PA, PB, PC を辺とする並行6面体の体積になるから、
1/6 掛けないとだめかも。

22 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:48:16 ]
っていうか、平面までの距離って、
(CA × CB)・CP / |CA| |CB| な気がする。

(CA × CB) / |CA| |CB| が平面の単位法線。
CP に単位法線掛けると、平面から P までの距離。

23 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 04:01:00 ]
>>21-22
ああ、そういうことか。
どのみち、体積から求めてるなら三角形からの距離ではないし、
僊BC平面上に点Pがあるときは求まらないか。
世の中には都合のいい公式があるもんだなぁ、とちょっと感心したんだけどそんな甘くはないかw

24 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 12:08:11 ]
ごめん、21 にも 22 にもちょっとずつミスが。
22 の分母は |CA×CB|。

25 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 12:09:25 ]
Pが平面状にあるときはちゃんと0になるはず。

26 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 12:30:54 ]
>25
pc11.2ch.net/test/read.cgi/tech/1094368921/948-950

27 名前:26 mailto:sage [2007/12/14(金) 12:37:41 ]
あ、すまそ、ポリゴンへの距離と勘違いした・・・

28 名前:デフォルトの名無しさん [2007/12/20(木) 05:03:48 ]
      ttp://blog.livedoor.jp/dankogai/archives/50962361.html
の冒頭のグラフにあるような、実験結果のプロットからy=j+kxのj,kや、y=j+kln(x)のj,kを
求めるのって、どういうアルゴリズムでやるのでしょうか?最小二乗法でしょうか?

おねがいします。

29 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 14:26:09 ]
>>28
単にグラフ化したいなら普通に補間。

その式で言う j や k などの定数を求めたいなら最小二乗法。
ただ、もちろん、その式が j + k x の形になるとか j + k ln(x) の形になる
って当たりがついてるのが前提。

当たりつけるのは、グラフの形眺めて見て主観で決めるか、
いくつかのパターン試して二乗誤差が一番小さい奴を選ぶ。

30 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 21:02:55 ]
>>29
ありがとうございます。

「補間」というのは、単にプロットした点を直線で結ぶということでしょうか?




31 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 21:15:39 ]
線形補完ならそうだし、
非線形の補完も、2次補完とか、3次とか色々ある。

32 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 22:30:43 ]
まあ、>>28 みたいなのは補間ではないけどね。
フィッティングって言うかな。

33 名前:デフォルトの名無しさん [2008/01/10(木) 09:22:17 ]
ある程度実践的な例で、動的計画法を勉強してみたいんですが、よい例題が載ってる
簡単な入門書やサイトってありませんか?

34 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 09:51:26 ]
>>33
実践的で簡単つーのはなかなか難しそうだが、
TopCoderやPKU JudgeOnlineの問題を解いてみてはどうだろう?
動的計画法を扱う問題を見つけるのが少し面倒だが、
TopCoderのSRMなら、Problem Set & Analysisにアルゴリズム名が載ってるから探しやすい。
(最新のはwww.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm386

35 名前:デフォルトの名無しさん [2008/01/14(月) 21:50:08 ]
(A&&B)||(C&&D)は
(A||C)&&(A||D)&&(B||C)&&(B&&D)に
変形できると聞いたのですが、やりかたがよくわかりません。公式などあったら教えてください。

36 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:59:01 ]
最後は B||D だよね?

単なる分配法則だが、
ややこしくなるだけなのでやる必要性はない。

37 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:59:01 ]
分配法則
(a && b) || c = (a || c) && (b || c)

38 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:00:23 ]
>>36
ごめんなさい。最後は||です。
>>36-37
ありがとうございました。


39 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:02:52 ]
(A||(C&&D))&&(B||(C&&D))
=
((A||C)&&(A||D))&&((B||C)&&(B||D))
=
(A||C)&&(A||D)&&(B||C)&&(B||D)


40 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:50:56 ]
C系言語だと、||と&&は、
副作用によって結果が変わるかもしれないので注意すべし。



41 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:04:35 ]
適当なスレが無かったんで、ここでオナガイシマス
Excelでグラフを作成すると、Y軸の補助目盛りが上手い具合に、自動的に
振り分けられるますよね、そのアルゴリズムってどうなってるんだろう?
今、VCでグラフを描画するソフトを書いてるんだけど、そこでちょっと
悩んでるところです、Excelにこだわらず、補助目盛りの振り方の、いいアイデアを
知っていたら教えてホスイ
条件として
負数の値はありません
最大値、最小値は同じ桁の場合もあれば、そうでない場合もあります
グラフのY軸の描画エリアは、グラフの下限値は0ではなく
要素の中の最小値(付近の値)として、最大値は要素の最大値(付近)の値です
この様な条件で、理想的な数式を教えてください

42 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:12:54 ]
なんかそれは理論があったはず
階級幅の適切な取り方とか

43 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:31:35 ]
>>42thxです
階級幅 適切 グラフ
でググッたら
地理学調査研究法(第3年度)2004年度
www2.ipcku.kansai-u.ac.jp/~moto/KyozaiContents/43.htm
ここに、ヒストグラムの書き方で(目的は折れ線グラフだけど数式は同じなんでしょうね・・・多分?)
階級数=1+log(n)/log2 階級幅=(最大値 - 最小値)/階級数で得ることができる。
こういうのがありましたが、これのことでしょうか?


44 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:38:07 ]
あーうん多分俺が見たのもそんな感じだったと思う

45 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:43:43 ]
>>44
比較的簡単そうなので、実装できそうです
ありがとう

46 名前:デフォルトの名無しさん [2008/01/15(火) 01:27:46 ]
大きさNの配列をヒープ構造に変換する処理の計算時間がオーダーNというのがよくわかりません。
難しい数式なしで、なるべく直観的な説明をしているサイトや本は無いでしょうか?

変換処理はインプレイスでなくてもかまいません。よろしくおねがいします。

47 名前:デフォルトの名無しさん [2008/01/15(火) 01:41:44 ]
zoomtv.web.fc2.com/?1xecu@StageOnAirMiku


48 名前:デフォルトの名無しさん [2008/01/18(金) 01:04:37 ]
最小二乗法の直線Aでうまく近似できる、n個の点の集合n'があるとします。
最小二乗法の直線Bでうまく近似できる、m個の点の集合m'があるとします。
もしn'とm'が混ざってしまっているとき、直線Aと直線Bを求める方法としては
どのようなものがあるのでしょうか。
また、直線ではなく多項式近似などの場合もできればヒントなどをお願いします。

具体的には、×や§みたいな形に点の分布している場合を想像して
悩みまくり・・・どうすればー。

49 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 02:42:00 ]
最初てきとうに二つのグループに分けておいて回帰直線求める
1個の点を選んで他のグループに移した方が適合度上がるなら移す
それをずっとやる

50 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 03:41:02 ]
>>48
それ基本的に不可能だよ
クラスタリングすれば綺麗にわかれるとか特殊な場合に求められる



51 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 04:14:27 ]
>>49-50
ありがとうございます。やってみます。

52 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 05:09:30 ]
3組以上の可能性は考えなくて良いのだろうか?


53 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 08:38:43 ]
点と近傍点k個を繋いだ線分の傾きと切片を新たなxyとして係数空間にマッピングして
山をみるとかかな。ハフ変換の亜種になるのだろうか。

54 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 09:29:22 ]
2本の直線を表現する式があれば、それに対して最小2乗法を適用すればいけるんじゃないかな?

a*|x+d|+b*y+c=0
とかさ。

55 名前:デフォルトの名無しさん [2008/01/18(金) 10:42:44 ]
何本混じっているか不明だし不可能だろう
2点ずつ1000本とかもできる

56 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 11:55:17 ]
まあ課題は2本の直線だから
媒介変数表示で 0〜∞が直線A 負数が直線Bになるような表現が出来れば
いけそうに思えてきた

57 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 12:54:01 ]
>>53が筋が良さげに見えるな

58 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:14:11 ]
(ax + by)^2 = (cx + dy)^2
みたいな式が、交差する2直線になるんで、
これをベースに最小二乗法つか使ってみたら?

59 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:15:37 ]
ああ、2直線の交点が原点でない場合、
(ax + by)^2 = (cx + dy + e)^2 とかね。

60 名前:デフォルトの名無しさん [2008/01/18(金) 18:17:50 ]
一般の2次式を取り扱ったほうが簡明



61 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:28:38 ]
>>59
その式から誤差はどう計算するの?

62 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:31:50 ]
>>60
課題らしいから、2直線以外の結果が得られるのはまずいのでは?

>>61
a, b, c, ... 等で微分。

最小二乗法は、式さえ分かってれば直線に限らずどんな関数でもフィッティングできる。

63 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:33:57 ]
ああ、そうか x1,y1 って点があったら、その式のxに x1を代入して
yを求めて、複数の答えが出るから、それぞれ (y-y1)^2 出して小さい方を採用すればいいのか

でも、小さい方を採用するって事は非線形だから、解を出すのに
普通の直線みたいに楽に出せないな。

64 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:44:24 ]
うーん、そうか・・・
任意の関数をフィッティングできるっていっても、
陽関数形(y = f(x) みたいな形)になってないと、単純な方法では出来ないのか。

でも、
f(x, y) = (ax + by)^2 - (cx + dy + e)^2
として、求めたい直線が f(x, y) = 0 だから、

Σ_{i = 1}^N f(x_i, y_i)^2
を最小化するものとして、
これをパラメータ a, b, c, ... で微分したのが 0 って条件で式立たない?

65 名前:デフォルトの名無しさん [2008/01/18(金) 18:46:48 ]
yについて解いたおけばいいだろ

66 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:48:55 ]
あと、この式だと、パラメータ a 〜 e のうち、1つは冗長かな。
f(x, y) = 0 が必要な条件式なんで、全体を a^2 で割って、

f(x, y) = (x + b'y)^2 - (c'x + d'y + e')^2

としていいはずなんで。

67 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:50:03 ]
>>65
それは無理。
y = ±(ax + b)
みたいな式が出てくるはず。
“2直線”みたいな変な関数を、
1価の陽関数ではあらわせない。

68 名前:デフォルトの名無しさん [2008/01/18(金) 18:52:01 ]
yについて解けば2解出る それぞれについて調べる

69 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:05:36 ]
>>68
それだと最小二乗法的な結果得られないって。

70 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:22:53 ]
>>68 それについて調べるといっても、サンプル点1点毎に、
どっちが小さいかって関数が必要になるから、結局は数式で解けなくて
数値解として、微分して0の箇所を探す事になる。

つまり、2直線の方程式のまま、誤差の小さい方を選択するのと全く同じ事。
でも、微分ゼロ点は複数あるのが確実だから、ランダムにシャッフルしては前回より小さくなってないか
調べる事になるわけで、コレがホントに最小かどうかってのは難しいだろな。



71 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:24:37 ]
2式を f(x) g(x) としたときに、距離関数 d(y) を y = f(x) および g(x) において極小値を持つような
4次関数として定義できれば、可能なのかな。

自分には数学的に解く自信がないけど。

72 名前:71 mailto:sage [2008/01/18(金) 19:56:38 ]
h(x) = (f(x) + g(x))/2 として、

d_n = ∫[0, y_n] (y-f(x_n))(y-g(x_n))(y-h(x_n)) dy
D = Σ d_n
として、Dを最小化する f(x) g(x) を求めればいい気がする。

ただ、最終的に出てくる連立方程式はかなり複雑になりそう。
h(x) の定義も妥当かちょっと迷う。

73 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:44:31 ]
>>71
そんな凝るなら、>>64でよくね?

74 名前:71 mailto:sage [2008/01/18(金) 22:48:33 ]
>>73
自分には>>64の式が理解できない。
というか、バグってる気がしてならない。

75 名前:デフォルトの名無しさん [2008/01/20(日) 02:19:44 ]
Longest Increasing Subsequence問題をDPで解くってのがさっぱりわかんない。
だれか解説して。

76 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 12:13:00 ]
diff も Longest Increasing Subsequence問題というやつなのかな。

以前、予備知識もなしに diff もどきを作ったことがあるけど、最終的にはパート図で
クリティカルパスを求めるアルゴリズムになって、ちょっと意外な感じがした。もっと効率的な
アルゴリズムも在るんだろうけど。

77 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:00:24 ]
diffをdpを利用して取る論文って調べりゃいくつか出てきそうな希ガス・キセノン・クリプトン

78 名前:デフォルトの名無しさん [2008/01/20(日) 21:49:11 ]
N+N/2+N/4+N/8+...+1回の比較処理を行うときの計算時間はO(N)だと聞いたのですが、
kNの係数kはどれくらいの大きさになるのでしょうか?どうやって計算したらいいか教えてください。

79 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:01:19 ]
N が 2 の累乗のときは
 (1)   S = N + N/2 + N/4 + N/8 + ... + 4 + 2 + 1
とおくと
 (2)   2S = 2N + N + N/2 + N/4 + N/8 + ... + 4 + 2
となる
(2)から(1)をひいて
.       2S - S = 2N - 1
つまり S = 2N となる

80 名前:デフォルトの名無しさん [2008/01/20(日) 22:03:08 ]
>>79
どうやったらそんな発想が・・・。limとか使うのかと思いました。
どうもありがとうございます。

。。。Nが2の累乗じゃないときはどうしたらいいでしょうか



81 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:03:39 ]
>>78
何が知りたいかわからんが、
1+1/2+1/4/+...=、についてなら、
四角形の半分を塗りつぶして、残りの半分を塗りつぶして、残りの…と続ければわかるよね?

82 名前:81 mailto:sage [2008/01/20(日) 22:04:19 ]
うあ、遅かった。ちゃんとリロードしないとな。

83 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:07:32 ]
> 四角形の半分を塗りつぶして、残りの半分を塗りつぶして、残りの…と続ければわかるよね?
わからん

84 名前:81 mailto:sage [2008/01/20(日) 22:27:18 ]
>>83
わかりづらかったかな。
半分ずつってのが、1/2, 1/4, 1/8,..に対応していて、
半分ずつ塗りつぶしていく→最終的に全部塗りつぶされる≒1
ということなんだけど、説明下手でごめんなさい。

85 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:29:33 ]
>84
SUGEEE

86 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:20:34 ]
>>84
計算時間と面積は関係無いだろ?

87 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:05:46 ]
>>84==81
それだといつまでも塗りつぶしが終わらないのでは

88 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:07:24 ]
2Nの話をしてるんじゃないのか?

89 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:25:10 ]
離散の世界だから有限で終わる

90 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:54:48 ]
>>80
79じゃないけど、そういうのは高校数学の「数列の和」とか
そのあたりでやる気がする。



91 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:10:44 ]
>>90
kwskお願いします

92 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:48:27 ]
1から100までの数を全部足すと
S = 1 + 2 + .... + 99 + 100
S = 100 + 99 + ... + 2 + 1

2S = 101 + 101 + ... + 101 + 101

2S = 101 x 100 = 10100

S = 5050

では1から101までの数を全部足すといくつですか?


93 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:48:55 ]
5050 + 101 = 5151

94 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:12:48 ]
>>91
等比級数の総和とかやらんかった?
1 + r + r^2 + r^3 + ... + r^n を求めるとか。
こんなやつ。

M = 1 + r + r^2 + r^3 + ... + r^n
rM =    r + r^2 + r^3 + ... + r^n + r^(n+1)

rM-M = r^(n+1) - 1
∴ M = {r^(n+1) -1} / (r-1)

r=1/2なら解き方も全部そのままなんだけどさ。
まだ習ってないっていうなら、そのうち習う。
文系だとやらんかもしれんけど、そんときは数学の先生に聞いてみるといい。

95 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:14:50 ]
-100 x -99 x .... x 99 x 100
を求めなさい


96 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:16:28 ]
>>86
N + N/2 + N/4 + N/8 + ... = N (1 + 1/2 + 1/4 + 1/8 + ...) → 2N

97 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:16:50 ]
>>95
0

98 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:42:32 ]
1/2! - 1/3! + 1/4! - 1/5! ....

99 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:44:00 ]
>>98
わからん。計算方法まとめてあるページ教えて。

100 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 04:20:46 ]
連分数?



101 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 07:32:51 ]
テイラー展開だろ

102 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 07:37:57 ]
e^x = 1 + x + x^2/2! + x^3/3! + x^4/4! + x^5/5! + ...
∴ e^-1 = 1 - 1 + 1/2! - 1/3! + 1/4! - 1/5! + ... = 1/2! - 1/3! + 1/4! - 1/5! ....

103 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 08:16:06 ]
べき乗に「^」使う人良く見かけるけど
何でなんだろうね
CだとXORの記号なのに
漏れはx**yの方が好み


104 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 08:19:32 ]
google 電卓も ^ がべきだし Excelがそうなってるからだね

105 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:33:01 ]
数学板とかでは TeX 書式準拠だしね、数式。
^ はベキ。

106 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:25:51 ]
ASCIIの '^' は、上向き矢印(↑)だったことがあるから

107 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:27:40 ]
あと、BASICでも^をべき乗に使っているものがある。
**はFORTRAN由来。

108 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:30:53 ]
POWER(x,y)が好み

109 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 14:40:55 ]
>ASCIIの '^' は、上向き矢印(↑)だったことがあるから
ASR33 (TTY) だったっけ?
言語としては APL かな?

110 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 17:39:28 ]
ていうか「**」のほうが少数派だよな



111 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 18:39:35 ]
FORTRAN やら Ruby やら gnuplot やらは ** だな。
俺は TeX 的に ^ を使う派だが。

112 名前:デフォルトの名無しさん [2008/01/21(月) 20:43:47 ]
log(n!)の近似値っていくつでしたっけ?

113 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:08:27 ]
スターリングの公式

114 名前:48 mailto:sage [2008/01/24(木) 02:25:40 ]
以前、2本の回帰直線が交差するようなデータを近似しようとして
質問した者です。

当初やろうとしていたサンプルが少ない場合ですと、>>49の方法が
思っていたより高速でした。時間さえあれば3直線や4直線でも
近似できそうです。ただ、高速化のテクニックが不足しているせいか
サンプル数が増えていくと辛くなってきました。

で、つい先ほどハフ変換の仮実装が完了しました。
資料見ながら6時間もかかりましたが、とりあえず誤差無しの画像データに
うまくフィットする形で直線を表示するところまできました。

画像みたいに点だらけだと楽なのですが、サンプル少ない&誤差が
あるときのデータの誤魔化し方などは考え中です…

ハフ変換は、おそらく統計学での回帰分析や主成分分析、
クラスタリング処理等と何かしら対応関係があるような気がします。
統計学はまだ学習中ですが、なんとか理解していきたいです。

115 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:42:54 ]
おお
時期的にもしかして卒論?
がんばれ

116 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 12:03:52 ]
>>114
ちなみに、↓こんなのが。
ttp://d.hatena.ne.jp/ufcpp/20080120/1200806676

ハフ変換って↓これよね。
ttp://mikilab.doshisha.ac.jp/dia/research/person/shuto/research/0626/tyokusen.html
(ρ, θ) 平面上の曲線の交点をクラスタリングすればそれっぽい結果が得られそうな気がする。

117 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 23:15:09 ]
すげえ
やっぱ技術のある人はすごいな

>>116の上のこのソースって言語何?

118 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 23:20:48 ]
C#だろ

119 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 23:44:26 ]
あーそうなのか
拡張子知らなかったわ
d

120 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 09:29:40 ]
誤差を最小にするんじゃなくて、一致度を最大にするような定義にしたらどうなのかな
Σexp(-(x-Xn)^2) が最大になるというような定義





121 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:03:21 ]
>>116が顔文字だと思った人の数

122 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:59:39 ]
>>120 が顔文字に見える

123 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 15:14:31 ]
会社に、プログラミングをさせてくださいとオナガイしたら、基本情報の資格を取ったらね
と言われて、只今勉強中で、自分で問題を作りマスタ、が
Windowsの計算機では小数を表す16進数が表示できないため、答えが合ってるか、どうか分かりません、答えが合ってるかどうか、教えてください、宜しくオナガイシマス算数の得意なエロイヒト

【自分で作った問題です】
7E.3Aを10進数の分数で表したらどうよ

【式と答え】
2進化16進
0111 1010.0011 1010
整数部と小数部に分ける
= ( 2^7 + 2^6 + 2^5 + 2^4 + 2^1 ) + ( 1/8×1 + 1/16×1 + 1/32×1 + 1/128×1 )
128で約分する
= ( 126 × 128 ) + ( 16 + 8 + 4 + 1 ) / 128
= ( 126 × 128 + 29 ) / 128
= 16157 / 128
この解答でどうよ?

124 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:01:22 ]
>>!23
答えは正しいです。
電卓で0x7E3Aを10進数に変換すれば検算できます。
手計算なら16、256、4096という数を暗記しておいて
16進数から直接10進数に変換するほうが速いです。

7E.3A
= 0x7E3A / 0x100
= (7 * 4096 + 14 * 256 + 3 * 16 + 10) / 256
= 32314 / 256
= 16157 / 128 (約分する場合)

125 名前:123 mailto:sage [2008/01/26(土) 16:30:29 ]
>>124thxです
凄い!プチ神が、降臨シマスタ
カミングアウトしますが、実は計算がとても苦手なんです
実際試験中に、計算方法(式)が分かっても
途中で計算を間違える人なので物凄くありがたいのですが、一つ質問させてください
7E.3A
= 0x7E3A / 0x100
整数化するために、0x100を乗してますが、どんな場合でも0x100を乗したらいいのでしょうか?
例えば、D7E.3Aの場合
D7E.3A
= D7E3A / 0x100
でいいのでしょうか?

126 名前:123 mailto:sage [2008/01/26(土) 16:39:00 ]
スマン、訂正です
>>×整数化するために、0x100を乗してますが、どんな場合でも0x100を乗したらいいのでしょうか?
○整数化するために、0x100を除してますが、どんな場合でも0x100を除したらいいのでしょうか?

127 名前:123 mailto:sage [2008/01/26(土) 16:40:44 ]
スレ汚しごめんなさい、頭のいい人がいるので、興奮して、あわててます
○整数化するために、0x100で除してますが、どんな場合でも0x100で除したらいいのでしょうか?


128 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:54:46 ]
小数点以下が16進数2桁のときに0x100を使います。
D7E3.A = D7E3A / 0x10
D7E.3A = D7E3.A / 0x10 = D7E3A / 0x100
D7.E3A = D7E.3A / 0x10 = D7E3.A / 0x100 = D7E3A / 0x1000

129 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:57:17 ]
別に、>124が特段頭がいいわけじゃないから落ち着けよ。あんたが間抜けなだけなんだから。
何も16進数を持ち出すまでもなく、10進数でも筆算のときに同じことをしているんだぞ。
例えば、123.45に6を掛けるときにどうするか考えてみろ。
一旦小数点のことは忘れて12345*6を計算し、その結果に123.45同様右から二桁のところに小数点を書くわけだ。

130 名前:123 mailto:sage [2008/01/26(土) 17:06:10 ]
>>128
>>129
ありがd、とてもよくわかりました
ここは凄い板ですね、感動シマスタ
色んな参考書や、サイト見てるけど、124氏のような解説は無かった



131 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:13:50 ]
16進数の小数があってるかどうか分からないって?
適当な数だけ下駄を履かせりゃいいだろ。

132 名前:デフォルトの名無しさん [2008/01/26(土) 21:45:15 ]
ラムダ計算の勉強をしたいのですが、いちばんやさしい入門書を紹介してもらえませんか?

133 名前:デフォルトの名無しさん [2008/01/27(日) 01:05:27 ]
計算幾何学勉強しようとしてんだけど
普通の幾何学からやらんとダメか?

134 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:36:05 ]
計算機科学じゃなくて計算幾何学のほうだとすれば
ある程度は幾何学わかってないと自分が何やってるかすら
把握できないんじゃないかと思うけど

135 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 06:20:34 ]
>123,>132,>133
お前等にはプログラミングとか向いてないよ。
馬鹿すぎる。
諦めろ。

136 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 10:47:04 ]
中学生かも知れないじゃないか

137 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:04:49 ]
>>136
中学生が会社に「プログラミングをさせてください」ってお願いするのか?

138 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:23:00 ]
>>135
現代の現場でのプログラミングの主流はライブラリ検索型。

つまり、全てのライブラリが用意されていて、そのライブラリの使い方を調べて組み立てるだけ。
だからこういう質問が出る方が適性があるとも言える。


139 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 12:47:02 ]
>>123 >>132 >>133 >>138
死ね


140 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 16:46:57 ]
>>132
いちばんやさしいかは知らんが
www.amazon.co.jp/dp/4839920818/



141 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:47:29 ]
馬鹿下駄問題かもしれませんが、教えてくださいエロイヒト
逆ポーランド表記法の問題です、式と答えが、あってるかどうか教えてください
【問題】
Y = ( A + B × C ) ÷ ( D - E )
上記の式を、逆ポーランド表記法で表しなさい
【式】
括弧の中から先に
Y = ( ABC×+ ) ÷ ( DE- )
括弧と括弧の割り算
Y = ABC×+DE-÷
最期に=の計算
YABC×+DE-÷=
【答え】
YABC×+DE-÷=
これで合ってますでしょうか?

142 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:01:06 ]
いつも思うんだが
ポーランド表記法に改めて
「逆」を付ける理由が分からん


143 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:18:37 ]
記法が逆になってるじゃん。

144 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:21:27 ]
ポーランド表記法は + 1 2 だから。

----

で、問題のほうだが、

Y= の部分が問題に含まれているのが激しく微妙すぐる。

RPNへの書き換え自体は問題ないが、そのRPNの式に従ってスタック計算機で
計算した場合、計算の最後は

------------ スタックトップ
( A + B × C ) ÷ ( D - E )
------------
Y に元々入っていた値
----------------------------------------- スタックボトム

という状態のスタックに "=" という演算子による演算を適用する、ということになる。
問題の式における Y とか = の意味がそういうものだというのなら問題ないのだが。

145 名前:141 mailto:sage [2008/01/28(月) 21:50:14 ]
thx>>ALL
 後置表記法(逆ポーランド表記法)では、例えば、式 X=(A−B)×C を
 XAB−C×=と表現する。

  次の式を後置表記法で表現したものはどれか。
  X=(A+B)×(C−D÷E)

 ア XAB+CDE÷−×=

 イ XAB+C−DE÷×=

 ウ XAB+EDC÷−×=

 エ XBA+CD−E÷×

答え ア

この問題と解答を手掛かりに、練習問題を自分で考え、質問させてもらいましたので
果たして、自分の考え方(式)や答えが正しいのかさっぱり分かりません、
もし、このような問題だった場合、先の解答、考え方は、正しいのでしょうか?


146 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 22:24:47 ]
スタックに入る時点では変数として入って
それを読み出すときに文脈によって右辺値または左辺値として
評価されるという言語かもしれないじゃないか

それにそもそも=は比較演算子かもね

147 名前:141 mailto:sage [2008/01/28(月) 22:37:37 ]
>>146
どうもです

148 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:31:53 ]
中置記法の式をツリーにして、そのツリーを反時計回り(左優先)、深さ優先で
post-orderトラバースすればRPNに変換できるよ。post-orderというのは、その
ノードを抜ける(親ノードの処理に移る)ときにノードの値の表示を行うという
こと。

149 名前:デフォルトの名無しさん [2008/01/29(火) 14:46:33 ]
教えて欲しい問題があります!

データベースに登録した同じ次元のベクトルをコサイン尺度によって類似度を求めたいのですが,
コサイン尺度のプログラムが書けなくて困ってます!

以下がコサイン尺度の数式です.

cos(dj,q)
=(Σ_[i=1, m] dij*qi)/(√(Σ_[i=1, m] dij^2)^(1/2)) * (√(Σ_[i=1, m] qi^2)^(1/2))

※q=検索質問ベクトル,dj=各文書ベクトル
となっています.

また,dj*q はベクトル間の内積を表していて,
dj*q = Σ_[i=1, m] dij*qi
となってます.

少し複雑な計算式ですが,とりあえず書いてみました.

Railsのスレで質問したのですがこのスレの方が良いと言われたので書き込みました.
どなたかRubyになおしてもらえるならお願いします(×_×)

150 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:34:17 ]
>>149
まず、include Mathする。

でもって、コサインは
cos(t) # Math.cos(t)

平方根は
sqrt(x) # Math.sqrt(x)

一次元ベクトルaの成分和は、
a.inject {|x, y| x + y }

a,bの内積はa.size == b.sizeだとして
a.zip(b).map {|x, y| x * y}.inject { |x, y| x + y }
かな。




151 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:10:11 ]
>>149
cos(dj,q) = dj・q / |dj||q|
これが計算したいと予想。名前にコサインって入ってるし。

inner(x,y)=xとyの内積、norm(x)=|x|=sqrt( inner(x,x) )とすると
cos(dj,q) = inner(x,y) / { norm(dj) * norm(q) }


152 名前:デフォルトの名無しさん [2008/02/11(月) 12:05:23 ]
f(t) = b1*t + b2*t^2 + b3*t^3 + b4*t^4...
tは0〜1の範囲としてf(0)=0 かつ f(1)=1 で この間 増加続ける係数群が欲しいのです
つまり b1=1-(b2+b3+b4...) です。

・ 2次の場合, f(t)=(1-b2)*t + b2*t^2 でb2の範囲は-1〜1
・ 3次の場合も、微分して0,1になる値を求めて場合分けして解けました。

4次以上になると微分結果も3次式になって簡単に解けません。

数学板で聞いたのですが、
>一般には難しい
>というよりきれいな結果が出ないタイプの問題にみえる

という事でした。 
でも、こういった問題は既に解かれていると思うのです。
たとえばZ変換/ラプラス変換や周波数特性が凸凹でないという条件と同じですから
ヒント等ございませんでしょうか?

153 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:15:20 ]
数学板でそういわれたんなら、そうなんだと思うけど。

とりあえず、周波数特性が凸凹でないってのと、
その関数の単調増加性は全然関係ないと思う。

154 名前:デフォルトの名無しさん [2008/02/11(月) 12:52:46 ]
f' > 0 なら増加だから
3次関数で、正のものをえらんで積分すればよい

155 名前:デフォルトの名無しさん [2008/02/11(月) 12:56:40 ]
(x-a)(x-b)(x-c)(x-d)の形で始めればよい
極値は簡単にわかる

156 名前:152 mailto:sage [2008/02/11(月) 13:31:13 ]
レスありがとうございます。
>>153
直線位相のFIRの場合 Σ An*cos(n*w) = ΣBn*cos(w)^n というふうに展開すれば
cos(w) は -1〜+1なので、 HPF/LPFなら座標変換すれば >>152の条件に戻せると思います

>>154
3次関数で全区間プラスの係数群を求めればいいという事ですね
でも結局3次方程式を解いて、係数の方向を見ていかないといけないですね

>>155
なるほど、それだと係数は複素数になるので
2次式の積の形に分解して解けばよいわけですね。

結局次数におうじて場合分けしてゆくしかないとしても、これなら解けそうに思えてきました。

ヒントありがとうございました。

157 名前:デフォルトの名無しさん [2008/02/11(月) 14:37:08 ]
1次式と2次式の0〜1の範囲の正負が判明すれば何次でも判明する

158 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:53:20 ]
1次式で、条件を満たすのは f(x) = x のみ

2次式は f(x)=( (1-a) + a*x)*x のみ

3次式は
( (1-a) + a*x)* ( (1-b) + b*x)*x 【* c +(1-c)* ( ( (1-d) + d*x)*x 】

かな? 【】内が必要かどうか判らない

4次式以上もこの方式で拡張出来る?

159 名前:152 mailto:sage [2008/02/11(月) 19:06:08 ]
ありがとうございます。 【】の中は必要なようです。
それで拡張してゆきます。

160 名前:デフォルトの名無しさん [2008/03/20(木) 17:44:42 ]
来年高校生なのですが、プログラミングを今から始めても遅くないですよね?



161 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 17:49:34 ]
Yes

162 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:52:13 ]
何をするのに遅いというのか

163 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:51:47 ]
ったくいまどきのガキときたら

164 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 00:24:11 ]
>>160
大丈夫。MIT で採用してるのを勉強するのが吉。

もうひとつの Scheme 入門
www.shido.info/lisp/idx_scm.html

文面中の mit-scheme-7.7.1-ix86-win32.exe はここにある。
ftp.gnu.org/gnu/mit-scheme/stable.pkg/7.7.1/mit-scheme-7.7.1-ix86-win32.exe

165 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:39:39 ]
単位取れなくてもまあいいやって思って情報数学の授業をぼんやり受けてたら掃き出し法もろくに解けなくてワロタ

166 名前:デフォルトの名無しさん [2008/08/15(金) 07:11:12 ]
hage

167 名前:デフォルトの名無しさん [2008/09/27(土) 17:20:52 ]
オーダーのO(n)とO(nlogn)ってどっちが速いですか?
lognはnが10なら1だからO(n)の方が速いと思ってるのですが、
とあるブログでO(nlogn)の方が速いって言っててわからなくなりました


168 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:26:49 ]
O(n)が速い
そのブログは嘘

169 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:28:02 ]
>>168
167の自分の考えは間違っていないですか?


170 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:30:06 ]
^2 が抜けてたとかそういう落ちか、
オーダーの問題じゃなくて n が小さい時の挙動の話か。



171 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:32:13 ]
>>170
だいたい自分の理解の仕方は間違っていないということはわかりました
ありがとうございました


172 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:32:27 ]
どのブログ?

173 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:35:54 ]
いつもお世話になってるとこなんで穏便にお願いしますね

ttp://monsho.blog63.fc2.com/blog-entry-83.html


174 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:36:52 ]
オーダーだから「nが10なら1」というような意味はない...けど、
(底が10の対数、という意味ではないから)
nlognのほうが早い、ってことはないな。

175 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:41:35 ]
>>174
そうなんですか
てっきり常用対数なのかと思ってました


176 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:46:31 ]
ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%80%E3%82%A6%E3%81%AE%E8%A8%98%E5%8F%B7

177 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:11:04 ]
>>173
やっぱ n が小さい時の挙動じゃん。

アルゴリズムの改良って、
オーダーが小さくなる代わりにオーバーヘッドが大きくなることがよくある。

この場合、
オーダーが小さい → n を大きくしても平気
オーバーヘッドが大きい → n が小さい時は逆に不利

178 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:33:34 ]
単純に計算するとn<10でn*logn<nになるな
少ない要素数に対して何度も適用する場合においては有利になるとかなんかな?
実例としてはどんなのがあるんだろう

179 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:35:14 ]
>>177
>このオーダーの計算は n が∞に向かった場合の処理の速さを相対的に表現したものに過ぎません。O(n) と O(nlogn) なら O(nlogn) の方が速いわけです。

この一文に関しては前後の脈絡関係なく単独で判断できると思うんですよ
そうすると間違っているということじゃないんですか?


180 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:41:35 ]
logの底が10だと思ってる奴って結構いるのかな



181 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:46:51 ]
>>179
その認識で合ってる

182 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:48:22 ]
>>181
主語はどっちですか


183 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:51:26 ]
日本語に主語は無い

184 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:55:50 ]
底が省略されてるときの底がeだったり10だったりとややこしいから機雷

185 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:57:18 ]
そんな意地悪しなくてもw
いやどっちが合ってるって言ったのか確信が持てなくて
まあ『認識』って書いてあるから俺の考えてることで合ってるって意味だと思いますけど
ブログの方が合ってると言うなら『記述』とか書くでしょうから


186 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 01:49:17 ]
O(f(n))とO(g(n))があったら
f(n)/g(n)→∞(n→∞)ならg(n)のほうがnの増加に対して効率がいい。
f(n)/g(n)→0(n→∞)ならf(n)のほうがnの増加に対して効率がいい。

アルゴリズムイントロダクション第一巻読め。

187 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 01:54:23 ]
やあ今頃来たのかい

188 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 09:52:29 ]
アルゴリズムイントロダクション新品で売ってない・・・

189 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 00:26:00 ]
抽象度の高いクラスを設計するには数学力を鍛えると良いと聞きました。
数学は抽象の宝庫であると。
集合論が一番の基礎だと思うのですが、抽象度の高いクラス設計に必要な地力をつけるために
数学を学ぶとしたら、集合論からどのような分野にステップアップしていけばよいですか?


190 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 01:28:12 ]
クラス設計の本でも読んで、試行錯誤しながら実装しる。
現実世界ではペンキ塗ったりワックスがけしたりして空手が強くなるということはない。



191 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 10:34:46 ]
クラス設計に関しては、現状ではやれデザインパターンたどかリファクタリングだの
アスペクト指向やらと試行錯誤といった状態だと思う。

またマシンの性能が確保できる時はいいけども、
組み込みや容量・速度といった制限のかかっている場合は、
クラスを使わないようにすることがベストなんて場合もある。

作業者のスキルが揃わなかったり、昔ながらの人が居たりで、
グローバル変数べったりのコードを書かざる得ない状況だって実務的にはあった。

数学は大学に入る時の能力で後は下がる。
歳を取ったら新しいロジックを頭で追いかけ切れなくなって
結局はパターン的に処理してるだけ時もくる。

ただ何か頑張ろうという意欲は大切だと思うので、
今、目の前の問題に関するところから広げていくくらいでいいのでは思う。


192 名前:189 mailto:sage [2008/09/30(火) 23:39:17 ]
>>190
試行錯誤はそこそこしてるつもりです。
これまでに自分で設計したクラス数は大小あわせて100〜200くらいでしょうか。
最初に比べればずっとうまくなったと思ってますがやはりまだまだわからないことが多い。
無手勝流では限界があるような気がしてます。
数学を学ぶことで抽象的な発想を得られるのではと思いました。

>>191
目の前の問題に関するところから広げていくのも確かに現実的な方法ですが、
叶うならば体系的な知識を学んで骨太の地力を付けたいと思っています。




193 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 00:41:31 ]
>>192
そんな貴方には代数がオヌヌメ。
単に抽象を求めるなら、集合論だけでも相当イカれた領域まで突っ走れるけど、
計算機からは離れていってしまう感が強いので。

194 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:05:04 ]
The Art of Computer Programmingでも読もうか

195 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 16:47:46 ]
ゲーム以外で、数学ってどこで使うの?

196 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:56:59 ]
待ち行列理論とか

197 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:59:15 ]
>>195
「計算」と「数学」の違いはわかるか?


198 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:57:45 ]
なるべくでいいから質問を質問で返すな
スレが荒れるから

199 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 10:43:34 ]
今25なのですが、プログラミングを今から始めても遅くないですよね?

200 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:51:29 ]
うん



201 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:38:46 ]
何をいつまでにやるかによるだろ

202 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 13:58:47 ]
センスある奴は年いってからでものびるみたいだけど、
このスレでアホな質問してる>>199は絶望的

203 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 19:43:08 ]
>>199
高校の数学が理解できるなら遅くない。
高校の数学が怪しいならやめとけ。

数列とか理解できるか?


204 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 20:00:08 ]
>>199
人々の権利を守る為にと
独学で数学とプログラミングを学んで暗号システムを開発したおっちゃんだっている。
気合があれば余裕。

205 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 16:24:27 ]
プログラミングは大半の人にとっては何かを実現するための手段だからな。
実現したい情熱さえあれば何とかなるべ。
車や飛行機作るのと違ってあまり高価な設備投資いらないしな。

206 名前:デフォルトの名無しさん [2008/10/11(土) 22:29:39 ]
www.forest.impress.co.jp/article/2007/04/24/dfsupt.html
↑テキスト比較ツール「DF」のように2つのテキストファイルを比較して
お互い一致しない行を探し出すプログラムを自前で組みたいとおもっています。
(C#を予定)

この手のプログラムを組むにはどのようなアルゴリズムを調べれば実現できる
ようになるでしょうか?

207 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 23:01:15 ]
O(ND)アルゴリズムとかO(NP)アルゴリズムとか

208 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 11:07:17 ]
>>206 diffの原理を調べれば解かると思うけど、
同じで無い行が 違いのある行 として扱うようにすればいいんじゃないの


209 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 14:41:19 ]
viviの実装についての説明がわかりやすかったような
ttp://b.hatena.ne.jp/entrymobile/548258

210 名前:デフォルトの名無しさん [2008/11/15(土) 21:28:45 ]
ほす



211 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 22:15:16 ]
物理の話になるんですけど聞いてください
反発係数が1で重さが1の物体aと物体bが衝突した後の速度って

物体aがVb(衝突前の物体bの速度)
物体bがVa(衝突前の物体aの速度)

であってます?

212 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 22:30:22 ]
>>211
あってません。

213 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 22:35:23 ]
んっ、合ってるだろ
速度が交換する

214 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 22:36:48 ]
式変形するとわかるんだけど
どういう理屈なんだろね

215 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 23:15:33 ]
>>214
どういう理屈もなにも、止まっている物体に動いている物体がぶつかったときの事を考えれば判るだろ?
衝突したのに止まっている物体が止まったままで動いている物体が動き続けていたら気持ち悪いじゃないか。

216 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 23:30:38 ]
斜めにぶつかった場合は・・・

217 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 23:47:01 ]
>>216
斜めにぶつかろうと同じことだよ。
相対論的な速度でないのだから、片方の物体と等速度で移動している系から観測すれば
その物体は静止しているのと同じように振舞うのだから。

218 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 03:25:56 ]
多分216の言ってる斜めってのは、


 ○
みたいな意味じゃね?

219 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 05:42:17 ]
接線に対して垂直になるようにベクトル分解して後は同じじゃねーの?

220 名前:デフォルトの名無しさん [2008/11/28(金) 07:42:12 ]
後は同じってなんだよ
テキトーなこというなよ
現在進行形で悩んでる俺に解説キボン



221 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 07:52:37 ]
等質量で塑性変形を考慮しなくていいなら、>219で事が足りるだろ。
要は、ビリヤードで言うところのイマジナリボールだ。

222 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 10:01:42 ]
保存則考えればわかるべ。

223 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 10:40:02 ]
オブジェクト指向を圏論とか型理論、数理論理学を使って説明している本とか論文ってないですかね?
責務とか言われても曖昧でよくわかりません

224 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 10:43:17 ]
>>223
クラスの継承関連なら関係づけられそうだけど、オブジェクト指向となるとどうなんだろう?

225 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 12:08:18 ]
>>223
与太話でやったことはあるけれど、論文は見たこと無いなあ。

226 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 12:45:00 ]
オブジェクト指向 形式化 で検索してみ?

227 名前:デフォルトの名無しさん [2008/12/16(火) 20:41:41 ]
すでに正規化してあるベクトルをさらに正規化するとどうなるんでしょうか?

228 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:01:10 ]
数学的には同じ値になる。

229 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:15:40 ]
コンピュータ的には数値誤差でちょっとだけ変わる可能性はある・・・のか?

230 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:00:08 ]
>>228
なりました
マジで感動しました

ありがとうございます
これからは安心して無駄に正規化しまくろうと思います



231 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:31:01 ]
>>230
どうやって確認したんだ?
全てのベクトルで試したか?
漏れは無いか?

つーか、コンピュータにやらせて感動というのは、この場合はおかしい。
手で計算して感動するべきだ。
もし手で(というか定義見て理解して)納得して感動したというなら謝る。そして偉い! その調子で頑張れ。

232 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:39:04 ]
>>231


233 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 22:30:19 ]
IMEで「外積」って単語ないのな
内積はあるのに・・・
もうPCが発売されてから何年経つんだろうか・・・

「外積」を辞書登録する恒例行事はもうやめにしようぜ

234 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:00:24 ]
>>233
数学・科学用語は軽視されてる感がある。

235 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 03:28:11 ]
MS-IME 2007だが外積は出るぞ。もちろん外と積に分かれているなんてことはない。
登録単語を見返しても登録されていない。

236 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 05:58:46 ]
>>235
2007ってOfficeに入ってるやつか?
普通のIMEでは外積は単語登録しないとでないんだよ

237 名前:デフォルトの名無しさん [2008/12/19(金) 08:03:30 ]
いま、とあるソフトの機能追加で
モデルが数式のときはバンプマップは高さマップを作るだけだったんですが
ポリゴンのときには法線マップが引数から流れてくるんですけどこれ捨てちゃっていいでしょうか?

238 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 08:08:41 ]
うち、Microsoft Office IME 2007 だけど、がいせきは外戚しか出ない。

239 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 09:33:41 ]
ATOKも>>238と同様っぽい
数学用語系の辞書作ってる人いないのかな?

>>237
スレ違いだし、他で聞いても情報量少なすぎて多分誰も答えられない

240 名前:デフォルトの名無しさん [2008/12/19(金) 11:28:37 ]
>>239
hiramatu-hifuka.com/onyak/kotoba-1/sugaku.html



241 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 11:40:44 ]
ttp://www.atok.com/products/index.html#pgTech
科学用語辞書ってないのか...

242 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 18:58:44 ]
数学関係の編集をやっているが
IMEの辞書はとてもそのままじゃ使えない

243 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 19:25:27 ]
>>239
ことえりは変換できる。
Mac のうんこ IME と思ってたが、意外とやるなあ。

244 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 22:04:43 ]
>>239
ATOK2006以降だと外積変換できた


245 名前:デフォルトの名無しさん [2008/12/28(日) 01:56:10 ]
スレタイに合った数学の本教えて。

246 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 09:12:10 ]
コンピュータのための数学でも買ってろボユゲ

247 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 21:30:39 ]
>>245
ゲームプログラミングのための3Dグラフィックス数学
やっぱこれでしょ

248 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 02:41:25 ]
>>245
共立出版 情報数学講座2 「情報代数」 小野寛晰 著

249 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 17:09:08 ]
The Art of Computer Programming

250 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:10:07 ]
TAOCPは数学の本じゃないだろ



251 名前:デフォルトの名無しさん [2009/01/24(土) 15:22:06 ]
計算理論ってプログラミングに関係あるの?

252 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:29:19 ]
うん

253 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:36:45 ]
述語論理を使って制約を含む仕様を書いたらそれから機械コードを生成するようなコンパイラを作りたい
でそれ使ってwebプログラミングしたい

254 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:39:03 ]
がんばれ

255 名前:デフォルトの名無しさん [2009/01/24(土) 18:42:24 ]
3(6x+4y)-2(x+6y)

256 名前:デフォルトの名無しさん [2009/01/26(月) 02:49:35 ]
2次元の回転はsinとcosの2*2の行列だけど、
本には3*3の行列になってますよね。
3列目と3行目にダミーの1と0が入ってたと思いますが、
あれの意味がわかりません。
よろしくお願いたい酢します

257 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 02:51:51 ]
>>256
何にも知らないのだったら、まずは同次座標について勉強してみるんだ。
その上で分からないことがあったら、またここへ来ればいい。

258 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 06:42:13 ]
>>256
同次座標 アフィン変換で検索するといい

259 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 08:21:22 ]
あっふん変換

260 名前:デフォルトの名無しさん [2009/01/29(木) 13:53:40 ]
ポリゴンの平行移動などのアニメを作成する際、
エルミート曲線を使用することになりました。
以下の計算式まではたどり着けたのですが、
フレームと値(x座標など)のグラフ上の角度から
m(i)を求める方法がわかりません。
また、この場合の t は
( 現在のフレーム数 / 総フレーム数 )でいいのでしょうか?

p(t) = (2*t3-3*t2+1)p0 + (t3-2*t2+t)m0 + (t3-t2)m1 + (-2*t3+3*t2)p1
m(i) = ( p(i+1)-p(i-1) ) / 2 /* <-前後のフレームの値の差の半分? == tan(角度)*1(フレーム)? */



261 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 14:08:22 ]
EXCELで、
A1が1の時は、B6はC1
A1が2の時は、B6はC2
A1が3の時は、B6はC2

B6とC1〜C3をリンクしたい場合、B6の関数はどうすればいいか教えてください。

262 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:23:56 ]
>>261
どこをどう迷い込んだか知らんが
板違いに気付けよ。

263 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:49:03 ]
将来ゲームプログラマになりたいんですが、プログラマ的には数学と物理学ってどのくらいまで勉強すればいいんでしょうか?

物理学と数学を勉強しすぎると時間がいくらあっても足りないですよね。
ちなみに大学課程の話です。

264 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 20:25:43 ]
>>261
=address(1;a1)

265 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:00:08 ]
>>263
数学はベクトル・行列、物理は運動方程式ぐらいは理解して無いとやばいんじゃね?
「ここまで勉強すれば十分」なんて業界は知らない。

266 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:42:11 ]
>>263

ゲームプログラマになりたいなら、その手の本がいっぱいあるだろ。
セガの人が書いた本とか新人教育向けの本とか。オーライリとか。

ちなみに今の日本のゲーム業界は、技術的・理論的なところでは欧米に完全に負けている。
どの辺が負けているかを本などから読み取ってみるのはどうかな?

大学課程では、ゲームプログラムとは離れて、所属した研究室での最先端をしっかりと見につければ良いと思う。

267 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:56:16 ]
解析力学頑張れ

268 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:57:23 ]
三角関数と線形代数は必須
実践的に理解している必要がある

269 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:18:10 ]
>>263
リアルタイムな3Dゲームに関しては、

微積 線形代数 計算量とアルゴリズム 近似と誤差
物理は別に要らんが、微小時間と差分に関する概念はきちんと抑えておくこと。

あと自分で調べられないとどんな職業でもやってけない。

270 名前:デフォルトの名無しさん [2009/02/02(月) 16:17:51 ]
居住地   人数

東京都   16
大阪府   26
新潟県    1
富山県    2
京都府    2
神奈川県   1
山梨県    2

上記から、「同じ都道府県同士でバッティングさせない」という条件下で
2人1組のペアを作るとします。
その場合に、
どうしても余ってしまって同じ都道府県同士で組まざるを得ないのは
何人いるか、を求めたいのですが、
その場合どういう計算式が考えられますでしょうか。



271 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 16:21:25 ]
26 - (16 + 1 + 2 + 2 + 1 + 2) = 2

272 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 17:50:26 ]
最も大きな人数のグループ二つを選びペアを一組作る。
ペアを作ったら人数を更新する。人数が0になったグループは消す。
グループが一つ以下になるまでこれを繰り返す。
残ったグループの人数が答え

273 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 17:53:35 ]
人数が奇数のときは最初に例外を投げ…いや、なんでもない。

274 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 18:03:17 ]
男女男男女男女

275 名前:デフォルトの名無しさん [2009/02/03(火) 03:00:15 ]
ゲームプログラマって自分が作ってる部分がゲームのどの部分だかわかってるの?
その前に、ゲームプログラマってそのゲームのストーリーは知らされているものなの?

276 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 03:45:06 ]
スレ違い

277 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 03:54:14 ]
オブジェクトにオブジェクトをぶつけてはじき飛ばすというプログラムを作ろうと思って、
いろんな講座を見てみたけど、こんな簡単なプログラムでも数学・物理の知識がいりますね。
高校中退でそのまま文系大学受けたから、ぜんぜん手が出ない・・・

278 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 04:10:30 ]
計算式は高校物理で習うけど
計算力は中学数学レベルで十分


279 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 04:12:30 ]
衝突判定はあなたが思っているよりもずっと高度。決して簡単ではない。
オブジェクトが球だけってならともかく
数学・物理の知識だけじゃまず間違いなくあなたの望むスピードじゃ動作しない。

280 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 04:34:34 ]
そうか?判定用のピクセル・テクセル座標をどう採るかだけだろ



281 名前:デフォルトの名無しさん [2009/02/03(火) 06:59:21 ]
何の話だ

282 名前:デフォルトの名無しさん [2009/02/03(火) 08:26:45 ]
まあ自前で効率的に書こうとしたら初心者じゃ無理だわな。

283 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:06:44 ]
物理的な衝突と、
単に衝突したかどうかを検出するのは
難易度段違い

284 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:12:21 ]
運動ベクトルをお互いに引き算してマイナスが出たら質量に足して補正するじゃ駄目なの?

285 名前:デフォルトの名無しさん [2009/02/03(火) 10:26:38 ]
Haskellなら、プログラミングと数学の両方をいっぺんに学習出来るぞ!!
「計算」の意味についての理解が飛躍的に上がるのは確か。

286 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:37:13 ]
球ならそんなには難しくはない。
まず、大きさ同じとか、速度同じとか、回転しないとかそういう条件からやってみれば。
昔はこういうところをパソコン雑誌でやっていたものだけどね。

287 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 11:43:31 ]
衝突判定のネタだけで一冊本が書けるんだよね

www.amazon.com/dp/1558607323

288 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 12:33:08 ]
有限要素法っぽいことをやりたいのか、1フレ内でオブジェクトの重なり判定を
やったりしたいのかで話はだいぶ違うけどな。

289 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 15:38:34 ]
>>284
球同士なら半径でコリジョン処理出来るけど、
多面体になった途端、衝突パタンが面、辺、頂点と分かれ、衝突位置によって物体が回転したりするわけだ。

内部的には描画に合わせて単位時間で回転移動の処理をすることになるだろうけど、
更に厳密に処理するなら衝突発生時は各物体を衝突の瞬間まで戻して再計算しなきゃならんとか、
球同士ですら移動ベクトルが早すぎれば半径コリジョンだとすり抜ける場合もあるから考慮しないと・・・とか、
考え出すとキリが無い。

290 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:29:38 ]
しかもそれが2つじゃなくて多数のオブジェクトになったらもう…



291 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:47:36 ]
宇宙船に弾が当たったかの判定と
積み上げたドラム缶の山が崩れるのでは
厳密さが違いすぎる。


292 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:59:14 ]
その厳密さの違いは当然で、
自分の実装するゲームに合うように適切に省略を行う必要がある。
弾幕シューティングみたいに、
オブジェクトが遅くて、点対面な衝突判定なら>>284でいいだろうし、
3次元マップと車の衝突判定とかになると、
かなり厳密な

途中で面倒になった。

293 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:01:40 ]
うん、まぁわかってるから書かなくていいけどね。

294 名前:マイク ◆gZ6OoOjBU6 [2009/02/05(木) 07:27:45 ]
計算機科学や情報工学やソフトウェア工学と、数学や数学基礎論や物理学を結びつけるこのスレは
かなり有益な部類に属するものだろう。

295 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:42:40 ]
>>285
チョット興味あるんだけど、お勧めの教材とかある?

296 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:56:30 ]
興味があるのなら
その位自分で探したら?

297 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:37:29 ]
チョットは興味あるけどそこまでは無いんだもん

298 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 10:45:59 ]
じゃあやめとけ

299 名前:デフォルトの名無しさん [2009/02/08(日) 07:36:34 ]
299

300 名前:デフォルトの名無しさん [2009/02/08(日) 07:36:55 ]
300



301 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:14:54 ]
[1] 授業単元:数学
[2] 問題文(含コード&リンク):
1から9までの数字を縦横方向に同じものが並ばないように下記の例のように並べる
並べ方が全部で何通りあるか
少なくとも10の何乗かのオーダーで解答ください
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:

534681297
685293714
948367125
153472869
426538971
261759483
817945632
379126548
792814356


302 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:23:07 ]
横方向には重複しない9×9の配列をランダムに生成し
それが縦方向に重複しているかどうかを確認するという
プログラムを書く

そしてその結果を集計してモンテカルロ法で確率を計算
それを 9!^9 にかけることで結果を得る

がんばれ

303 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:04:31 ]
>>301
マルチ死ね

Python の宿題ここで答えます Part 1
pc11.2ch.net/test/read.cgi/tech/1153585095/785
C/C++の宿題片付けます 122代目
pc11.2ch.net/test/read.cgi/tech/1232029287/542
Rubyの宿題教えてください。2限目
pc11.2ch.net/test/read.cgi/tech/1200175247/476


304 名前:デフォルトの名無しさん [2009/02/14(土) 19:12:16 ]
PCの本にでてくる回転行列ってなんで右から掛け算するようになってるんだ。
普通は左からだろ。

305 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:14:05 ]
普通は右からだろ

306 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:21:18 ]
座標空間にあるものを回転するのではなく
座標そのものを回転するからだよ

307 名前:デフォルトの名無しさん [2009/02/14(土) 19:30:13 ]
いや、おれは高校の頃に一次変換があった世代なんだけど、右からかけてるなんて奴
見たことないぞ。

>座標空間にあるものを回転するのではなく 座標そのものを回転するからだよ

それぐらい知ってるって。
(1,0)を(sinx,cosx)に、(0,1)を(sin(x+90),cos(x+90))に基本ベクトルを取り替えることによって
回転を実現させている。

308 名前:fushianasan [2009/02/14(土) 19:48:32 ]
h

309 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:53:33 ]
>>304
右からかけるのと左からかけるのに意味がある。

法線とかの場合、行列が左に来る。

座標と法線って内積をとるわけだけど、その時に、
(x A)・(B n) = x・n
x: 座標ベクトル
A: 座標に関する変換行列
B: 法線に関する変換行列(A の逆行列)
y: 法線

と書けるようにするため。


310 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:59:49 ]
PS1 の経験から、ハードウェアの都合だと思ってたけど。
SGI の昔の GTE がそうだったとか、そんなんじゃない?
実際回路は簡素になるし。
全ての行列を転置して扱うとも言えるけど。



311 名前:デフォルトの名無しさん [2009/02/14(土) 20:01:31 ]
ごめん、いみがわからない。。。

312 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 02:15:26 ]
>>307
>>307
>>307
>>307


313 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 10:48:34 ]
右と左はどっちでもいいんじゃ。
ベクトルを縦にとるか横に取るかじゃないの?
違ったらごめんなさい。

314 名前:デフォルトの名無しさん [2009/02/16(月) 16:56:38 ]
>>312
なんか間違ったこと書いたかな。。。

315 名前:デフォルトの名無しさん [2009/02/16(月) 19:15:48 ]
丸投げっぽくてアレだけどだれか教えてくれない?
余弦をマクローリン展開してるつもりなんだけどどうしても
マイナス方向に誤差がでる。原因は式?
それとも浮動小数点の誤差?
template<class type> type Cos(type n)
{
 type r=0,pow=1.0;
 unsigned long factorial=1,i=0;

 n*=n;
 while(i<18)
 {
  type x,y;
  x=pow/factorial;
  pow*=n;
  factorial*=++i;
  factorial*=++i;

  y=pow/factorial;
  pow*=n;
  factorial*=++i;
  factorial*=++i;
  r+=x-y;
 }
 return r;
}

316 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:13:45 ]
>>315
その式だと,マクローリン展開が負の係数で終わってるので
負の方向に誤差が出やすい。

ただ,マクローリン展開が有効な範囲(剰余項が十分小さい範囲)では
たいして問題にはならない程度の誤差のはず.

317 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:15:22 ]
>>316
なるほどね。ありがとう。
正直展開の停止基準がよく解ってないんだけど、
何を基準にするのがベター?

318 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 00:51:57 ]
手を抜くなら、前回の r == 今回の r になった時点でループ終了。

マクローリン展開の定義式から誤算も見積もれるから
必要な精度に応じて何回ループ回すか決めればいいのでは。

あと、ほんとに精度必要なら、
浮動小数点数の性質上、小さい値から足してった方が誤差減る。
++i するんじゃなくて、最初に規定精度分の桁から初めて --i。

319 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 01:12:02 ]
同じことだけど、

… + a/1/2/3/4 + b/1/2/3 + c/1/2 + d/1

とするかわりに

( ( ( ( … + a )/4 + b )/3 + c )/2 + d )/1

のようにするとかなー

320 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 07:16:14 ]
>>317
打切り誤差と桁落ち誤差のオーダーが合うようにするのが良い,と言われている.
けど,そんなに精度を気にするなら,そもそも double で計算するのがマズイし,
単純なマクローリン展開でやるのも良くない.

double なら 10^{-10} くらいで一致していれば満足したほうが精神衛生上良いよ.



321 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 08:06:26 ]
ああ、あと、sin/cos に関して言うと、
sin π/2 - x = cos x とかの変換公式使って、
x の範囲を π/4 以下に収めてから級数展開するのがいい。


322 名前:272 [2009/02/18(水) 09:21:00 ]
>>271
>>272

レスありがとうございます。

とりあえず>>270の考え方でプログラム組めました。

さらに>>270に、「常に余りが最も少なくなるように組み合わせる」
という条件を追加したら、どういう考え方になるでしょうか?

現状では組み合わせ方によって、「余ってしまって同じ都道府県同士で
組まざるを得ない」人数が、2人になったり6人になったり変動します。

323 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 10:52:49 ]
>322
なぜ君が272になってんのさ

324 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 18:01:38 ]
>>322
272のアルゴリズムには同一条件下で結果が変動する要素は無いと思うけど
ソート順でペアになる県は変わるが、最終的に残るのが
「最も少ない余り」=「同じ都道府県同士で組まざるを得ない」

実装に失敗してるだけじゃね?

325 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 19:09:32 ]
>>318-320
ありがとう頑張ってみるよ。
一応、標準ライブラリの様に円を一周しても
きっちり1になるような精度までは欲しかったんだ。

326 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 21:23:33 ]
>>325
標準ライブラリで,1周してゼロになるのは >>321 の言うような実装だから.
(cos(2π) = cos(0) = 1 と計算されている)

これをせず,ただのマクローリン展開だけでやろうとすると,
n 次の項は (2π)^n/n! くらいで,これが 10^{-16} 程度になるには n 〜 40 くらい.

というわけで,テイラー展開する次数が全然足りてないよ.

327 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:06:37 ]
ふつうのマクローリン展開だと 0 から離れるにつれて誤差が大きくなる。
チェビシェフ多項式による近似なら誤差が均等になるぞ。

328 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 18:05:50 ]
cgi.2chan.net/m/src/1233396823249.jpg

329 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:40:43 ]
l_∩

330 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:54:42 ]
上の方も、上から近づけるか下から近づけるかで+∞か−∞かの差が出てくるように思うが
∞でまとめちゃっていいのか?



331 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:00:07 ]
>>330
Si = if, Entonces = then なので,上を認めたら下はどうなる?ということ.
上が数学的に正しいかどうかは別問題.

332 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:49:22 ]
偽の命題を仮定すると、すべて命題を肯定的に証明することが・・・。

333 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:05:00 ]
328 で lim の極限がどう約束されてるか分からないので一概に偽の命題とは言えないけどね

334 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:32:55 ]
limではなくてLIMと大文字で書いてあるから主値をとるんだよ

ほかにもlimではなくてl.i.m.というのもあるから紛らわしい

335 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 11:17:33 ]
>>333
>>328はギャグだろ?


336 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:46:53 ]
ネタにマジレスにマジレスカコワルイ

337 名前:デフォルトの名無しさん [2009/03/01(日) 21:39:36 ]
n/0 ってどう表現すべきかな?
大抵 n/1に変えてしまうとかn/0=0と変えてしまうとか小手先な
手段をとってるけど数学的に正しい解釈ならどうすべきだろう?

338 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:46:04 ]
プログラマやめて転職することを勧めます

339 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:47:08 ]
>>337
数学的には Not A Number にするか例外投げるのがが一番正しい気がする。

ただ、計算機上では精度の問題で、
ものすごい小さな数と0が区別つかないんだから、
ものすごい大きな数と無限大を区別しないって方針も
ある意味正しいと思う。


340 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:51:37 ]
>>337
何故 n/0 なんてものが現れて,何のために n/0 を表現したいの?
普通はこういうのは出ないようにできるもんだと思うけど.

どうしても表現しなくちゃいけなくて,なおかつ数学的にも
真っ当なものを求めるなら,wheel というものがある.
ただ,それが目的に適うものかどうかは不明.



341 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:15:16 ]
>>339
なるほどね〜。

>>340
 まぁ、滅多に使うことじゃないんだけど直線型の座標が必要になった時((0,1)から(0,1024)へとか)
とかにちょろっとね。ifで分岐するとパイプラインに影響及ぼしそうで式だけで解決できる良さげな
方法はないかなと。


342 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:22:11 ]
>>341
要するに斉次座標?

斉次座標の場合、実数に±∞相当の元を付け加えた集合と同値とみなせるから、
n/0 は∞扱いでいいと思う。

343 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 05:47:40 ]
>>341
直線を表現するならプリュッカー座標でしょ.
実数体上なら∪{∞}ともwheelとも同値.

344 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 22:24:06 ]
>>337
言語の指定も型の指定も無いけど、
標準的な浮動小数点型を持つ言語なら大抵言語レベルで実装されてると思われ。

例えばCならANSIで規格決まってるし、演算も可能。
ttp://docs.sun.com/app/docs/doc/805-7885/6j7dqggbr?l=ja&a=view の極値表現

つか、どう考えても n/0=0 はありえなくね?
パイプライン気にするよりも、実装のマズさを気にするべき。

345 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 09:44:02 ]
言語で決まってるというより、IEEE754で決まってる。

浮動小数点が数学かというと微妙だが。スレタイ的に。

346 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 22:09:24 ]
まあ、浮動小数点数がそういう挙動するよう定められてるのは、
>>339 が理由だし。


347 名前:デフォルトの名無しさん [2009/03/18(水) 10:27:39 ]
光線追跡
とかって何の数学になるんですか?

ライブラリ
もありまつか?

348 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 11:13:52 ]
幾何光学、は数学じゃないか。
計算幾何学、も数学じゃないな。

まあ数学では幾何学じゃないかな。

349 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 11:17:56 ]
書き忘れた。

ライブラリは、もっと具体的に何をやりたいかによる。
レイトレとかならグラフィック用のライブラリだし、
レンズ設計ならそれ専用のソフトがある。

350 名前:347 mailto:sage [2009/03/18(水) 11:22:59 ]
thx!

>レンズ設計ならそれ専用のソフトがある。
こちらが知りたいです。
あるレンズ(レンズは設計しませんがパワー計算みたいな)だと、焦点合うだとか、ボケるだとか。
ボケた画って書けるんでしたっけ?グラフィックライブラリで。



351 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 11:32:40 ]
レンズ シミュレーション、で検索してみたら?

352 名前:347 mailto:sage [2009/03/18(水) 11:42:21 ]
ググルワード分かりマスタthx!

シミュレーション結果が殆どで、ソフトウェアライブラリ探すのは大変そうですえね。

353 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:11:42 ]
もしかしたらグラフィック側かな。
物理レンダラにはレンズ特性もシミュレートしてボケとかも表現されるのもあるけど?

354 名前:347 mailto:sage [2009/03/18(水) 12:16:05 ]
>物理レンダラにはレンズ特性もシミュレートしてボケとかも表現されるのもある

ちょー興味あります。

355 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:58:57 ]
重いコンダラ

356 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:19:24 ]
Maxwell Render
つーかそろそろスレ違いっぽいな。

357 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:59:27 ]
y = Math.exp( - 0.5 / a) / (Math.sqrt(Math.PI * 2 * a));
これをa=の形にしたいんですが、どうやっても出来ません。。。

y * Math.sqrt(Math.PI * 2) = Math.exp( - 0.5 / a) / Math.sqrt(a);
Math.sqrt(a) * ( - 0.5) * (1/ a) = Math.log(my * Math.sqrt(Math.PI * 2));

こんな感じで変形してるんですが、ここで行き詰まってしまいました。
どなたかヒントだけでもいただけないでしょうか(;´Д`)

358 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:01:13 ]
>>357
数学板で聞け

359 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:08:58 ]
>>357
初等関数では表せない。
LambertのW関数を用いれば書ける。

360 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:31:17 ]
>>359
その方向で調べてみます。
ありがとうございます!



361 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:31:57 ]
a = ( -.5 / log( y * sqrt( PI * 2 ) ) ) ^ 2
数学よくわかんないけど、これじゃダメポ?

362 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 04:26:24 ]
>>361
なんか変形間違えてる

363 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 05:43:33 ]
そうかなあ

364 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 06:50:38 ]
>>363
もとの式を間違えてるんじゃないかしら.
一応式変形を書いておくと,分母払って
 y √(2πa) = exp(-1/2a)
両辺2乗して
 2πay^2 = exp(-1/a)
両辺 -a で割って
 -2πy^2 = -1/a exp(-1/a)
これを -1/a について解くと
 -1/a = W(-2πy^2)
となる.ここで W は x exp(x) の逆関数(LambertのW関数).
LambertのW関数は初等関数で書けないことが知られている.

365 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:39:27 ]
>>364
やっぱダメか。
wikipediaにソースコードあるしW関数とやらの実装自体は難しくないっぽいね。

ちなみに363は俺じゃないよ。

366 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 03:19:59 ]
【教育】マイクロソフト、数学学習支援ソフト「Math」日本語版を初発売・・・テスト問題、論文作成なども可能
tsushima.2ch.net/test/read.cgi/newsplus/1237518336/






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<83KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef