[表示 : 全て 最新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/

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