プログラミングの為の数学と算数 vol.3
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/12/08(土) 06:30:23TIPS/Q&Aスレです。
宿題は自分で解き終わってから持ってきましょう。
前:プログラミングの為の数学と算数 vol.2
http://pc11.2ch.net/test/read.cgi/tech/1094368921/
0002デフォルトの名無しさん
2007/12/08(土) 06:31:510003デフォルトの名無しさん
2007/12/08(土) 07:45:13過去ログ
プログラミングの為の数学と算数
http://pc.2ch.net/tech/kako/997/997150743.html
関連過去ログ
フーリエ変換について教えてください
http://piza2.2ch.net/tech/kako/996/996929748.html
交差判定アルゴリズム
http://piza2.2ch.net/tech/kako/996/996157997.html
最速の素数判定アルゴリズム
http://pc.2ch.net/tech/kako/993/993457354.html
0004デフォルトの名無しさん
2007/12/12(水) 01:25:49a×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)
と教えてもらったのですが、これでも外積を求められるのでしょうか?
0005デフォルトの名無しさん
2007/12/12(水) 01:49:03を主張してると思うけど、
この式の左辺は a と b の外積だから
当然 a と b の張る平面内にない
いっぽう右辺は a と b の一次結合
何かのまちがいかと
0006デフォルトの名無しさん
2007/12/12(水) 01:50:34試算すりゃ一発でわかんだろ?
0007デフォルトの名無しさん
2007/12/12(水) 02:03:08やっぱり違いますよね。「これでもいける」と力説されてちょっと不安だったので安心しました。
>>6
一応計算はしてみたのですが、最近ベクトルについて勉強し始めたばかりで、
どっちがあっているかわからなかったもので…
もっと勉強しなきゃ orz
ありがとうございました。
0008デフォルトの名無しさん
2007/12/12(水) 12:38:54力説した奴は誰?
0009デフォルトの名無しさん
2007/12/12(水) 22:55:24一般的な方法はあるんでしょうか?どんな探索・補間をすればいいのかいまいち分かりません。
0010デフォルトの名無しさん
2007/12/12(水) 23:08:40いいんじゃない??
0011デフォルトの名無しさん
2007/12/12(水) 23:30:01それはそれで面白いと思うけど、でも別のスレだな
0012デフォルトの名無しさん
2007/12/12(水) 23:31:49任意平面への投影図ではなくて?
点たちはばらばらに存在しているの?
断面にはまれにしか点が乗らなくね?
00139
2007/12/13(木) 13:15:58対象は、4面体や6面体が混ざった有限要素で、離散点は綺麗な格子状ではなくバラバラです。
↓のような感じで断面図を出したいのですが、どうやるのが一般的なんでしょうか?
ttp://infoshako.sk.tsukuba.ac.jp/ShakoDoc/MATLAB5/jhelp/techdoc/ref/slice.html
おそらく私が知らないだけで、すごいコモンな手法が既にあると思うのですが・・・
0014デフォルトの名無しさん
2007/12/13(木) 16:08:26Matlab は使ったことないんだけど、それは、連続なスカラー場の断面図?
離散点で値を持ってるなら、補間とかしないと無理かな。
4面体だと、バイリニア補間とかバイキュービック補間でいいと思うけど。
6面体だとどうしたもんだろう。ニアレストネイバーでいけそうな気もするか。
0015デフォルトの名無しさん
2007/12/13(木) 21:42:39そこにある例題のように、空間内のスカラー値関数 v = f(x, y, z) に対して
特定の断面に沿った v の値の分布が見たいということ?
そしてその関数 f は具体的な式などでは与えられていなくて、サンプルとして
いくつかの点における値だけがわかっているということか
補間する前に、空間全体に回転行列をかまして、断面が xy 平面になる
ようにすると処理が楽になったり?
0016デフォルトの名無しさん
2007/12/13(木) 22:38:06空間の方を回転するのは無駄だと思う。
補完って、逆から座標変換するような感じでするのが普通。
表示される xy 平面のこの点は元の空間ではこの点にあるはずだから・・・
というように。
00179
2007/12/13(木) 22:47: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)をそもそもどうやって決めるんでしょうか?
もしかして要素との断面の重心?
0018デフォルトの名無しさん
2007/12/13(木) 22:55:57P = x a + y b
上の断面図を求めたければ、
P 上の点 (1, 1) に相当する三次元空間上の点は a + b だから、
この点の値を求めればいい。
この点に一番近い格子点4点を探して、
その4点に対してその補完式を使う。
0019デフォルトの名無しさん
2007/12/13(木) 22:58:22> P 上の点 (1, 1) に相当する三次元空間上の点は a + b だから
この作業を (x, y) に関して繰り返すのね。
一定範囲決めておいて。
積分したいんなら、↑の (x, y) の探索を十分広い範囲でやって、
求めたい有限要素の外にある場合は値を 0 にでもしておいて、
総和を求めればいいんじゃないかと。
あくまで、離散近似になるけど。
0020デフォルトの名無しさん
2007/12/14(金) 02:28:32> |(PA×PB)・PC| / |AC・BC|
を試してみたんだけど、
a(0,0,0) b(1,0,0) c(0,1,0) p(1,1,0)
で計算したら距離0になったんだけど、俺の計算が間違ってる?
0021デフォルトの名無しさん
2007/12/14(金) 02:44:32その式、分母が間違ってるね。
四面体の体積 ÷ 底面積 = 四面体の高さ = 点から面への距離
と計算したいんだと思うんだけど、
その式だと分母が底面積にならない。
底面積は 1/2 |AC| |BC| cos∠ACB だ。
AC = (a, b), BC = (c, d) とすると、(ad - bc) / 2
あと、分子も、それだと四面体じゃなくて
PA, PB, PC を辺とする並行6面体の体積になるから、
1/6 掛けないとだめかも。
0022デフォルトの名無しさん
2007/12/14(金) 02:48:16(CA × CB)・CP / |CA| |CB| な気がする。
(CA × CB) / |CA| |CB| が平面の単位法線。
CP に単位法線掛けると、平面から P までの距離。
0023デフォルトの名無しさん
2007/12/14(金) 04:01:00ああ、そういうことか。
どのみち、体積から求めてるなら三角形からの距離ではないし、
�僊BC平面上に点Pがあるときは求まらないか。
世の中には都合のいい公式があるもんだなぁ、とちょっと感心したんだけどそんな甘くはないかw
0024デフォルトの名無しさん
2007/12/14(金) 12:08:1122 の分母は |CA×CB|。
0025デフォルトの名無しさん
2007/12/14(金) 12:09:250026デフォルトの名無しさん
2007/12/14(金) 12:30:54http://pc11.2ch.net/test/read.cgi/tech/1094368921/948-950
002726
2007/12/14(金) 12:37:410028デフォルトの名無しさん
2007/12/20(木) 05:03:48の冒頭のグラフにあるような、実験結果のプロットからy=j+kxのj,kや、y=j+kln(x)のj,kを
求めるのって、どういうアルゴリズムでやるのでしょうか?最小二乗法でしょうか?
おねがいします。
0029デフォルトの名無しさん
2007/12/20(木) 14:26:09単にグラフ化したいなら普通に補間。
その式で言う j や k などの定数を求めたいなら最小二乗法。
ただ、もちろん、その式が j + k x の形になるとか j + k ln(x) の形になる
って当たりがついてるのが前提。
当たりつけるのは、グラフの形眺めて見て主観で決めるか、
いくつかのパターン試して二乗誤差が一番小さい奴を選ぶ。
0030デフォルトの名無しさん
2007/12/20(木) 21:02:55ありがとうございます。
「補間」というのは、単にプロットした点を直線で結ぶということでしょうか?
0031デフォルトの名無しさん
2007/12/20(木) 21:15:39非線形の補完も、2次補完とか、3次とか色々ある。
0032デフォルトの名無しさん
2007/12/20(木) 22:30:43フィッティングって言うかな。
0033デフォルトの名無しさん
2008/01/10(木) 09:22:17簡単な入門書やサイトってありませんか?
0034デフォルトの名無しさん
2008/01/10(木) 09:51:26実践的で簡単つーのはなかなか難しそうだが、
TopCoderやPKU JudgeOnlineの問題を解いてみてはどうだろう?
動的計画法を扱う問題を見つけるのが少し面倒だが、
TopCoderのSRMなら、Problem Set & Analysisにアルゴリズム名が載ってるから探しやすい。
(最新のはhttp://www.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm386)
0035デフォルトの名無しさん
2008/01/14(月) 21:50:08(A||C)&&(A||D)&&(B||C)&&(B&&D)に
変形できると聞いたのですが、やりかたがよくわかりません。公式などあったら教えてください。
0036デフォルトの名無しさん
2008/01/14(月) 21:59:01単なる分配法則だが、
ややこしくなるだけなのでやる必要性はない。
0037デフォルトの名無しさん
2008/01/14(月) 21:59:01(a && b) || c = (a || c) && (b || c)
0038デフォルトの名無しさん
2008/01/14(月) 22:00:23ごめんなさい。最後は||です。
>>36-37
ありがとうございました。
0039デフォルトの名無しさん
2008/01/14(月) 22:02:52=
((A||C)&&(A||D))&&((B||C)&&(B||D))
=
(A||C)&&(A||D)&&(B||C)&&(B||D)
0040デフォルトの名無しさん
2008/01/14(月) 23:50:56副作用によって結果が変わるかもしれないので注意すべし。
0041デフォルトの名無しさん
2008/01/15(火) 00:04:35Excelでグラフを作成すると、Y軸の補助目盛りが上手い具合に、自動的に
振り分けられるますよね、そのアルゴリズムってどうなってるんだろう?
今、VCでグラフを描画するソフトを書いてるんだけど、そこでちょっと
悩んでるところです、Excelにこだわらず、補助目盛りの振り方の、いいアイデアを
知っていたら教えてホスイ
条件として
負数の値はありません
最大値、最小値は同じ桁の場合もあれば、そうでない場合もあります
グラフのY軸の描画エリアは、グラフの下限値は0ではなく
要素の中の最小値(付近の値)として、最大値は要素の最大値(付近)の値です
この様な条件で、理想的な数式を教えてください
0042デフォルトの名無しさん
2008/01/15(火) 00:12:54階級幅の適切な取り方とか
0043デフォルトの名無しさん
2008/01/15(火) 00:31:35階級幅 適切 グラフ
でググッたら
地理学調査研究法(第3年度)2004年度
http://www2.ipcku.kansai-u.ac.jp/~moto/KyozaiContents/43.htm
ここに、ヒストグラムの書き方で(目的は折れ線グラフだけど数式は同じなんでしょうね・・・多分?)
階級数=1+log(n)/log2 階級幅=(最大値 - 最小値)/階級数で得ることができる。
こういうのがありましたが、これのことでしょうか?
0044デフォルトの名無しさん
2008/01/15(火) 00:38:070045デフォルトの名無しさん
2008/01/15(火) 00:43:43比較的簡単そうなので、実装できそうです
ありがとう
0046デフォルトの名無しさん
2008/01/15(火) 01:27:46難しい数式なしで、なるべく直観的な説明をしているサイトや本は無いでしょうか?
変換処理はインプレイスでなくてもかまいません。よろしくおねがいします。
0047デフォルトの名無しさん
2008/01/15(火) 01:41:440048デフォルトの名無しさん
2008/01/18(金) 01:04:37最小二乗法の直線Bでうまく近似できる、m個の点の集合m'があるとします。
もしn'とm'が混ざってしまっているとき、直線Aと直線Bを求める方法としては
どのようなものがあるのでしょうか。
また、直線ではなく多項式近似などの場合もできればヒントなどをお願いします。
具体的には、×や§みたいな形に点の分布している場合を想像して
悩みまくり・・・どうすればー。
0049デフォルトの名無しさん
2008/01/18(金) 02:42:001個の点を選んで他のグループに移した方が適合度上がるなら移す
それをずっとやる
0050デフォルトの名無しさん
2008/01/18(金) 03:41:02それ基本的に不可能だよ
クラスタリングすれば綺麗にわかれるとか特殊な場合に求められる
0051デフォルトの名無しさん
2008/01/18(金) 04:14:27ありがとうございます。やってみます。
0052デフォルトの名無しさん
2008/01/18(金) 05:09:300053デフォルトの名無しさん
2008/01/18(金) 08:38:43山をみるとかかな。ハフ変換の亜種になるのだろうか。
0054デフォルトの名無しさん
2008/01/18(金) 09:29:22a*|x+d|+b*y+c=0
とかさ。
0055デフォルトの名無しさん
2008/01/18(金) 10:42:442点ずつ1000本とかもできる
0056デフォルトの名無しさん
2008/01/18(金) 11:55:17媒介変数表示で 0〜∞が直線A 負数が直線Bになるような表現が出来れば
いけそうに思えてきた
0057デフォルトの名無しさん
2008/01/18(金) 12:54:010058デフォルトの名無しさん
2008/01/18(金) 18:14:11みたいな式が、交差する2直線になるんで、
これをベースに最小二乗法つか使ってみたら?
0059デフォルトの名無しさん
2008/01/18(金) 18:15:37(ax + by)^2 = (cx + dy + e)^2 とかね。
0060デフォルトの名無しさん
2008/01/18(金) 18:17:500061デフォルトの名無しさん
2008/01/18(金) 18:28:38その式から誤差はどう計算するの?
0062デフォルトの名無しさん
2008/01/18(金) 18:31:50課題らしいから、2直線以外の結果が得られるのはまずいのでは?
>>61
a, b, c, ... 等で微分。
最小二乗法は、式さえ分かってれば直線に限らずどんな関数でもフィッティングできる。
0063デフォルトの名無しさん
2008/01/18(金) 18:33:57yを求めて、複数の答えが出るから、それぞれ (y-y1)^2 出して小さい方を採用すればいいのか
でも、小さい方を採用するって事は非線形だから、解を出すのに
普通の直線みたいに楽に出せないな。
0064デフォルトの名無しさん
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 って条件で式立たない?
0065デフォルトの名無しさん
2008/01/18(金) 18:46:480066デフォルトの名無しさん
2008/01/18(金) 18:48:55f(x, y) = 0 が必要な条件式なんで、全体を a^2 で割って、
f(x, y) = (x + b'y)^2 - (c'x + d'y + e')^2
としていいはずなんで。
0067デフォルトの名無しさん
2008/01/18(金) 18:50:03それは無理。
y = ±(ax + b)
みたいな式が出てくるはず。
“2直線”みたいな変な関数を、
1価の陽関数ではあらわせない。
0068デフォルトの名無しさん
2008/01/18(金) 18:52:010069デフォルトの名無しさん
2008/01/18(金) 19:05:36それだと最小二乗法的な結果得られないって。
0070デフォルトの名無しさん
2008/01/18(金) 19:22:53どっちが小さいかって関数が必要になるから、結局は数式で解けなくて
数値解として、微分して0の箇所を探す事になる。
つまり、2直線の方程式のまま、誤差の小さい方を選択するのと全く同じ事。
でも、微分ゼロ点は複数あるのが確実だから、ランダムにシャッフルしては前回より小さくなってないか
調べる事になるわけで、コレがホントに最小かどうかってのは難しいだろな。
0071デフォルトの名無しさん
2008/01/18(金) 19:24:374次関数として定義できれば、可能なのかな。
自分には数学的に解く自信がないけど。
007271
2008/01/18(金) 19:56:38d_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) の定義も妥当かちょっと迷う。
0073デフォルトの名無しさん
2008/01/18(金) 20:44:31そんな凝るなら、>>64でよくね?
0075デフォルトの名無しさん
2008/01/20(日) 02:19:44だれか解説して。
0076デフォルトの名無しさん
2008/01/20(日) 12:13:00以前、予備知識もなしに diff もどきを作ったことがあるけど、最終的にはパート図で
クリティカルパスを求めるアルゴリズムになって、ちょっと意外な感じがした。もっと効率的な
アルゴリズムも在るんだろうけど。
0077デフォルトの名無しさん
2008/01/20(日) 13:00:240078デフォルトの名無しさん
2008/01/20(日) 21:49:11kNの係数kはどれくらいの大きさになるのでしょうか?どうやって計算したらいいか教えてください。
0079デフォルトの名無しさん
2008/01/20(日) 22:01:19(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 となる
0080デフォルトの名無しさん
2008/01/20(日) 22:03:08どうやったらそんな発想が・・・。limとか使うのかと思いました。
どうもありがとうございます。
。。。Nが2の累乗じゃないときはどうしたらいいでしょうか
0081デフォルトの名無しさん
2008/01/20(日) 22:03:39何が知りたいかわからんが、
1+1/2+1/4/+...=、についてなら、
四角形の半分を塗りつぶして、残りの半分を塗りつぶして、残りの…と続ければわかるよね?
008281
2008/01/20(日) 22:04:190083デフォルトの名無しさん
2008/01/20(日) 22:07:32わからん
008481
2008/01/20(日) 22:27:18わかりづらかったかな。
半分ずつってのが、1/2, 1/4, 1/8,..に対応していて、
半分ずつ塗りつぶしていく→最終的に全部塗りつぶされる≒1
ということなんだけど、説明下手でごめんなさい。
0085デフォルトの名無しさん
2008/01/20(日) 22:29:33SUGEEE
0086デフォルトの名無しさん
2008/01/20(日) 23:20:34計算時間と面積は関係無いだろ?
0087デフォルトの名無しさん
2008/01/21(月) 00:05:46それだといつまでも塗りつぶしが終わらないのでは
0088デフォルトの名無しさん
2008/01/21(月) 00:07:240089デフォルトの名無しさん
2008/01/21(月) 00:25:100090デフォルトの名無しさん
2008/01/21(月) 01:54:4879じゃないけど、そういうのは高校数学の「数列の和」とか
そのあたりでやる気がする。
0091デフォルトの名無しさん
2008/01/21(月) 02:10:44kwskお願いします
0092デフォルトの名無しさん
2008/01/21(月) 02:48:27S = 1 + 2 + .... + 99 + 100
S = 100 + 99 + ... + 2 + 1
2S = 101 + 101 + ... + 101 + 101
2S = 101 x 100 = 10100
S = 5050
では1から101までの数を全部足すといくつですか?
0093デフォルトの名無しさん
2008/01/21(月) 02:48:550094デフォルトの名無しさん
2008/01/21(月) 03:12:48等比級数の総和とかやらんかった?
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なら解き方も全部そのままなんだけどさ。
まだ習ってないっていうなら、そのうち習う。
文系だとやらんかもしれんけど、そんときは数学の先生に聞いてみるといい。
0095デフォルトの名無しさん
2008/01/21(月) 03:14:50を求めなさい
0096デフォルトの名無しさん
2008/01/21(月) 03:16:28N + N/2 + N/4 + N/8 + ... = N (1 + 1/2 + 1/4 + 1/8 + ...) → 2N
0097デフォルトの名無しさん
2008/01/21(月) 03:16:500
0098デフォルトの名無しさん
2008/01/21(月) 03:42:320099デフォルトの名無しさん
2008/01/21(月) 03:44:00わからん。計算方法まとめてあるページ教えて。
0100デフォルトの名無しさん
2008/01/21(月) 04:20:460101デフォルトの名無しさん
2008/01/21(月) 07:32:510102デフォルトの名無しさん
2008/01/21(月) 07:37:57∴ e^-1 = 1 - 1 + 1/2! - 1/3! + 1/4! - 1/5! + ... = 1/2! - 1/3! + 1/4! - 1/5! ....
0103デフォルトの名無しさん
2008/01/21(月) 08:16:06何でなんだろうね
CだとXORの記号なのに
漏れはx**yの方が好み
0104デフォルトの名無しさん
2008/01/21(月) 08:19:320105デフォルトの名無しさん
2008/01/21(月) 10:33:01^ はベキ。
0106デフォルトの名無しさん
2008/01/21(月) 11:25:510107デフォルトの名無しさん
2008/01/21(月) 11:27:40**はFORTRAN由来。
0108デフォルトの名無しさん
2008/01/21(月) 11:30:530109デフォルトの名無しさん
2008/01/21(月) 14:40:55ASR33 (TTY) だったっけ?
言語としては APL かな?
0110デフォルトの名無しさん
2008/01/21(月) 17:39:280111デフォルトの名無しさん
2008/01/21(月) 18:39:35俺は TeX 的に ^ を使う派だが。
0112デフォルトの名無しさん
2008/01/21(月) 20:43:470113デフォルトの名無しさん
2008/01/21(月) 21:08:27011448
2008/01/24(木) 02:25:40質問した者です。
当初やろうとしていたサンプルが少ない場合ですと、>>49の方法が
思っていたより高速でした。時間さえあれば3直線や4直線でも
近似できそうです。ただ、高速化のテクニックが不足しているせいか
サンプル数が増えていくと辛くなってきました。
で、つい先ほどハフ変換の仮実装が完了しました。
資料見ながら6時間もかかりましたが、とりあえず誤差無しの画像データに
うまくフィットする形で直線を表示するところまできました。
画像みたいに点だらけだと楽なのですが、サンプル少ない&誤差が
あるときのデータの誤魔化し方などは考え中です…
ハフ変換は、おそらく統計学での回帰分析や主成分分析、
クラスタリング処理等と何かしら対応関係があるような気がします。
統計学はまだ学習中ですが、なんとか理解していきたいです。
0115デフォルトの名無しさん
2008/01/24(木) 02:42:54時期的にもしかして卒論?
がんばれ
0116デフォルトの名無しさん
2008/01/24(木) 12:03:52ちなみに、↓こんなのが。
ttp://d.hatena.ne.jp/ufcpp/20080120/1200806676
ハフ変換って↓これよね。
ttp://mikilab.doshisha.ac.jp/dia/research/person/shuto/research/0626/tyokusen.html
(ρ, θ) 平面上の曲線の交点をクラスタリングすればそれっぽい結果が得られそうな気がする。
0117デフォルトの名無しさん
2008/01/24(木) 23:15:09やっぱ技術のある人はすごいな
>>116の上のこのソースって言語何?
0118デフォルトの名無しさん
2008/01/24(木) 23:20:480119デフォルトの名無しさん
2008/01/24(木) 23:44:26拡張子知らなかったわ
�d
0120デフォルトの名無しさん
2008/01/25(金) 09:29:40Σexp(-(x-Xn)^2) が最大になるというような定義
0121デフォルトの名無しさん
2008/01/26(土) 02:03:210122デフォルトの名無しさん
2008/01/26(土) 14:59:390123デフォルトの名無しさん
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
この解答でどうよ?
0124デフォルトの名無しさん
2008/01/26(土) 16:01:22答えは正しいです。
電卓で0x7E3Aを10進数に変換すれば検算できます。
手計算なら16、256、4096という数を暗記しておいて
16進数から直接10進数に変換するほうが速いです。
7E.3A
= 0x7E3A / 0x100
= (7 * 4096 + 14 * 256 + 3 * 16 + 10) / 256
= 32314 / 256
= 16157 / 128 (約分する場合)
0125123
2008/01/26(土) 16:30:29凄い!プチ神が、降臨シマスタ
カミングアウトしますが、実は計算がとても苦手なんです
実際試験中に、計算方法(式)が分かっても
途中で計算を間違える人なので物凄くありがたいのですが、一つ質問させてください
7E.3A
= 0x7E3A / 0x100
整数化するために、0x100を乗してますが、どんな場合でも0x100を乗したらいいのでしょうか?
例えば、D7E.3Aの場合
D7E.3A
= D7E3A / 0x100
でいいのでしょうか?
0126123
2008/01/26(土) 16:39:00>>×整数化するために、0x100を乗してますが、どんな場合でも0x100を乗したらいいのでしょうか?
○整数化するために、0x100を除してますが、どんな場合でも0x100を除したらいいのでしょうか?
0127123
2008/01/26(土) 16:40:44○整数化するために、0x100で除してますが、どんな場合でも0x100で除したらいいのでしょうか?
0128デフォルトの名無しさん
2008/01/26(土) 16:54:46D7E3.A = D7E3A / 0x10
D7E.3A = D7E3.A / 0x10 = D7E3A / 0x100
D7.E3A = D7E.3A / 0x10 = D7E3.A / 0x100 = D7E3A / 0x1000
0129デフォルトの名無しさん
2008/01/26(土) 16:57:17何も16進数を持ち出すまでもなく、10進数でも筆算のときに同じことをしているんだぞ。
例えば、123.45に6を掛けるときにどうするか考えてみろ。
一旦小数点のことは忘れて12345*6を計算し、その結果に123.45同様右から二桁のところに小数点を書くわけだ。
0130123
2008/01/26(土) 17:06:10>>129
ありが�d、とてもよくわかりました
ここは凄い板ですね、感動シマスタ
色んな参考書や、サイト見てるけど、124氏のような解説は無かった
0131デフォルトの名無しさん
2008/01/26(土) 19:13:50適当な数だけ下駄を履かせりゃいいだろ。
0132デフォルトの名無しさん
2008/01/26(土) 21:45:150133デフォルトの名無しさん
2008/01/27(日) 01:05:27普通の幾何学からやらんとダメか?
0134デフォルトの名無しさん
2008/01/27(日) 01:36:05ある程度は幾何学わかってないと自分が何やってるかすら
把握できないんじゃないかと思うけど
0135デフォルトの名無しさん
2008/01/27(日) 06:20:34お前等にはプログラミングとか向いてないよ。
馬鹿すぎる。
諦めろ。
0136デフォルトの名無しさん
2008/01/27(日) 10:47:040137デフォルトの名無しさん
2008/01/27(日) 11:04:49中学生が会社に「プログラミングをさせてください」ってお願いするのか?
0138デフォルトの名無しさん
2008/01/27(日) 11:23:00現代の現場でのプログラミングの主流はライブラリ検索型。
つまり、全てのライブラリが用意されていて、そのライブラリの使い方を調べて組み立てるだけ。
だからこういう質問が出る方が適性があるとも言える。
0139デフォルトの名無しさん
2008/01/27(日) 12:47:02死ね
0140デフォルトの名無しさん
2008/01/27(日) 16:46:57いちばんやさしいかは知らんが
http://www.amazon.co.jp/dp/4839920818/
0141デフォルトの名無しさん
2008/01/28(月) 19:47:29逆ポーランド表記法の問題です、式と答えが、あってるかどうか教えてください
【問題】
Y = ( A + B × C ) ÷ ( D - E )
上記の式を、逆ポーランド表記法で表しなさい
【式】
括弧の中から先に
Y = ( ABC×+ ) ÷ ( DE- )
括弧と括弧の割り算
Y = ABC×+DE-÷
最期に=の計算
YABC×+DE-÷=
【答え】
YABC×+DE-÷=
これで合ってますでしょうか?
0142デフォルトの名無しさん
2008/01/28(月) 21:01:06ポーランド表記法に改めて
「逆」を付ける理由が分からん
0143デフォルトの名無しさん
2008/01/28(月) 21:18:370144デフォルトの名無しさん
2008/01/28(月) 21:21:27----
で、問題のほうだが、
Y= の部分が問題に含まれているのが激しく微妙すぐる。
RPNへの書き換え自体は問題ないが、そのRPNの式に従ってスタック計算機で
計算した場合、計算の最後は
------------ スタックトップ
( A + B × C ) ÷ ( D - E )
------------
Y に元々入っていた値
----------------------------------------- スタックボトム
という状態のスタックに "=" という演算子による演算を適用する、ということになる。
問題の式における Y とか = の意味がそういうものだというのなら問題ないのだが。
0145141
2008/01/28(月) 21:50:14後置表記法(逆ポーランド表記法)では、例えば、式 X=(A−B)×C を
XAB−C×=と表現する。
次の式を後置表記法で表現したものはどれか。
X=(A+B)×(C−D÷E)
ア XAB+CDE÷−×=
イ XAB+C−DE÷×=
ウ XAB+EDC÷−×=
エ XBA+CD−E÷×
答え ア
この問題と解答を手掛かりに、練習問題を自分で考え、質問させてもらいましたので
果たして、自分の考え方(式)や答えが正しいのかさっぱり分かりません、
もし、このような問題だった場合、先の解答、考え方は、正しいのでしょうか?
0146デフォルトの名無しさん
2008/01/28(月) 22:24:47それを読み出すときに文脈によって右辺値または左辺値として
評価されるという言語かもしれないじゃないか
それにそもそも=は比較演算子かもね
0148デフォルトの名無しさん
2008/01/29(火) 06:31:53post-orderトラバースすればRPNに変換できるよ。post-orderというのは、その
ノードを抜ける(親ノードの処理に移る)ときにノードの値の表示を行うという
こと。
0149デフォルトの名無しさん
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になおしてもらえるならお願いします(×_×)
0150デフォルトの名無しさん
2008/01/29(火) 21:34:17まず、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 }
かな。
0151デフォルトの名無しさん
2008/01/30(水) 01:10:11cos(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) }
0152デフォルトの名無しさん
2008/02/11(月) 12:05:23tは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変換/ラプラス変換や周波数特性が凸凹でないという条件と同じですから
ヒント等ございませんでしょうか?
0153デフォルトの名無しさん
2008/02/11(月) 12:15:20とりあえず、周波数特性が凸凹でないってのと、
その関数の単調増加性は全然関係ないと思う。
0154デフォルトの名無しさん
2008/02/11(月) 12:52:463次関数で、正のものをえらんで積分すればよい
0155デフォルトの名無しさん
2008/02/11(月) 12:56:40極値は簡単にわかる
0156152
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次式の積の形に分解して解けばよいわけですね。
結局次数におうじて場合分けしてゆくしかないとしても、これなら解けそうに思えてきました。
ヒントありがとうございました。
0157デフォルトの名無しさん
2008/02/11(月) 14:37:080158デフォルトの名無しさん
2008/02/11(月) 15:53:202次式は 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次式以上もこの方式で拡張出来る?
0159152
2008/02/11(月) 19:06:08それで拡張してゆきます。
0160デフォルトの名無しさん
2008/03/20(木) 17:44:420161デフォルトの名無しさん
2008/03/20(木) 17:49:340162デフォルトの名無しさん
2008/03/20(木) 21:52:130163デフォルトの名無しさん
2008/03/21(金) 10:51:470164デフォルトの名無しさん
2008/03/22(土) 00:24:11大丈夫。MIT で採用してるのを勉強するのが吉。
もうひとつの Scheme 入門
http://www.shido.info/lisp/idx_scm.html
文面中の mit-scheme-7.7.1-ix86-win32.exe はここにある。
http://ftp.gnu.org/gnu/mit-scheme/stable.pkg/7.7.1/mit-scheme-7.7.1-ix86-win32.exe
0165デフォルトの名無しさん
2008/06/24(火) 23:39:390166デフォルトの名無しさん
2008/08/15(金) 07:11:120167デフォルトの名無しさん
2008/09/27(土) 17:20:52lognはnが10なら1だからO(n)の方が速いと思ってるのですが、
とあるブログでO(nlogn)の方が速いって言っててわからなくなりました
0168デフォルトの名無しさん
2008/09/27(土) 17:26:49そのブログは嘘
0169デフォルトの名無しさん
2008/09/27(土) 17:28:02167の自分の考えは間違っていないですか?
0170デフォルトの名無しさん
2008/09/27(土) 17:30:06オーダーの問題じゃなくて n が小さい時の挙動の話か。
0171デフォルトの名無しさん
2008/09/27(土) 17:32:13だいたい自分の理解の仕方は間違っていないということはわかりました
ありがとうございました
0172デフォルトの名無しさん
2008/09/27(土) 17:32:270173デフォルトの名無しさん
2008/09/27(土) 17:35:54ttp://monsho.blog63.fc2.com/blog-entry-83.html
0174デフォルトの名無しさん
2008/09/27(土) 17:36:52(底が10の対数、という意味ではないから)
nlognのほうが早い、ってことはないな。
0175デフォルトの名無しさん
2008/09/27(土) 17:41:35そうなんですか
てっきり常用対数なのかと思ってました
0176デフォルトの名無しさん
2008/09/27(土) 17:46:310177デフォルトの名無しさん
2008/09/27(土) 18:11:04やっぱ n が小さい時の挙動じゃん。
アルゴリズムの改良って、
オーダーが小さくなる代わりにオーバーヘッドが大きくなることがよくある。
この場合、
オーダーが小さい → n を大きくしても平気
オーバーヘッドが大きい → n が小さい時は逆に不利
0178デフォルトの名無しさん
2008/09/27(土) 18:33:34少ない要素数に対して何度も適用する場合においては有利になるとかなんかな?
実例としてはどんなのがあるんだろう
0179デフォルトの名無しさん
2008/09/27(土) 18:35:14>このオーダーの計算は n が∞に向かった場合の処理の速さを相対的に表現したものに過ぎません。O(n) と O(nlogn) なら O(nlogn) の方が速いわけです。
この一文に関しては前後の脈絡関係なく単独で判断できると思うんですよ
そうすると間違っているということじゃないんですか?
0180デフォルトの名無しさん
2008/09/27(土) 18:41:350181デフォルトの名無しさん
2008/09/27(土) 18:46:51その認識で合ってる
0182デフォルトの名無しさん
2008/09/27(土) 18:48:22主語はどっちですか
0183デフォルトの名無しさん
2008/09/27(土) 18:51:260184デフォルトの名無しさん
2008/09/27(土) 18:55:500185デフォルトの名無しさん
2008/09/27(土) 18:57:18いやどっちが合ってるって言ったのか確信が持てなくて
まあ『認識』って書いてあるから俺の考えてることで合ってるって意味だと思いますけど
ブログの方が合ってると言うなら『記述』とか書くでしょうから
0186デフォルトの名無しさん
2008/09/29(月) 01:49:17f(n)/g(n)→∞(n→∞)ならg(n)のほうがnの増加に対して効率がいい。
f(n)/g(n)→0(n→∞)ならf(n)のほうがnの増加に対して効率がいい。
アルゴリズムイントロダクション第一巻読め。
0187デフォルトの名無しさん
2008/09/29(月) 01:54:230188デフォルトの名無しさん
2008/09/29(月) 09:52:290189デフォルトの名無しさん
2008/09/30(火) 00:26:00数学は抽象の宝庫であると。
集合論が一番の基礎だと思うのですが、抽象度の高いクラス設計に必要な地力をつけるために
数学を学ぶとしたら、集合論からどのような分野にステップアップしていけばよいですか?
0190デフォルトの名無しさん
2008/09/30(火) 01:28:12現実世界ではペンキ塗ったりワックスがけしたりして空手が強くなるということはない。
0191デフォルトの名無しさん
2008/09/30(火) 10:34:46アスペクト指向やらと試行錯誤といった状態だと思う。
またマシンの性能が確保できる時はいいけども、
組み込みや容量・速度といった制限のかかっている場合は、
クラスを使わないようにすることがベストなんて場合もある。
作業者のスキルが揃わなかったり、昔ながらの人が居たりで、
グローバル変数べったりのコードを書かざる得ない状況だって実務的にはあった。
数学は大学に入る時の能力で後は下がる。
歳を取ったら新しいロジックを頭で追いかけ切れなくなって
結局はパターン的に処理してるだけ時もくる。
ただ何か頑張ろうという意欲は大切だと思うので、
今、目の前の問題に関するところから広げていくくらいでいいのでは思う。
0192189
2008/09/30(火) 23:39:17試行錯誤はそこそこしてるつもりです。
これまでに自分で設計したクラス数は大小あわせて100〜200くらいでしょうか。
最初に比べればずっとうまくなったと思ってますがやはりまだまだわからないことが多い。
無手勝流では限界があるような気がしてます。
数学を学ぶことで抽象的な発想を得られるのではと思いました。
>>191
目の前の問題に関するところから広げていくのも確かに現実的な方法ですが、
叶うならば体系的な知識を学んで骨太の地力を付けたいと思っています。
0193デフォルトの名無しさん
2008/10/01(水) 00:41:31そんな貴方には代数がオヌヌメ。
単に抽象を求めるなら、集合論だけでも相当イカれた領域まで突っ走れるけど、
計算機からは離れていってしまう感が強いので。
0194デフォルトの名無しさん
2008/10/02(木) 00:05:040195デフォルトの名無しさん
2008/10/05(日) 16:47:460196デフォルトの名無しさん
2008/10/05(日) 17:56:590197デフォルトの名無しさん
2008/10/05(日) 17:59:15「計算」と「数学」の違いはわかるか?
0198デフォルトの名無しさん
2008/10/05(日) 19:57:45スレが荒れるから
0199デフォルトの名無しさん
2008/10/07(火) 10:43:340200デフォルトの名無しさん
2008/10/07(火) 11:51:290201デフォルトの名無しさん
2008/10/07(火) 12:38:460202デフォルトの名無しさん
2008/10/07(火) 13:58:47このスレでアホな質問してる>>199は絶望的
0203デフォルトの名無しさん
2008/10/07(火) 19:43:08高校の数学が理解できるなら遅くない。
高校の数学が怪しいならやめとけ。
数列とか理解できるか?
0204デフォルトの名無しさん
2008/10/07(火) 20:00:08人々の権利を守る為にと
独学で数学とプログラミングを学んで暗号システムを開発したおっちゃんだっている。
気合があれば余裕。
0205デフォルトの名無しさん
2008/10/08(水) 16:24:27実現したい情熱さえあれば何とかなるべ。
車や飛行機作るのと違ってあまり高価な設備投資いらないしな。
0206デフォルトの名無しさん
2008/10/11(土) 22:29:39↑テキスト比較ツール「DF」のように2つのテキストファイルを比較して
お互い一致しない行を探し出すプログラムを自前で組みたいとおもっています。
(C#を予定)
この手のプログラムを組むにはどのようなアルゴリズムを調べれば実現できる
ようになるでしょうか?
0207デフォルトの名無しさん
2008/10/11(土) 23:01:150208デフォルトの名無しさん
2008/10/12(日) 11:07:17同じで無い行が 違いのある行 として扱うようにすればいいんじゃないの
0209デフォルトの名無しさん
2008/10/19(日) 14:41:19ttp://b.hatena.ne.jp/entrymobile/548258
0210デフォルトの名無しさん
2008/11/15(土) 21:28:450211デフォルトの名無しさん
2008/11/27(木) 22:15:16反発係数が1で重さが1の物体aと物体bが衝突した後の速度って
物体aがVb(衝突前の物体bの速度)
物体bがVa(衝突前の物体aの速度)
であってます?
0212デフォルトの名無しさん
2008/11/27(木) 22:30:22あってません。
0213デフォルトの名無しさん
2008/11/27(木) 22:35:23速度が交換する
0214デフォルトの名無しさん
2008/11/27(木) 22:36:48どういう理屈なんだろね
0215デフォルトの名無しさん
2008/11/27(木) 23:15:33どういう理屈もなにも、止まっている物体に動いている物体がぶつかったときの事を考えれば判るだろ?
衝突したのに止まっている物体が止まったままで動いている物体が動き続けていたら気持ち悪いじゃないか。
0216デフォルトの名無しさん
2008/11/27(木) 23:30:380217デフォルトの名無しさん
2008/11/27(木) 23:47:01斜めにぶつかろうと同じことだよ。
相対論的な速度でないのだから、片方の物体と等速度で移動している系から観測すれば
その物体は静止しているのと同じように振舞うのだから。
0218デフォルトの名無しさん
2008/11/28(金) 03:25:56○
↓
○
みたいな意味じゃね?
0219デフォルトの名無しさん
2008/11/28(金) 05:42:170220デフォルトの名無しさん
2008/11/28(金) 07:42:12テキトーなこというなよ
現在進行形で悩んでる俺に解説キボン
0221デフォルトの名無しさん
2008/11/28(金) 07:52:37要は、ビリヤードで言うところのイマジナリボールだ。
0222デフォルトの名無しさん
2008/11/28(金) 10:01:420223デフォルトの名無しさん
2008/11/28(金) 10:40:02責務とか言われても曖昧でよくわかりません
0224デフォルトの名無しさん
2008/11/28(金) 10:43:17クラスの継承関連なら関係づけられそうだけど、オブジェクト指向となるとどうなんだろう?
0225デフォルトの名無しさん
2008/11/28(金) 12:08:18与太話でやったことはあるけれど、論文は見たこと無いなあ。
0226デフォルトの名無しさん
2008/11/28(金) 12:45:000227デフォルトの名無しさん
2008/12/16(火) 20:41:410228デフォルトの名無しさん
2008/12/16(火) 21:01:100229デフォルトの名無しさん
2008/12/16(火) 21:15:400230デフォルトの名無しさん
2008/12/16(火) 22:00:08なりました
マジで感動しました
ありがとうございます
これからは安心して無駄に正規化しまくろうと思います
0231デフォルトの名無しさん
2008/12/17(水) 00:31:01どうやって確認したんだ?
全てのベクトルで試したか?
漏れは無いか?
つーか、コンピュータにやらせて感動というのは、この場合はおかしい。
手で計算して感動するべきだ。
もし手で(というか定義見て理解して)納得して感動したというなら謝る。そして偉い! その調子で頑張れ。
0232デフォルトの名無しさん
2008/12/17(水) 00:39:04?
0233デフォルトの名無しさん
2008/12/18(木) 22:30:19内積はあるのに・・・
もうPCが発売されてから何年経つんだろうか・・・
「外積」を辞書登録する恒例行事はもうやめにしようぜ
0234デフォルトの名無しさん
2008/12/19(金) 00:00:24数学・科学用語は軽視されてる感がある。
0235デフォルトの名無しさん
2008/12/19(金) 03:28:11登録単語を見返しても登録されていない。
0236デフォルトの名無しさん
2008/12/19(金) 05:58:462007ってOfficeに入ってるやつか?
普通のIMEでは外積は単語登録しないとでないんだよ
0237デフォルトの名無しさん
2008/12/19(金) 08:03:30モデルが数式のときはバンプマップは高さマップを作るだけだったんですが
ポリゴンのときには法線マップが引数から流れてくるんですけどこれ捨てちゃっていいでしょうか?
0238デフォルトの名無しさん
2008/12/19(金) 08:08:410239デフォルトの名無しさん
2008/12/19(金) 09:33:41数学用語系の辞書作ってる人いないのかな?
>>237
スレ違いだし、他で聞いても情報量少なすぎて多分誰も答えられない
0240デフォルトの名無しさん
2008/12/19(金) 11:28:37http://hiramatu-hifuka.com/onyak/kotoba-1/sugaku.html
0241デフォルトの名無しさん
2008/12/19(金) 11:40:44科学用語辞書ってないのか...
0242デフォルトの名無しさん
2008/12/19(金) 18:58:44IMEの辞書はとてもそのままじゃ使えない
0243デフォルトの名無しさん
2008/12/19(金) 19:25:27ことえりは変換できる。
Mac のうんこ IME と思ってたが、意外とやるなあ。
0244デフォルトの名無しさん
2008/12/20(土) 22:04:43ATOK2006以降だと外積変換できた
0245デフォルトの名無しさん
2008/12/28(日) 01:56:100246デフォルトの名無しさん
2009/01/08(木) 09:12:100247デフォルトの名無しさん
2009/01/08(木) 21:30:39ゲームプログラミングのための3Dグラフィックス数学
やっぱこれでしょ
0248デフォルトの名無しさん
2009/01/10(土) 02:41:25共立出版 情報数学講座2 「情報代数」 小野寛晰 著
0249デフォルトの名無しさん
2009/01/10(土) 17:09:080250デフォルトの名無しさん
2009/01/11(日) 20:10:070251デフォルトの名無しさん
2009/01/24(土) 15:22:060252デフォルトの名無しさん
2009/01/24(土) 15:29:190253デフォルトの名無しさん
2009/01/24(土) 15:36:45でそれ使ってwebプログラミングしたい
0254デフォルトの名無しさん
2009/01/24(土) 15:39:030255デフォルトの名無しさん
2009/01/24(土) 18:42:240256デフォルトの名無しさん
2009/01/26(月) 02:49:35本には3*3の行列になってますよね。
3列目と3行目にダミーの1と0が入ってたと思いますが、
あれの意味がわかりません。
よろしくお願いたい酢します
0257デフォルトの名無しさん
2009/01/26(月) 02:51:51何にも知らないのだったら、まずは同次座標について勉強してみるんだ。
その上で分からないことがあったら、またここへ来ればいい。
0258デフォルトの名無しさん
2009/01/26(月) 06:42:13同次座標 アフィン変換で検索するといい
0259デフォルトの名無しさん
2009/01/26(月) 08:21:220260デフォルトの名無しさん
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(フレーム)? */
0261デフォルトの名無しさん
2009/01/29(木) 14:08:22A1が1の時は、B6はC1
A1が2の時は、B6はC2
A1が3の時は、B6はC2
B6とC1〜C3をリンクしたい場合、B6の関数はどうすればいいか教えてください。
0262デフォルトの名無しさん
2009/01/29(木) 20:23:56どこをどう迷い込んだか知らんが
板違いに気付けよ。
0263デフォルトの名無しさん
2009/01/30(金) 19:49:03物理学と数学を勉強しすぎると時間がいくらあっても足りないですよね。
ちなみに大学課程の話です。
0264デフォルトの名無しさん
2009/01/30(金) 20:25:43=address(1;a1)
0265デフォルトの名無しさん
2009/01/30(金) 22:00:08数学はベクトル・行列、物理は運動方程式ぐらいは理解して無いとやばいんじゃね?
「ここまで勉強すれば十分」なんて業界は知らない。
0266デフォルトの名無しさん
2009/01/30(金) 22:42:11ゲームプログラマになりたいなら、その手の本がいっぱいあるだろ。
セガの人が書いた本とか新人教育向けの本とか。オーライリとか。
ちなみに今の日本のゲーム業界は、技術的・理論的なところでは欧米に完全に負けている。
どの辺が負けているかを本などから読み取ってみるのはどうかな?
大学課程では、ゲームプログラムとは離れて、所属した研究室での最先端をしっかりと見につければ良いと思う。
0267デフォルトの名無しさん
2009/01/30(金) 22:56:160268デフォルトの名無しさん
2009/01/30(金) 22:57:23実践的に理解している必要がある
0269デフォルトの名無しさん
2009/01/30(金) 23:18:10リアルタイムな3Dゲームに関しては、
微積 線形代数 計算量とアルゴリズム 近似と誤差
物理は別に要らんが、微小時間と差分に関する概念はきちんと抑えておくこと。
あと自分で調べられないとどんな職業でもやってけない。
0270デフォルトの名無しさん
2009/02/02(月) 16:17:51東京都 16
大阪府 26
新潟県 1
富山県 2
京都府 2
神奈川県 1
山梨県 2
上記から、「同じ都道府県同士でバッティングさせない」という条件下で
2人1組のペアを作るとします。
その場合に、
どうしても余ってしまって同じ都道府県同士で組まざるを得ないのは
何人いるか、を求めたいのですが、
その場合どういう計算式が考えられますでしょうか。
0271デフォルトの名無しさん
2009/02/02(月) 16:21:250272デフォルトの名無しさん
2009/02/02(月) 17:50:26ペアを作ったら人数を更新する。人数が0になったグループは消す。
グループが一つ以下になるまでこれを繰り返す。
残ったグループの人数が答え
0273デフォルトの名無しさん
2009/02/02(月) 17:53:350274デフォルトの名無しさん
2009/02/02(月) 18:03:170275デフォルトの名無しさん
2009/02/03(火) 03:00:15その前に、ゲームプログラマってそのゲームのストーリーは知らされているものなの?
0276デフォルトの名無しさん
2009/02/03(火) 03:45:060277デフォルトの名無しさん
2009/02/03(火) 03:54:14いろんな講座を見てみたけど、こんな簡単なプログラムでも数学・物理の知識がいりますね。
高校中退でそのまま文系大学受けたから、ぜんぜん手が出ない・・・
0278デフォルトの名無しさん
2009/02/03(火) 04:10:30計算力は中学数学レベルで十分
0279デフォルトの名無しさん
2009/02/03(火) 04:12:30オブジェクトが球だけってならともかく
数学・物理の知識だけじゃまず間違いなくあなたの望むスピードじゃ動作しない。
0280デフォルトの名無しさん
2009/02/03(火) 04:34:340281デフォルトの名無しさん
2009/02/03(火) 06:59:210282デフォルトの名無しさん
2009/02/03(火) 08:26:450283デフォルトの名無しさん
2009/02/03(火) 09:06:44単に衝突したかどうかを検出するのは
難易度段違い
0284デフォルトの名無しさん
2009/02/03(火) 09:12:210285デフォルトの名無しさん
2009/02/03(火) 10:26:38「計算」の意味についての理解が飛躍的に上がるのは確か。
0286デフォルトの名無しさん
2009/02/03(火) 10:37:13まず、大きさ同じとか、速度同じとか、回転しないとかそういう条件からやってみれば。
昔はこういうところをパソコン雑誌でやっていたものだけどね。
0287デフォルトの名無しさん
2009/02/03(火) 11:43:31http://www.amazon.com/dp/1558607323
0288デフォルトの名無しさん
2009/02/03(火) 12:33:08やったりしたいのかで話はだいぶ違うけどな。
0289デフォルトの名無しさん
2009/02/03(火) 15:38:34球同士なら半径でコリジョン処理出来るけど、
多面体になった途端、衝突パタンが面、辺、頂点と分かれ、衝突位置によって物体が回転したりするわけだ。
内部的には描画に合わせて単位時間で回転移動の処理をすることになるだろうけど、
更に厳密に処理するなら衝突発生時は各物体を衝突の瞬間まで戻して再計算しなきゃならんとか、
球同士ですら移動ベクトルが早すぎれば半径コリジョンだとすり抜ける場合もあるから考慮しないと・・・とか、
考え出すとキリが無い。
0290デフォルトの名無しさん
2009/02/03(火) 17:29:380291デフォルトの名無しさん
2009/02/03(火) 21:47:36積み上げたドラム缶の山が崩れるのでは
厳密さが違いすぎる。
0292デフォルトの名無しさん
2009/02/03(火) 23:59:14自分の実装するゲームに合うように適切に省略を行う必要がある。
弾幕シューティングみたいに、
オブジェクトが遅くて、点対面な衝突判定なら>>284でいいだろうし、
3次元マップと車の衝突判定とかになると、
かなり厳密な
途中で面倒になった。
0293デフォルトの名無しさん
2009/02/04(水) 00:01:400294マイク ◆gZ6OoOjBU6
2009/02/05(木) 07:27:45かなり有益な部類に属するものだろう。
0295デフォルトの名無しさん
2009/02/06(金) 21:42:40チョット興味あるんだけど、お勧めの教材とかある?
0296デフォルトの名無しさん
2009/02/06(金) 22:56:30その位自分で探したら?
0297デフォルトの名無しさん
2009/02/06(金) 23:37:290298デフォルトの名無しさん
2009/02/07(土) 10:45:590299デフォルトの名無しさん
2009/02/08(日) 07:36:340300デフォルトの名無しさん
2009/02/08(日) 07:36:550301デフォルトの名無しさん
2009/02/13(金) 01:14:54[2] 問題文(含コード&リンク):
1から9までの数字を縦横方向に同じものが並ばないように下記の例のように並べる
並べ方が全部で何通りあるか
少なくとも10の何乗かのオーダーで解答ください
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:
例
534681297
685293714
948367125
153472869
426538971
261759483
817945632
379126548
792814356
0302デフォルトの名無しさん
2009/02/13(金) 01:23:07それが縦方向に重複しているかどうかを確認するという
プログラムを書く
そしてその結果を集計してモンテカルロ法で確率を計算
それを 9!^9 にかけることで結果を得る
がんばれ
0303デフォルトの名無しさん
2009/02/13(金) 02:04:31マルチ死ね
Python の宿題ここで答えます Part 1
http://pc11.2ch.net/test/read.cgi/tech/1153585095/785
C/C++の宿題片付けます 122代目
http://pc11.2ch.net/test/read.cgi/tech/1232029287/542
Rubyの宿題教えてください。2限目
http://pc11.2ch.net/test/read.cgi/tech/1200175247/476
0304デフォルトの名無しさん
2009/02/14(土) 19:12:16普通は左からだろ。
0305デフォルトの名無しさん
2009/02/14(土) 19:14:050306デフォルトの名無しさん
2009/02/14(土) 19:21:18座標そのものを回転するからだよ
0307デフォルトの名無しさん
2009/02/14(土) 19:30:13見たことないぞ。
>座標空間にあるものを回転するのではなく 座標そのものを回転するからだよ
それぐらい知ってるって。
(1,0)を(sinx,cosx)に、(0,1)を(sin(x+90),cos(x+90))に基本ベクトルを取り替えることによって
回転を実現させている。
0308fushianasan
2009/02/14(土) 19:48:320309デフォルトの名無しさん
2009/02/14(土) 19:53:33右からかけるのと左からかけるのに意味がある。
法線とかの場合、行列が左に来る。
座標と法線って内積をとるわけだけど、その時に、
(x A)・(B n) = x・n
x: 座標ベクトル
A: 座標に関する変換行列
B: 法線に関する変換行列(A の逆行列)
y: 法線
と書けるようにするため。
0310デフォルトの名無しさん
2009/02/14(土) 19:59:49SGI の昔の GTE がそうだったとか、そんなんじゃない?
実際回路は簡素になるし。
全ての行列を転置して扱うとも言えるけど。
0311デフォルトの名無しさん
2009/02/14(土) 20:01:310312デフォルトの名無しさん
2009/02/15(日) 02:15:26>>307
>>307
>>307
0313デフォルトの名無しさん
2009/02/15(日) 10:48:34ベクトルを縦にとるか横に取るかじゃないの?
違ったらごめんなさい。
0314デフォルトの名無しさん
2009/02/16(月) 16:56:38なんか間違ったこと書いたかな。。。
0315デフォルトの名無しさん
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;
}
0316デフォルトの名無しさん
2009/02/16(月) 20:13:45その式だと,マクローリン展開が負の係数で終わってるので
負の方向に誤差が出やすい。
ただ,マクローリン展開が有効な範囲(剰余項が十分小さい範囲)では
たいして問題にはならない程度の誤差のはず.
0317デフォルトの名無しさん
2009/02/16(月) 21:15:22なるほどね。ありがとう。
正直展開の停止基準がよく解ってないんだけど、
何を基準にするのがベター?
0318デフォルトの名無しさん
2009/02/17(火) 00:51:57マクローリン展開の定義式から誤算も見積もれるから
必要な精度に応じて何回ループ回すか決めればいいのでは。
あと、ほんとに精度必要なら、
浮動小数点数の性質上、小さい値から足してった方が誤差減る。
++i するんじゃなくて、最初に規定精度分の桁から初めて --i。
0319デフォルトの名無しさん
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
のようにするとかなー
0320デフォルトの名無しさん
2009/02/17(火) 07:16:14打切り誤差と桁落ち誤差のオーダーが合うようにするのが良い,と言われている.
けど,そんなに精度を気にするなら,そもそも double で計算するのがマズイし,
単純なマクローリン展開でやるのも良くない.
double なら 10^{-10} くらいで一致していれば満足したほうが精神衛生上良いよ.
0321デフォルトの名無しさん
2009/02/17(火) 08:06:26sin π/2 - x = cos x とかの変換公式使って、
x の範囲を π/4 以下に収めてから級数展開するのがいい。
0322272
2009/02/18(水) 09:21:00>>272
レスありがとうございます。
とりあえず>>270の考え方でプログラム組めました。
さらに>>270に、「常に余りが最も少なくなるように組み合わせる」
という条件を追加したら、どういう考え方になるでしょうか?
現状では組み合わせ方によって、「余ってしまって同じ都道府県同士で
組まざるを得ない」人数が、2人になったり6人になったり変動します。
0323デフォルトの名無しさん
2009/02/18(水) 10:52:49なぜ君が272になってんのさ
0324デフォルトの名無しさん
2009/02/18(水) 18:01:38272のアルゴリズムには同一条件下で結果が変動する要素は無いと思うけど
ソート順でペアになる県は変わるが、最終的に残るのが
「最も少ない余り」=「同じ都道府県同士で組まざるを得ない」
実装に失敗してるだけじゃね?
0325デフォルトの名無しさん
2009/02/18(水) 19:09:32ありがとう頑張ってみるよ。
一応、標準ライブラリの様に円を一周しても
きっちり1になるような精度までは欲しかったんだ。
0326デフォルトの名無しさん
2009/02/18(水) 21:23:33標準ライブラリで,1周してゼロになるのは >>321 の言うような実装だから.
(cos(2π) = cos(0) = 1 と計算されている)
これをせず,ただのマクローリン展開だけでやろうとすると,
n 次の項は (2π)^n/n! くらいで,これが 10^{-16} 程度になるには n 〜 40 くらい.
というわけで,テイラー展開する次数が全然足りてないよ.
0327デフォルトの名無しさん
2009/02/19(木) 20:06:37チェビシェフ多項式による近似なら誤差が均等になるぞ。
0328デフォルトの名無しさん
2009/02/20(金) 18:05:500329デフォルトの名無しさん
2009/02/21(土) 16:40:430330デフォルトの名無しさん
2009/02/21(土) 16:54:42∞でまとめちゃっていいのか?
0331デフォルトの名無しさん
2009/02/21(土) 17:00:07Si = if, Entonces = then なので,上を認めたら下はどうなる?ということ.
上が数学的に正しいかどうかは別問題.
0332デフォルトの名無しさん
2009/02/21(土) 21:49:220333デフォルトの名無しさん
2009/02/21(土) 22:05:000334デフォルトの名無しさん
2009/02/22(日) 00:32:55ほかにもlimではなくてl.i.m.というのもあるから紛らわしい
0335デフォルトの名無しさん
2009/02/24(火) 11:17:33>>328はギャグだろ?
0336デフォルトの名無しさん
2009/02/24(火) 23:46:530337デフォルトの名無しさん
2009/03/01(日) 21:39:36大抵 n/1に変えてしまうとかn/0=0と変えてしまうとか小手先な
手段をとってるけど数学的に正しい解釈ならどうすべきだろう?
0338デフォルトの名無しさん
2009/03/01(日) 21:46:040339デフォルトの名無しさん
2009/03/01(日) 21:47:08数学的には Not A Number にするか例外投げるのがが一番正しい気がする。
ただ、計算機上では精度の問題で、
ものすごい小さな数と0が区別つかないんだから、
ものすごい大きな数と無限大を区別しないって方針も
ある意味正しいと思う。
0340デフォルトの名無しさん
2009/03/01(日) 21:51:37何故 n/0 なんてものが現れて,何のために n/0 を表現したいの?
普通はこういうのは出ないようにできるもんだと思うけど.
どうしても表現しなくちゃいけなくて,なおかつ数学的にも
真っ当なものを求めるなら,wheel というものがある.
ただ,それが目的に適うものかどうかは不明.
0341デフォルトの名無しさん
2009/03/01(日) 22:15:16なるほどね〜。
>>340
まぁ、滅多に使うことじゃないんだけど直線型の座標が必要になった時((0,1)から(0,1024)へとか)
とかにちょろっとね。ifで分岐するとパイプラインに影響及ぼしそうで式だけで解決できる良さげな
方法はないかなと。
0342デフォルトの名無しさん
2009/03/01(日) 22:22:11要するに斉次座標?
斉次座標の場合、実数に±∞相当の元を付け加えた集合と同値とみなせるから、
n/0 は∞扱いでいいと思う。
0343デフォルトの名無しさん
2009/03/02(月) 05:47:40直線を表現するならプリュッカー座標でしょ.
実数体上なら∪{∞}ともwheelとも同値.
0344デフォルトの名無しさん
2009/03/02(月) 22:24:06言語の指定も型の指定も無いけど、
標準的な浮動小数点型を持つ言語なら大抵言語レベルで実装されてると思われ。
例えばCならANSIで規格決まってるし、演算も可能。
ttp://docs.sun.com/app/docs/doc/805-7885/6j7dqggbr?l=ja&a=view の極値表現
つか、どう考えても n/0=0 はありえなくね?
パイプライン気にするよりも、実装のマズさを気にするべき。
0345デフォルトの名無しさん
2009/03/03(火) 09:44:02浮動小数点が数学かというと微妙だが。スレタイ的に。
0346デフォルトの名無しさん
2009/03/03(火) 22:09:24>>339 が理由だし。
0347デフォルトの名無しさん
2009/03/18(水) 10:27:39とかって何の数学になるんですか?
ライブラリ
もありまつか?
0348デフォルトの名無しさん
2009/03/18(水) 11:13:52計算幾何学、も数学じゃないな。
まあ数学では幾何学じゃないかな。
0349デフォルトの名無しさん
2009/03/18(水) 11:17:56ライブラリは、もっと具体的に何をやりたいかによる。
レイトレとかならグラフィック用のライブラリだし、
レンズ設計ならそれ専用のソフトがある。
0350347
2009/03/18(水) 11:22:59>レンズ設計ならそれ専用のソフトがある。
こちらが知りたいです。
あるレンズ(レンズは設計しませんがパワー計算みたいな)だと、焦点合うだとか、ボケるだとか。
ボケた画って書けるんでしたっけ?グラフィックライブラリで。
0351デフォルトの名無しさん
2009/03/18(水) 11:32:400352347
2009/03/18(水) 11:42:21シミュレーション結果が殆どで、ソフトウェアライブラリ探すのは大変そうですえね。
0353デフォルトの名無しさん
2009/03/18(水) 12:11:42物理レンダラにはレンズ特性もシミュレートしてボケとかも表現されるのもあるけど?
0354347
2009/03/18(水) 12:16:05ちょー興味あります。
0355デフォルトの名無しさん
2009/03/18(水) 13:58:570356デフォルトの名無しさん
2009/03/18(水) 14:19:24つーかそろそろスレ違いっぽいな。
0357デフォルトの名無しさん
2009/03/18(水) 14:59:27これを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));
こんな感じで変形してるんですが、ここで行き詰まってしまいました。
どなたかヒントだけでもいただけないでしょうか(;´Д`)
0358デフォルトの名無しさん
2009/03/18(水) 15:01:13数学板で聞け
0359デフォルトの名無しさん
2009/03/18(水) 15:08:58初等関数では表せない。
LambertのW関数を用いれば書ける。
0360デフォルトの名無しさん
2009/03/18(水) 15:31:17その方向で調べてみます。
ありがとうございます!
0361デフォルトの名無しさん
2009/03/18(水) 17:31:57数学よくわかんないけど、これじゃダメポ?
0362デフォルトの名無しさん
2009/03/19(木) 04:26:24なんか変形間違えてる
0363デフォルトの名無しさん
2009/03/19(木) 05:43:330364デフォルトの名無しさん
2009/03/19(木) 06:50:38もとの式を間違えてるんじゃないかしら.
一応式変形を書いておくと,分母払って
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関数は初等関数で書けないことが知られている.
0365デフォルトの名無しさん
2009/03/19(木) 07:39:27やっぱダメか。
wikipediaにソースコードあるしW関数とやらの実装自体は難しくないっぽいね。
ちなみに363は俺じゃないよ。
0366デフォルトの名無しさん
2009/03/21(土) 03:19:59http://tsushima.2ch.net/test/read.cgi/newsplus/1237518336/
0367デフォルトの名無しさん
2009/04/15(水) 16:54:50微分方程式↓のオイラー法がうまくいかない・・
[角速度] = f( 時間, 角度 )
0368デフォルトの名無しさん
2009/04/15(水) 21:41:490369デフォルトの名無しさん
2009/04/15(水) 22:21:40こっちではオイラー法でうまくいってるよ。
君のプログラムの問題じゃないのかい?
0370デフォルトの名無しさん
2009/04/16(木) 08:55:37元ソースは、参考書のサンプルプログラムになるので、出せませんが、
微分方程式は、正しくは以下のようになります。
[ 角度の微分, 角速度の微分, 位置の微分, 速度の微分 ] = f( t, 角度, 角速度, 位置, 速度 )
角度は、オイラー角YZYの列ベクトル -> [ オイラ−角Y, オイラー角Z, オイラー角Y]T (ラジアン)
角速度は、角速度Ωの列ベクトル -> [ Ωx, Ωy, Ωz ]T (ラジアン)
これを、数値計算ソフトのソルバ(ode45)で解くと正しく計算されるのですが、
自作のオイラー法のソルバや、googleで探してきた他の人のソルバ(ode1)だと、
発散?してしまいます。
ode45では正しく計算できていることからf()自体に問題はないと思います。
このf()から得た、角度の微分値を積分する計算に誤りがあるのかな?と思いまして。。
積分は以下の通りですが、ラジアンにこんな計算していいんですかね?
次の角度 = 前の角度 + 角度の微分 x delta時間
0371デフォルトの名無しさん
2009/04/16(木) 09:49:02ソルバが正しく解くのに自前実装で動かないってのは。
それこそあんたの実装がまずいんでしょ。
そんなもの,ソースコード見ずに答えられるわけが無い。
0372デフォルトの名無しさん
2009/04/16(木) 16:53:21どう考えてもお前のバグだろ
ソース出さないならこれ以上質問するだけ無駄、自力でなんとかするか諦めろ
0373デフォルトの名無しさん
2009/04/17(金) 17:49:09ループや分岐をガリガリ書く様なダサいのじゃなく
幾何計算によるスマートな判定法が無いか知りたいんだけど。
0374デフォルトの名無しさん
2009/04/17(金) 18:13:420375デフォルトの名無しさん
2009/04/17(金) 22:55:39邦題:ゲームプログラミングのためのリアルタイム衝突判定
0376デフォルトの名無しさん
2009/04/19(日) 11:36:56ステップ幅がクーラン条件を満たしてないと考えるのが第一じゃない?
0377デフォルトの名無しさん
2009/04/19(日) 12:08:20そもそも完全に間違ってることを疑うのが第一だと思う。
ただ何を疑っても結局情報不足で、あてずっぽうにしかならない。
0378デフォルトの名無しさん
2009/05/06(水) 00:38:41↓のfft関数を使いたいのですが
引数に何を与えればよいのかわかりません。
http://www.softist.com/programming/fft/fft.htm
データはコンデンサマイクからAD変換したデータを
使いたいのですがarとaiがありなぜ2つあるのかわかりません。
よろしくお願いします。
0379デフォルトの名無しさん
2009/05/06(水) 10:21:17出てきた結果の頭半分だけ利用
ttp://www009.upp.so-net.ne.jp/hachinami/note004/index.htm
ただ、何も分かってないようなので、本屋か図書館で簡単なフーリエ変換の本を読むことを奨める
0380デフォルトの名無しさん
2009/05/06(水) 10:39:34おおおぉぉぉ!!
ありがとうございます。
ちょっとできそうな気がしてきました。
0381デフォルトの名無しさん
2009/05/06(水) 11:06:47それっぽい値出てきましたー
#define FFT_SIZE 128
double ar[FFT_SIZE];
double ai[FFT_SIZE];
double theta;
void setup(){
Serial.begin(9600);
}
void loop(){
for (int i=0; i<FFT_SIZE; i++) {
ar[i] = sin(i);
ai[i] = 0;
}
theta = -8 * atan(1.0) / FFT_SIZE;
fft(FFT_SIZE, theta, ar, ai);
for (int i=0; i<(FFT_SIZE/2); i++) {
Serial.print(ar[i]*ar[i]+ai[i]*ai[i]);
Serial.println("");
}
Serial.println("");
delay(1000);
}
0382デフォルトの名無しさん
2009/05/10(日) 16:23:410383デフォルトの名無しさん
2009/05/15(金) 09:40:46スペアナなら、簡単に作られます。
#define FFT_SIZE 1024
double ar[FFT_SIZE];
double ai[FFT_SIZE];
void スペアナ()
{
//データ準備
ar ← データを入れる
ai ← 全部ゼロ
//計算
double theta = -8 * atan(1.0) / FFT_SIZE;
fft(FFT_SIZE, theta, ar, ai);
//結果
周波数成分(i) = sqrt(ar(i)^2 + ai(i)^2);
位相(i) = atan(ai / ar)
//表示
}
http://www.softist.com/programming/fft/fft.htm
0384デフォルトの名無しさん
2009/05/27(水) 16:21:20ガウスザイデル法は、解(Ax = b の x)を持ちまわる為、
前回の解と次回の解を必要とするヤコビ法に比べ、
メモリ効率が良いということですが、
実際に作ってみると、ガウスザイデル法でも
解の収束判定の為、前回の解を保持しておく必要があり
メモリ効率は変わらないように見えます。
何か別によい方法があるのでしょうか?
収束判定値は以下のように作ってます。
e = abs(next_solution - prev_solution).sum() / abs(next_solution).sum();
0385384
2009/05/27(水) 16:30:20よいことがわかりました。
スレ汚しすみません。
もうちょっと考えてから、書き込めばよかった。。
0386デフォルトの名無しさん
2009/05/30(土) 14:22:05A : [ax,ay,az];
B : [bx,by,bz];
E : ax * bx + ay * by + az * bz;
Eを、A . Bに変形させることは可能でしょうか?
0387386
2009/05/30(土) 14:28:20正 B : transpose( [bx,by,bz] );
0388デフォルトの名無しさん
2009/05/31(日) 20:22:31スレ違い。ソフトウェアの使い方は別のところでどうぞ。
0389デフォルトの名無しさん
2009/06/21(日) 21:50:52しかし、線形代数がどうプログラミングに役立つのかいまだにイメージできない。
誰か力説してくれ
0390デフォルトの名無しさん
2009/06/21(日) 22:07:19分野によるとしか言いようがない。
3Dがらみとか数値計算とかやると必要だけど。
0391デフォルトの名無しさん
2009/06/21(日) 22:08:19平易に読みこなすための数学の本教えて
0392デフォルトの名無しさん
2009/06/21(日) 22:14:47Springer出版のジャーナルなんて山ほどあるし、
全部平易に読みこなすことなんて数学の専門家でも無理。
0393デフォルトの名無しさん
2009/06/21(日) 22:18:11じゃあPGが使う範囲のレベルでいいのでなんかないですか?
0394デフォルトの名無しさん
2009/06/21(日) 22:52:40プログラマにもいろんなジャンルの人がいるから一概には言えない。
全部をカバーしようとしたらやっぱり無理。
専門分野を指定してくれれば、分かる範囲で答えるよ。
0395デフォルトの名無しさん
2009/06/21(日) 23:06:58グラフ理論と
記号論
あと最近の流行の数学ってありますかね?
0396デフォルトの名無しさん
2009/06/21(日) 23:12:260397デフォルトの名無しさん
2009/06/21(日) 23:18:140398デフォルトの名無しさん
2009/06/21(日) 23:18:36けいおん
0399デフォルトの名無しさん
2009/06/21(日) 23:48:450400デフォルトの名無しさん
2009/06/22(月) 00:28:510401デフォルトの名無しさん
2009/06/22(月) 07:24:59グラフ理論だったらディーステル:グラフ理論が全般的な基礎知識で,
アルゴリズムはSchrijver:Combintorial Optimizationの該当章を読めばほぼOK.
最近流行のグラフマイナーに関してはまだ良い教科書が無いので
Robertson-Seymour-Thomasの論文にいくらか目を通せば十分.
圏論はAsperti-LongoのCategories Types and Structuresを読めば
プログラマだったら大体大丈夫.著者ページから全文落とせるのも高評価.
Excercisesでたまに代数・幾何の知識が必要になるけど飛ばしてよい.
突っ込んだことをやるならマックレーン:圏論の基礎を読むことになるけど,
こっちは代数・幾何の知識が無いと楽しめない.
記号論は知らない.ググったら言語学とか出てきたけど?
0402デフォルトの名無しさん
2009/06/22(月) 08:06:520403デフォルトの名無しさん
2009/06/23(火) 00:43:43ところで数学って自習したとき
何がわかると理解できたことになるの?
プログラムはかけなきゃクズだろで済むけど
0404デフォルトの名無しさん
2009/06/23(火) 09:04:50何がわからないかってことがわかっただけでも儲けもの
理解できた!!なんて思うことすら驕りだと思う
現実的問題としては演習問題がさっと解けるぐらいなら次に進んでもいい
0405デフォルトの名無しさん
2009/06/23(火) 19:42:40大体本文で書けなかったものを演習にまわしているという事情があるし。
0406デフォルトの名無しさん
2009/06/23(火) 19:45:350407デフォルトの名無しさん
2009/06/23(火) 23:33:49とりあえずグラフ理論は
http://www.math.uni-hamburg.de/home/diestel/books/graph.theory/GraphTheoryIII.counted.pdf
見て勉強してみます。
0408デフォルトの名無しさん
2009/06/26(金) 00:59:24・問題が解けること
・定義や定理のステートメントがすらすら言えること
・定理の証明の大筋と、核心部の詳細が言えること
しかし自分の誤りに全く気づかないことも往々にしてあるから、
できればいずれも高段者に判定してもらうことが望ましい。
0409デフォルトの名無しさん
2009/07/09(木) 01:57:17この fft1 関数の ar[] に for (i=0; i<n;i++) ar[i]=20 * sin(2*PI*i/n) な配列を、ai[] には全てゼロを入れたとき、
関数実行後には ar[1] には 20 が、それ以外の ar[?] と ai[] には全て 0 が入っている事を期待していたのですが、
ar[1] には万単位の数値が入ってしまいます。
なぜ20にならないのでしょう? そもそも関数の機能を思い違えてる?
0410デフォルトの名無しさん
2009/07/09(木) 04:02:44cosの係数の半分の値が実数成分、同様にsinが虚数成分だから、周期ずらしてないsinじゃarは空だと思うが?
で、ai[1]に入るべき値は10、後はほぼ0で埋まると思われ
0411デフォルトの名無しさん
2009/07/09(木) 14:48:35このFFTフラグ逆なんですか???
てことは、波形からsin, cos成分を得たいときは flag = 1 にするってことですよね
0412デフォルトの名無しさん
2009/09/17(木) 22:53:30中坊はここに来るべきではないんだ
0413デフォルトの名無しさん
2009/10/12(月) 16:24:130414デフォルトの名無しさん
2009/10/25(日) 21:24:44ttp://excel.onushi.com/function/betadist.htm
x AからBの範囲で評価する瞬間を指定
α 確立分布に対するパラメーターを指定
β 確立分布に対するパラメーターを指定
A xの区間の下限を指定。省略可能
B xの区間の上限を指定。省略可能
これらのパラメータを求める公式及び、それらによって得られるBETADIST 関数の数式を教えてもらえないでしょうか。
0415デフォルトの名無しさん
2009/12/08(火) 20:24:050416デフォルトの名無しさん
2009/12/08(火) 20:56:48ttp://www.kwansei.ac.jp/hs/z90010/sugakuc/toukei/beta/beta.htm
ぐぐれ
0417デフォルトの名無しさん
2009/12/17(木) 21:21:03double getSum( int n )
{
double sum = 0;
for (int i=1; i<=n; i++) {
sum += log2( i );
}
return sum;
}
こんな計算をしたいのですが
速くする方法とかってないでしょうか?
積分で近似値を得るという選択肢もあるのですが…
0418デフォルトの名無しさん
2009/12/17(木) 21:28:47メモリがバカにならないなら一定の間隔おきにとったnに対してでもいい
0419デフォルトの名無しさん
2009/12/17(木) 21:30:27nの出現頻度などに応じてもっとも効率的な間隔で
0420デフォルトの名無しさん
2009/12/17(木) 21:49:21対数関数→加算→対数関数→加算→…
より
乗算→乗算→…→乗算→対数関数→加算→乗算→乗算→…乗算→対数関数→加算→…
の方が対数関数使用回数が減るため速くなるんじゃないかな? かな?
log2(x)+log2(x+1)+…+log2(x+k-1)
=log2(x*(x+1)*…*(x+k-1))
みたいな感じ。
0421デフォルトの名無しさん
2009/12/17(木) 22:23:130422デフォルトの名無しさん
2009/12/17(木) 22:24:16確実にその方が早いと思う。
精度の問題出そうな気もするけど。
0423デフォルトの名無しさん
2009/12/17(木) 22:25:24doubleなら問題ない
0424デフォルトの名無しさん
2009/12/17(木) 22:30:50精度的には平気だけど、double だと n =172 でオーバーフローするな。
0425デフォルトの名無しさん
2009/12/17(木) 22:35:07何を早くする必要あるの?
0426デフォルトの名無しさん
2009/12/17(木) 22:38:51nが非常に大きいなら、
getSum(n) = (n+1/2)*log2(n) + 1/2*log2(2*PI)+log(2)
0427デフォルトの名無しさん
2009/12/17(木) 22:41:160.1秒ってけっこうな時間だぞ
何のための処理かにもよるけど
動画なら確実に駒落ちとか音飛び
キー入力ならもたつきとか取りこぼし
0428デフォルトの名無しさん
2009/12/17(木) 23:02:36int n2 = n / 2;
return n2 + getSum(n2) + getSumOfOdd(n);
みたいなコード書いてみたけど、普通にやるのと大差なかった。
てか、並列処理とか入れてみたら普通にやった方が速くなった。
0429デフォルトの名無しさん
2009/12/17(木) 23:03:20偶数の log2 の和は、n / 2 + getSum(n / 2)
0430デフォルトの名無しさん
2009/12/18(金) 00:26:46log2があるんだったらlgammaもあるはず。
でもこっちのほうが遅いかな?
0431デフォルトの名無しさん
2009/12/18(金) 00:46:47lgamma(n) / log(2) も今ちょっと試してみた。
けた違いに(3ケタくらい)早いけど、精度4〜6ケタくらいしか出ない。
0432デフォルトの名無しさん
2009/12/18(金) 00:48:250433デフォルトの名無しさん
2009/12/18(金) 01:27:17lgammaなんてあるのか…しらんかった。
0434デフォルトの名無しさん
2009/12/18(金) 02:14:25話は変わるけど単純にfrexp使ってみたやつ。417より少しは速いけど、lgammaには到底かなわない。
double getSum3(int n)
{
double m = 1.;
int sum = 0;
for (int i = 1; i <= n; ++i)
{
int e;
m *= frexp((double)i, &e);
sum += e;
if (m <= 1e-300)
{
int f;
m = frexp(m, &f);
sum += f;
}
}
return sum + log2(m);
}
0435417
2009/12/18(金) 13:44:21レスが意外と多くて驚きでした。
>>418,419
nが小さくてかつ何度も呼ばれるならそれが良さそうですね。
>>420
32個ずつまとめて計算したところ20倍近く高速化しました。
>>421
まさにその通りです。
>>425
これを数万の配列に対して実行するのです。
>>426
最初何のことか分かりませんでした。
いろいろ調べてから意味が分かりました。
>>430
lgammaというのを知りませんでした。
続きます
0436417
2009/12/18(金) 13:48:45スターリングの近似公式
n! = √2π * n^( n + 1/2 ) * e^( -1 )
というものをwikipediaで発見したため
実装してみたところ十分な精度が得られました。
log2( 1 ) + log2( 2 ) + ... + log2( n )
= log2( 1 * 2 * ... * n )
= log2( n! )
= log2( √2π * n^( n + 1/2 ) * e^( -1 ) )
= log2( √2π ) + ( n + 1/2 )log2( n ) - n * log2( e )
double getSumApprox( unsigned n )
{
const double PI = 3.141592653589793238462643383279;
const double E = 2.718281828459045235360287471352;
double s1 = log2( sqrt( 2 * PI ) );
double s2 = ( n + 0.5 ) * log2( n );
double s3 = ( -1. * n ) * log2( E );
return s1 + s2 + s3;
}
>>426さんの方法がこれだったんですね。
みなさんありがとうございました。
0437417
2009/12/18(金) 17:48:16e^(-1)でなくてe^(-n)です。
関数の方は合ってます。
n! = √2π * n^( n + 1/2 ) * e^( -n )
log2( 1 ) + log2( 2 ) + ... + log2( n )
= log2( 1 * 2 * ... * n )
= log2( n! )
= log2( √2π * n^( n + 1/2 ) * e^( -n ) )
= log2( √2π ) + ( n + 1/2 ) * log2( n ) - n * log2( e )
0438デフォルトの名無しさん
2009/12/19(土) 02:05:014スーツあるので91x4=364
jokerを足して365または366
これは一年の日数を表している
0439デフォルトの名無しさん
2009/12/19(土) 03:47:160440デフォルトの名無しさん
2010/03/23(火) 23:09:520441デフォルトの名無しさん
2010/04/15(木) 16:16:54s1やlog2(e)を定数にしたらもそっと早くなった。
--
static double getSumApprox(unsigned n)
{
const double s1 = 1.3257480647361592485;
double dn = (double) n;
double s2 = (dn + 0.5) * log2(dn);
double s3 = -dn * M_LOG2E;
return s1 + s2 + s3;
}
--
これでlog()の呼び出しはlog2()内部の一回だけだ。
0442デフォルトの名無しさん
2010/04/24(土) 16:05:09手元にある論文に載っている数式を実際に実行したい。
実際の数式(limとか、dtとか、ロシア文字みたいな謎の記号)とプログラム言語での対応表みたいな本とか無いでしょうか?
私はあまり数学が得意ではないのですが、Cとawk,簡単なperlの文法はわかります。
一応、数式の記号の意味さえわかれば、そこからは自分でもなんとかなるのですが
0443デフォルトの名無しさん
2010/04/24(土) 16:09:04Mathematicaが必要だぞ・・・
0444デフォルトの名無しさん
2010/04/24(土) 16:33:53やりたい事はmaximaで出来ない?
http://maxima.sourceforge.net/
無限が絡む操作は普通のプログラミング言語だと表現出来ないから
擬似的な処理になると思うけど。
それでいいってんなら、数値計算に関する本とかには色々書いてあると思うよ。
大抵はCで書かれてると思うけど、アルゴリズムの参考にはなるんでないの。
0445デフォルトの名無しさん
2010/04/24(土) 17:59:25ビリヤードのような玉の衝突処理についてここで相談してもいいですかね?
0446デフォルトの名無しさん
2010/04/24(土) 18:01:440447デフォルトの名無しさん
2010/04/24(土) 18:08:02ttp://marupeke296.com/COL_MV_No1_HowToCalcVelocity.html
0448445
2010/04/24(土) 18:09:02ここの「円同士の衝突を計算する」サンプルをなるべく原型をとどめたままC#に移植して
一応それっぽく動いてるんですが動作テストをしてると時々変は挙動をします。
(落下ベクトルが入ってる方を改造してます。落下ベクトルが無い方は開けませんでしたorz)
分かってる挙動
・初期のランダムにおいてベクトルがxyともに0,0の場合単なる障害物化する
・移動してる玉が特定条件?でぶつかった際はベクトルの合成がおかしいのか変な方向へ移動する。
0449デフォルトの名無しさん
2010/04/24(土) 18:09:080450デフォルトの名無しさん
2010/04/24(土) 18:10:510451445
2010/04/24(土) 18:14:44初期のランダムだけintで決定してますが
>・初期のランダムにおいてベクトルがxyともに0,0の場合単なる障害物化する
これが起きるということは移植したロジックだと手玉以外は静止している
ビリヤードを作ることができないということになるのですがどの辺をいじればいいのかよくわからなかったので・・・
0452445
2010/04/24(土) 18:18:32http://www1.axfc.net/uploader/Sc/so/106542.zip
FPSを少なめにしてありますので付属のexeはもっさりにみえます
0453445
2010/04/24(土) 18:29:09float wait = 1000f / 10f;
0454デフォルトの名無しさん
2010/04/24(土) 18:51:321.丸投げでバグを取ってください
2.手取り足取り教えてください
3.ヒントだけでもお願いします
0455デフォルトの名無しさん
2010/04/24(土) 18:52:34衝突って双方の関係を制御するはずなのに 初期速度が0の場合障害物化するってのはどこか間違ってる
質量が勘案されていないかエネルギーが交換されていないかどっちかじゃないの?
#コードは読んでないのでその点を具体的に詩的はできないのがカナシイ
0456デフォルトの名無しさん
2010/04/24(土) 19:11:023でお願いします。
>>455
ウインドウの中を左クリックすると玉の初期化を行うので
なんどかトライしていただくと障害物化する玉がかなりの再現度で現れると思います。
0457デフォルトの名無しさん
2010/04/24(土) 19:14:19多体でものを考えない近似を行った結果、
色んな力が釣り合っちゃってんじゃないかな
0458デフォルトの名無しさん
2010/04/24(土) 19:19:37こちらが玉の移動処理
http://ideone.com/ldtm5
その後の当たり判定処理
http://ideone.com/ZbZFG
↑ところどころスコープをわざと作ったのはASだと同じスコープであっても新たに
宣言した変数が優先されるような仕様?だったので
0459デフォルトの名無しさん
2010/04/24(土) 22:05:02ベクトルが0だった場合のことを考慮に入れてないコードのようでした・・・
こちらで改造したAS
・0番のオブジェクトのベクトルを0にした
・自由落下のサンプルしか開けなかったのでそれをビリヤード風になるように改造
http://ideone.com/RZXTO
改造したコードを実行できるようにしてみた
http://www1.axfc.net/uploader/Sc/so/106689.swf
0460442
2010/04/24(土) 23:36:47えっと、あの、なんというか凄い本格的なソフトです。ありがとうございます。
その、自分で個人的に使うスクリプトもどきに組み込みたかったのですが、
なんか学術用語?みたいな(少なくても私は習ったかもしれないけど忘れた)数式の記号の意味が不明だったもので、
例として(記号は意味を知っているやつだけど)、Mを横倒しにした
Σn,m f()
は
for(i=n,i<=m,i++){ ans+=f() }; に対応している、みたいな感じで、
学の無い人間にもわかる数式の読み方の解説の資料とか紹介して頂けるとたすかるのですが……無理でしょうか?
0461デフォルトの名無しさん
2010/04/24(土) 23:50:55>数式の読み方の解説の資料
それには数学の本が適切なんじゃないの?
あとその分野のwikipediaとか
ギリシャ文字あたりが読めれば読み方は大抵大丈夫だと思うけど。
計算のアルゴリズムが実装してみたいってんなら、一応
Numerical Recipes In C
っつー本がある
http://www.amazon.co.jp/dp/4874085601
何がやりたいのか、今一よく分からないんだが、これでいいか?
0462デフォルトの名無しさん
2010/04/25(日) 02:44:38>例として(記号は意味を知っているやつだけど)、Mを横倒しにした
>Σn,m f()
>は
>for(i=n,i<=m,i++){ ans+=f() }; に対応している、みたいな感じで、
>学の無い人間にもわかる数式の読み方の解説の資料とか紹介して頂けるとたすかるのですが……無理でしょうか?
それ対応してる訳じゃないから
っつーか中学生かおまえは
0463デフォルトの名無しさん
2010/04/25(日) 04:10:030464デフォルトの名無しさん
2010/04/25(日) 06:33:15貴方の悩みは、
プログラミングの知識とは無関係。
簡単な奴でいいから高校数学の参考書でもざっと眺めれば解決する問題。
0465デフォルトの名無しさん
2010/04/25(日) 10:06:180466デフォルトの名無しさん
2010/04/25(日) 14:41:12http://d.hatena.ne.jp/akiradeveloper/20100423/1271986775#c1272170734
0467デフォルトの名無しさん
2010/04/25(日) 15:27:050468デフォルトの名無しさん
2010/04/25(日) 15:38:47まあ、良く見かける勘違いだよな。
「1/10が2進数だと無限小数になる」ってのを拡大解釈してくとこうなるんだろう…。
0469デフォルトの名無しさん
2010/04/25(日) 16:04:111/3は解決しないのに
馬鹿じゃね?
0470デフォルトの名無しさん
2010/04/25(日) 16:18:050471デフォルトの名無しさん
2010/04/25(日) 16:22:270472デフォルトの名無しさん
2010/04/25(日) 16:25:450473デフォルトの名無しさん
2010/04/25(日) 16:28:424つの中身が不明な箱と
そのなかに4色のボールが入っていて
(同じ色は何度でも使えます)
中身を知らない方の人が4つ箱に入っているボールの色を予想して
中身を知っている方の人が
1.色だけがあっている数
2.色と場所があっている数
を教えます(ウソはつかないものとします)
正解を出すのに最低何回質問をすればよいでしょうか?
0474デフォルトの名無しさん
2010/04/25(日) 16:32:10結局>>460の望んでいたものに
0475デフォルトの名無しさん
2010/04/25(日) 16:37:380476デフォルトの名無しさん
2010/04/25(日) 17:20:18最も賢明に予想を繰り返した場合の最悪の試行数を知りたい
んではないだろうか。
0477デフォルトの名無しさん
2010/04/25(日) 19:35:27知識として持っててあたりまえのことを質問する馬鹿が増えた
0478デフォルトの名無しさん
2010/04/25(日) 19:52:05問題文には曖昧さが混入してはいけない
0479デフォルトの名無しさん
2010/04/25(日) 19:54:45って具体的にどの程度のことを指してるんだか。義務教育程度?大学の学部卒程度?
0480デフォルトの名無しさん
2010/04/25(日) 21:21:42そうです
それです
0481デフォルトの名無しさん
2010/04/25(日) 21:23:00ちなみに途中で矛盾が出てくるなどして
相手がウソを吐いていることが分かったときは
そのまま続行?それとも一旦リセット?
0482デフォルトの名無しさん
2010/04/25(日) 21:39:321.色だけがあっている数
2.色と場所があっている数
中身を知っている方が全て赤だったとして
その場合、中身を知らない方が赤1つ指定した場合は、何て答えるの?
同様に、赤2つ指定した場合は、何て答えるの?
0483デフォルトの名無しさん
2010/04/25(日) 22:52:42そのうちの一つが赤(最初の文)または二つが赤(後の文)
だったと仮定して回答します
中身を知っている方が全て赤だったとして
中身を知らない方が赤1つ指定した場合は
1.色だけがあっている数 = 0
2.色と場所があっている数 = 1
赤2つ指定した場合は、
1.色だけがあっている数 = 0
2.色と場所があっている数 = 2
でいいとおもいます
0484442
2010/04/25(日) 23:32:56(凄く大雑把に言えば)一般的な数式を見せられても意味がわからないんです orz
逆に、Cコードとかの方が判りやすいぐらいで。
それで、最近凄く面白そうな計算式があったのですが、 pseudocodeではなくて、一般的な学校の教科で使われる
数式みたいなので書かれていまして、それで使われている記号が意味不明で、wikiとか読んだんですが
当然プログラミング言語なんかでは書かれていないので、もう意味不明で。
要約すると、"一般的な数式をプログラム言語で解説して欲しい"と、いうアホな質問なんです。
できればこの後も自分で調べることができるように、本とか、なんか纏まった資料だと助かるのですが…
あと、本を紹介して頂きありがとうございます。ただ、あまり初心者に勧める本には見えないのですが…
(numerical Recipies in C)の評判が海外では(大まかに和訳したかんじでは)
>入門書としてはお勧め出来ない、特にチャプター14付近の間違いが最新版でも訂正されていない。
>読んだ初心者が、わかったつもりになるが、実際は間違った方向に理解させている
>グラフに表示されてる数字は本に書かれたコードによるものではない
>コードだけならGNU Scientific Libraryをつかえ
と
0485デフォルトの名無しさん
2010/04/25(日) 23:49:25しかし、数学に疎いと言われても、
数学をそのままプログラムに落とせるようなものはそうそうないぞ
0486デフォルトの名無しさん
2010/04/25(日) 23:51:50なおさら高校数学の本を読んだ方がいいと思うけど…
計算機上では無限操作が必要な計算式は代数的機械的(もしくは有限精度)に処理されてるけど、
本来は無限小無限大とかを理解して式を読み解くべきものだと思う。
"一般的な数式をプログラム言語で解説して欲しい"
って言っても、その計算プログラム自体が一般的な数学をベースにしてるものだからなぁ…
数学板に行って質問した方がいいんでないの?
俺のおすすめは高校黄チャートIA・2・Bの例題全解き
0487デフォルトの名無しさん
2010/04/26(月) 00:07:19学問に近道などない
頑張りなさい。
0488デフォルトの名無しさん
2010/04/26(月) 00:10:18どんな数式か気になる
0489442
2010/04/26(月) 00:19:59数式を完璧に理解したいわけではないんです(元々どんな処理がされているのか理解できないので)
高校のころは、単に文字列として、たとえば、(a+b)^2は a2 + 2ab + b2みたいに、決まった(知っている)形があれは
それを対応する文に文字を動かす、後は電卓のボタンを押して入れて、出てきた答えを書く、みたいなことしか出来なかったので。
0490デフォルトの名無しさん
2010/04/26(月) 10:31:46Shiroって人がコメントしていることが全て。10進数に囚われているのは間抜け。
ついでにいえば、10進演算用トランジスタなんてものを妄想するのは高校物理も判っていない馬鹿。
0491デフォルトの名無しさん
2010/04/26(月) 12:08:26それで全ての問題が解決するかのように思ってるのは変だが。
10進演算用トランジスタは少々マヌケだが、初期のコンピュータには
10進方式のものもいくつかあったよ。かのENIACがそうだし。
キャパシタの容量を使ってアナログ的に10段階の値を表現するレジスタとか、
電話交換機のロータリースイッチを使ったものとか、2 out of 5コードなどによる
ものとか。
0492デフォルトの名無しさん
2010/04/26(月) 12:59:29数式の意味の説明はプログラム言語でなく日本語でもいいんですよね?
下記の本で数学の文法と和文数訳、数文和訳、数学の作文法を勉強できます。
数学は言葉
http://www.amazon.co.jp/dp/4489020538
0493デフォルトの名無しさん
2010/04/26(月) 13:58:05その面白そうな式というのが気になるな
0494デフォルトの名無しさん
2010/04/26(月) 14:12:59近代科学社 刊
(現代数学ゼミナール9)
1989年5月10日初版発行
この本だと、早くコトが出来るよ!
0495デフォルトの名無しさん
2010/04/27(火) 01:31:17そら10進数で物考える文化が大半なんだから人間にとって重用されるのは当たり前だろ
それが機械にとって向かないと結論付けられたからこそ淘汰されてるわけだが・・・
考え方自体がおかしいのはまぁ置いとくとして、
自分でどうにかしてやろう、という姿勢が全く見られないのが気に入らない
0496デフォルトの名無しさん
2010/04/27(火) 07:14:010497デフォルトの名無しさん
2010/04/27(火) 09:23:50この宇宙で、もっとも効率がいいのは実は、3進法。
自然対数で扱われる、オイラー数、e=2.71828・・・
この値に最も近い「3」がよろしい。
0498デフォルトの名無しさん
2010/04/27(火) 09:38:57この宇宙で、もっとも効率がいいのは実は、e進法
0499デフォルトの名無しさん
2010/04/27(火) 14:03:21実際の計算機は1つの素子(セル?)で hi と low の2値を表現出来るから
また違う気もする。
0500デフォルトの名無しさん
2010/04/27(火) 15:07:170501デフォルトの名無しさん
2010/04/27(火) 15:27:50IBMじゃないか?
IBMがSystem/360で導入した浮動小数点ハードウェアの話じゃないかと。
0502デフォルトの名無しさん
2010/04/27(火) 16:18:20ハイハイ、常用対数の勉強しましょう!
0503デフォルトの名無しさん
2010/04/27(火) 16:21:39これじゃあ、ハードウェアのまともな学習できん。
0504デフォルトの名無しさん
2010/04/27(火) 16:22:07効率的な値(式でもいいけど)の表現方法やアルゴリズムを発明さえすればハードとソフトの差異に意味は無い
0505デフォルトの名無しさん
2010/04/27(火) 16:47:58勘違いしてるようだけど、499 は単に前提条件を確認しただけでしょ。
497, 498 の事はよく数値計算の教科書に書いてあるけど、
「p進数f桁 p^f 個の数値を表現するのに p f 個の素子を使うとした場合」
という条件が書いてあると思う。
0506デフォルトの名無しさん
2010/04/27(火) 17:11:23そうです。上手に整理してくれて、さんくす!
0507デフォルトの名無しさん
2010/04/27(火) 17:47:22「基本素子の状態数がdのとき演算回路のサイズが小さくて済む」ってことだから,
基本素子が2状態(hi/low)であることを固定したら
効率に関して全く別の議論が必要になるね.
0508デフォルトの名無しさん
2010/04/27(火) 18:44:21>>466の元記事君の悩みは何ら解決されないんだよなぁ
0509デフォルトの名無しさん
2010/04/27(火) 18:49:020510デフォルトの名無しさん
2010/04/27(火) 19:19:40ハードの事は分からんけど、論理は真, 偽, and, not で事足りるから
2進でいいかな。
0511デフォルトの名無しさん
2010/04/27(火) 19:24:223進数は10が奇数ってのがきもい。ビットシフト考えるとさらにきもい。
真偽判定は2進数で足りるんだから2進でいいじゃん、と思うんだけど。
0512デフォルトの名無しさん
2010/04/27(火) 19:53:292もeの直前の数だからそう効率悪いわけじゃないし、
ビット演算もあるし、素子も作りやすいから、
2進数でいいよ
0513デフォルトの名無しさん
2010/04/27(火) 20:03:250514デフォルトの名無しさん
2010/04/27(火) 20:07:030515デフォルトの名無しさん
2010/04/27(火) 20:17:37OV付近は線が繋がってない(NC: ハイインピーダンス) で一応3値取りうるな
0516デフォルトの名無しさん
2010/04/27(火) 20:22:020517デフォルトの名無しさん
2010/04/27(火) 20:44:13お前、ポーランド記法、知ってるか?
0518デフォルトの名無しさん
2010/04/27(火) 20:45:330519デフォルトの名無しさん
2010/04/27(火) 20:48:470520デフォルトの名無しさん
2010/04/27(火) 20:56:100521デフォルトの名無しさん
2010/04/27(火) 21:02:37たぶんそういう話じゃないと思うよ
0522デフォルトの名無しさん
2010/04/27(火) 21:07:070523デフォルトの名無しさん
2010/04/27(火) 21:07:09アセンブラ言語のプログラミング歴は?
0524デフォルトの名無しさん
2010/04/27(火) 21:07:37アセンブラかアセンブリ言語にしてくれ
0525デフォルトの名無しさん
2010/04/27(火) 21:11:22この機会に有機的に学習してくれ。
0526デフォルトの名無しさん
2010/04/27(火) 21:21:42別にポーランド記法でも逆ポーランド記法でも構わんが、どうやって無理数を解決する気だよ?
IEEE754みたいにスマートに処理できんのか?
0527デフォルトの名無しさん
2010/04/27(火) 21:29:08小さく出来るんだよ。
例
X=A+B+C
の場合、Aに比べて、BやCが小さい場合。(ただし、すべて正の時)
X=A+(B+C)
と書けば、誤差は小さくなる。
0528デフォルトの名無しさん
2010/04/27(火) 21:33:40Mathematicaみたいに
0529デフォルトの名無しさん
2010/04/27(火) 22:07:42大分スレが進んでしまったが、数学的記述に対するコード例が知りたいとのことならば、
奥村先生のアルゴリズム事典が良いのではないか。サポートページに行けば、コードサンプルが
ダウンロードできる。書籍中では説明のための断片的コードになっているものもmainメソッド付き
の動かして試せるものになっている。
0530デフォルトの名無しさん
2010/04/27(火) 22:18:48基礎はきっちりやること。
どんな環境でも、耐えうる力を備え持つこと。
0531デフォルトの名無しさん
2010/05/03(月) 09:49:30天国に行く道には天使が、地獄に行く道には悪魔が、それぞれ一人ずつ立っています。
天使はウソツキではありませんが、悪魔はウソツキです。
天使・悪魔に、「あなたは天使ですか?」と尋ねれば、ふたりとも、
「はい」と、答えます。
そうして、天使・悪魔とも、外見上は、まったく識別が出来ません。
いま、天国へ行きたいとします。
有名なことですが、質問が、1回だけ許される場合、
「あちらの方に尋ねれば、『この道は天国に行く道です』と、
お答えになりますか」
と訊けば、良いことが、知られています。
0532デフォルトの名無しさん
2010/05/03(月) 10:45:56プログラムとどう関係があるのか知らんが。
自然言語処理で質問とメタ質問を分ける処理はあるけど
0533デフォルトの名無しさん
2010/05/03(月) 11:01:45死んであの世に行くのがケネディ、天使がチャーチル、悪魔がヒトラーという
バージョンもある。あと、ウソを言うかホントのことを言うかわからないスターリンが
3人目として加わる(質問は2回許される)バージョンとか。
0534デフォルトの名無しさん
2010/05/03(月) 12:04:32あなたの巣へ連れて行ってください
で充分な訳だが
0535デフォルトの名無しさん
2010/05/03(月) 12:19:270536デフォルトの名無しさん
2010/05/03(月) 14:32:060537デフォルトの名無しさん
2010/05/03(月) 15:31:130538デフォルトの名無しさん
2010/05/03(月) 16:09:410539デフォルトの名無しさん
2010/05/06(木) 04:05:580540デフォルトの名無しさん
2010/05/06(木) 13:08:110541デフォルトの名無しさん
2010/05/11(火) 22:27:250542デフォルトの名無しさん
2010/05/13(木) 06:32:060543デフォルトの名無しさん
2010/06/28(月) 03:32:240544デフォルトの名無しさん
2010/08/09(月) 17:19:530545デフォルトの名無しさん
2010/12/01(水) 16:46:550546デフォルトの名無しさん
2010/12/05(日) 17:11:40その球面位置Pから半径rの円内(球面上の円)を指すベクトルを計算する方法を教えてください
単位ベクトル位置から任意の半径内で重点的サンプリングをしたいのです
0547デフォルトの名無しさん
2010/12/05(日) 17:27:20半径 sin r の円を描けばいいんじゃね?
(p - (cos r)×V)^2 = sin^2 r
(p - (cos r)×V)・V = 0
を解けばいいのかな。
0548デフォルトの名無しさん
2010/12/05(日) 17:47:16三角関数に半径rを渡す意味が分からないのですが・・・
0549デフォルトの名無しさん
2010/12/05(日) 17:55:37V×A=B
(B,V,A)を基底とする直交座標系を作って・・・?
0550デフォルトの名無しさん
2010/12/05(日) 18:06:01ラジアン調べろ。
0551デフォルトの名無しさん
2010/12/05(日) 18:14:21ラジアンは半径じゃなくて単位円の弧の長さじゃないの?
0552デフォルトの名無しさん
2010/12/05(日) 18:23:15定義する。そして、この角度はrad(ラジアン)という単位で表す。このとき、半径r、
中心角θradに対する弧の長さはrθとなる。
0553デフォルトの名無しさん
2010/12/05(日) 18:31:19A・V > 2 - r^2
を満たすAかなぁ。
rがラジディアンなら
A・V > cos r
けど、球面の上で一様分布になるように発生させるのはめんどくさそう。
0554デフォルトの名無しさん
2010/12/05(日) 18:32:47A・V > (2 - r^2)/2
0555デフォルトの名無しさん
2010/12/05(日) 19:29:45球面上の円っていうと、球面に沿って長さ r 延ばし先の点の集合のこと。
そういう意味で言ってなかったのなら sin r cos r は出てこない。
0556デフォルトの名無しさん
2010/12/06(月) 16:44:080557デフォルトの名無しさん
2010/12/06(月) 16:55:10ベクトルV に直交する長さ? = 球にベクトルVと平行な円筒をぶっさすことを考え、その円筒の径に相当
球面上での経路長?
>>547 のは下段だと思われ
0558デフォルトの名無しさん
2010/12/06(月) 18:31:58そして円の外周上じゃなくて円の範囲内で重点的サンプリングできないと意味がない。
0559デフォルトの名無しさん
2010/12/06(月) 19:24:040560デフォルトの名無しさん
2010/12/06(月) 20:07:58じゃあ>>547を使って擬似コード書いてみろよ。
スカラーとベクトルの外積をどう定義するのか知らんが。
0561デフォルトの名無しさん
2010/12/06(月) 23:26:57F(r,θ) = (sin r・cosθ, sin r・sinθ, cos r)
を考えて、こいつをZ(0,0,1)からV(vx,vy,vz)へ回転すればいいんだから
回転軸N = Z×V
回転角φ= arccos(Z・V)
として、クォータニオンで回転すればいいんじゃない。
あとは r = [0, R), θ=[0, 2π) で適当に決めて、何度か試行すれば。
0562デフォルトの名無しさん
2010/12/07(火) 00:05:47クウォータニオンって結局回転角と軸持ってるだけだから、
式計算すると結局 >>547 になると思うよ。
0563デフォルトの名無しさん
2010/12/07(火) 00:08:52>>547 を満たす1点 p1 求めて、
x = p1 - (cos r) V
y = v×x (この×は外積)
で基底ベクトル求めて、媒介変数 t に対して
(cos t)x + (sin t) y + (cos r) V
かな。
0564デフォルトの名無しさん
2010/12/07(火) 00:25:55仰るとおりなんだけど、
DirectXとかだと、任意軸の回転を一番簡単に使えるのはクォータニオンだったと思うので、
そういう意味でクォータニオンって言った。言葉足らずですんません。
>>563
その方法なら、xはXYZ軸のいずれとの外積から求めてもいけるんじゃない?
直交かつ単位ベクトルならいいんだよね。
っていうかこれが一番簡単な気がしてきた。
0565デフォルトの名無しさん
2010/12/07(火) 09:38:32ありがとうございました!
そんな浅い論理でよくプログラマーやってるなと思いました。
エンバグしまくりなんだろうな。
0566デフォルトの名無しさん
2010/12/07(火) 13:07:59君がいちばん馬鹿だったんじゃないのかな
よくその程度の説明能力でプログラマなんてやってられるね
0567デフォルトの名無しさん
2010/12/07(火) 14:47:010568デフォルトの名無しさん
2010/12/09(木) 10:41:24釣り乙
0569デフォルトの名無しさん
2011/03/28(月) 01:52:25.492 = dy/dx のとき x=0,1,2,3,4,5・・・と変化していくと
y = 0,2,4,6,8,10と変化していく。つまりdy/dxは、増加量。
dxは、増加量を求める上での1分とか1月とかいう単位という理解でいいんだろうか。
0570デフォルトの名無しさん
2011/03/28(月) 02:11:03.86そういうこと。
定積分も勉強して、微分が定積分の逆操作だってのが分かれば、
Σf(x)Δx の極限が ∫f(x)dx で、
Δy/Δx の極限が dy/dx だってのが分かるようになる。
0571デフォルトの名無しさん
2011/03/28(月) 02:19:51.851年の売上 = ∫[0,12] 売上(x) 月
1月の売上 = 売上(1) 月
って事になるって事かな。
0572デフォルトの名無しさん
2011/03/28(月) 02:38:42.12dx は具体的な数値じゃなく、微小量、っていう「無限小をとる操作」を概念的に内包してる。
だからすべて lim dx→0 で考える必要があると思う。
∫[a,b] f(x) dx = lim Δ→0 Σ[a,b] f(x)・Δ・x な感じ。
離散だとΔを0に持ってゆく前に値が収束するけど。
ただ、プログラミング的には無限小をとることができないから、
Δ = 極力小さな有限の値 として近似値をとることになる。
この辺は微積をちゃんと学んでから、数値解析の本を読むのをお勧めする。
0573デフォルトの名無しさん
2011/03/28(月) 02:51:23.72その例えで言うと、
最初は 月の売り上げ×月、
それを 日の売り上げ×日、時間あたり売上×時、分あたり・・・
とどんどん間隔を狭めていく感じ。
まだ月とか具体的な幅見えてるうちがΔで、
最終的に無限小になった状態がd。
0574デフォルトの名無しさん
2011/03/28(月) 02:54:11.590575デフォルトの名無しさん
2011/03/28(月) 05:43:50.630576575
2011/03/28(月) 06:04:02.410577デフォルトの名無しさん
2011/03/28(月) 09:50:29.32差分のこと。
0578デフォルトの名無しさん
2011/03/28(月) 11:57:30.60差分の意味になっているんだぞ。
0579デフォルトの名無しさん
2011/03/29(火) 02:21:49.85基底ベクトルは単位ベクトルとは限らないよ。
dx とか dy が基底になるベクトル空間もあるけど、
直交座標みたいなのを想像しちゃダメ。
0580デフォルトの名無しさん
2011/03/29(火) 07:55:50.380581デフォルトの名無しさん
2011/03/29(火) 22:51:02.07微分形式とか、多様体論とかで調べれば・・・
0582デフォルトの名無しさん
2011/03/30(水) 07:40:17.47dy=dx*sinθ
θ=arcsin(dy/dx)
θ=0の時dy=0
なんの意味があるか解らんけど
0583デフォルトの名無しさん
2011/03/30(水) 22:44:45.11この場合θはベクトル(dx, dy)の勾配角
0584デフォルトの名無しさん
2011/03/30(水) 22:55:48.09曲率テンソルとかが曲がり具合の指標。
0585デフォルトの名無しさん
2011/03/31(木) 23:35:34.770586デフォルトの名無しさん
2011/04/01(金) 00:55:50.470587デフォルトの名無しさん
2011/04/01(金) 21:41:46.34数列の要素をシャッフルして並び替える処理の効率と質を測りたいです。
効率というのは大雑把に言って計算量です。
質というのは雑把に言ってばらつき加減です。
効率はアルゴリズムのステップ数や変数のアクセス回数などからオーダーを計算できます。
しかし、質はどのように評価したらいいのか、何かアイデアはないでしょうか。
たとえば [0,1,2,3,4,5,6,7,8,9] をシャッフルする場合、
[0,5,1,6,2,7,3,8,4,9] よりも [0,2,9,4,1,8,6,5,7,3] の方がばらけてる感じがします。
なにか指標となるものを計算し、前者より後者の方がシャッフル アルゴリズムとして
質に関して優れていると定量的に言えるようにしたいです。
論文の紹介でもかまいません。
0588デフォルトの名無しさん
2011/04/01(金) 21:58:23.06http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
0589デフォルトの名無しさん
2011/04/01(金) 22:25:54.97擬似乱数列 品質、とかでググれば一般的なランダムさについての評価については出てくる。
しかし、その例のような場合、どんな並びであっても 1/10! の可能性のどれか、
であるわけで、ある並びが別の並びより「よりランダムである」と言うのは難しい。
0590デフォルトの名無しさん
2011/04/01(金) 22:27:53.110591デフォルトの名無しさん
2011/04/01(金) 23:23:56.34ホワイトノイズ限定なのかと言われると、違います。
また、ホワイトノイズ自体がほしい分けでもないです。
やりたいことは、色々なシャッフル アルゴリズムを比較検討です。
その上で、どこを改良すればどう変化するかを考えたいです。
(ただの乱数列ではなく、数列のシャッフルなので、
シャッフルの前後で集合としては同一でなければなりません)
例えば数列がホワイトノイズに近いか遠いかを判断する指標があるなら、
それは参考にしたいです。
他にも、例えばパターンが現れない度合い、
パターンが長い度合いなどが測れる指標があるなら、
それも参考にしたいです。
つまり、比較的多くの人間が2つの数列を見比べて
一方が他方よりランダムっぽいと感じる根拠をなんとか数値で示したい。
>>588
>>589
ありがとうございます。
今日は遅いので、明日じっくり調べてみます。
0592デフォルトの名無しさん
2011/04/01(金) 23:48:26.20> (ただの乱数列ではなく、数列のシャッフルなので、
> シャッフルの前後で集合としては同一でなければなりません)
乱数(相当のもの)を使わずにシャッフル出来るか考えてください
> 他にも、例えばパターンが現れない度合い、
> パターンが長い度合いなどが測れる指標があるなら、
> それも参考にしたいです。
乱数生成に使われたアルゴリズムを理解してください
理解できない馬鹿なら統計とって有意差を求めてください
> つまり、比較的多くの人間が2つの数列を見比べて
> 一方が他方よりランダムっぽいと感じる根拠をなんとか数値で示したい。
オカルト板に行ってください
0593デフォルトの名無しさん
2011/04/02(土) 01:22:37.880594デフォルトの名無しさん
2011/04/02(土) 01:34:08.550595デフォルトの名無しさん
2011/04/02(土) 01:48:13.48> 一方が他方よりランダムっぽいと感じる根拠をなんとか数値で示したい。
それ自体は興味深いテーマだと思うよ
本格的にやろうと思ったらいろいろ考えることは多いと思うけど
たとえば等差数列との相関係数をとるとかかね
あるいは、文字どおりに、そこそこの人数の人間の被験者を集めて
それを有識者集団として、
乱数で生成した2つの数列に対して
「どっちのほうがランダムっぽいか」を判断させることを多数回行い
それを教師信号として学習させることにより評価関数を作成する
とかいう方法も考えられる
たぶん認知心理学とかのほうでも先行研究があると思う
それか心理系に強い情報学科がある大学とか
0596デフォルトの名無しさん
2011/04/02(土) 04:02:08.47これを与える関数は計算可能関数ではないので、あきらめれ。
近似を与える方法としては、圧縮アルゴリズムにかけてサイズを比較する、
なんていう方法があるけど、アルゴリズムによって当然ムラがあるので完全ではない。
0597デフォルトの名無しさん
2011/04/02(土) 04:26:20.63まともに教育受けてれば10P10で1/10!なんてのはアホでも分かる話でしょ
それが分からない人、もしくは悪意を持つ人が
思い入れのあるもの、馴染みのあるもの
数式から式へのこじ付けがしやすいものに
法則性を見出そうとしてるだけ
訪問販売や宗教勧誘にご注意を
0598デフォルトの名無しさん
2011/04/02(土) 04:28:34.03○ 数列から式
そーりー
0599587
2011/04/02(土) 13:30:57.03シャッフル アルゴリズムがいくつか紹介されており、
それらの比較も行われていましたが、処理速度の比較だけのように思いました。
何かの方法でシャッフルの度合いを数値で表し、それで比較する、
ということは書かれていなかったように感じます。
求めているのはアルゴリズムそのものではなく、比較方法の方です。
もし見落としていたらごめんなさい、ご指摘ください。
興味深いアルゴリズムをご紹介頂いたことは感謝してます。
0600587
2011/04/02(土) 13:37:06.88なにか不快な思いをされてしまったのでしたらごめんなさい。
乱数・擬似乱数を使わずにシャッフルすることはできないと思います。
(正確に言えば、毎回異なるシャッフルはできないと思います)
たとえば数列 [0,1,2,3] から数列 [2,0,1,3] を作ればシャッフルですが、
元の数列を使わずに0以上3以下4要素の乱数列 [3,3,1,0] を作っても、
それは私が比較方法を求めているシャッフルではないよと言いたかっただけなんです。
> 乱数生成に使われたアルゴリズムを理解してください
ご指摘ありがとうございます。
>>589 でもアドバイスを頂きましたが、ご指摘に沿って、
まずは乱数生成のアルゴリズムから勉強してみます。
> オカルト板に行ってください
つまり、人が感じるランダムさというものを、
万人が100%納得するものではないにしても、何らかの方法で数値化することは
数学とか科学などの分野では不可能なのでしょうか。
というか、やろうとしてみた数学者とかいないのでしょうか。
例えば、数列内のランダムな2要素を入れ替える処理を
何回やればどの程度シャッフルされるかということは、
確率とかの言葉をつかって何らかの数値で表現できないのでしょうか。
難しいそうだということは承知してますが、これはオカルトの分野ですか?
0601デフォルトの名無しさん
2011/04/02(土) 13:48:33.26擬似乱数列の「ランダムさ」についてはいくらも指標が提案されていて、それはつまり、
サイコロで得られるような真の乱数と、どれぐらい見分けがつかないか、ということな
わけだ。
で、一方、有限な列、たとえば 1, 2, 3, 4 から 2, 1, 4, 3 を作るには、隣どおしを入れ替える、
という操作が 2 回必要なわけで、それが 1 回でできる 2, 1, 3, 4 よりは 1, 2, 3, 4 から遠い、
と言える。
そういうのはランダムネスじゃなくて、数学的には「距離」と言う。1, 2, 3, 4 からどれだけ
「遠い」か、という指標ということになるわけね。
けど、1, 2, 3, 4 が 1 回ずつ現れるパターンは、そのどれもが、有限個のうちのどれか
ひとつでしかないわけで、どのパターンが「よりランダムに思える」かということは結局、
主観の問題なので、数学ではなく認知心理学という科学の問題となる。
0602587
2011/04/02(土) 13:48:42.66> 教師信号として学習させることにより評価関数を作成する
評価関数を作る方法のひとつとしてはとても分かりやすいのですが、
アルゴリズムとランダムっぽさ(ばらつき具合)の間の関係が、
いまいち見えてこないように思えます。
たしかに関数は作れますが、ではあるアルゴリズムを
どう改良すればよりランダムっぽくなるか、ということを
その作られた関数を元にして考えることが難しそうです。
せっかくの提案なのに申し訳ないです。
認知心理学の方は調べてみます。
>>596
コルモゴロフ複雑性は聞き慣れない言葉でしたので、調べてみます。
> 近似を与える方法としては、圧縮アルゴリズムにかけてサイズを比較する
ありがとうございます、やってみます。
完全でなくてもいいです、何を以て完全と言えるかも分からないですから。
数値化する方法が複数提案できれば、それらも比較できますので、大変有り難いです。
0603587
2011/04/02(土) 13:59:36.77とても分かりやすいです。
シャッフル前と後で「2要素を入れ替える処理に換算したら何回必要か」を
数学では距離と言っているのですね。
確かに最終的には主観の問題ではあるのですが、やはり
距離が短すぎるものよりは長いものの方がシャッフルされている感じを受けます。
なのでこれは混ざってる度合いを測る指標の一つとして使えると私は感じます。
色々な数列で実験してみます。
ありがとうございます。
0604デフォルトの名無しさん
2011/04/02(土) 14:05:09.70> シャッフル前と後で「2要素を入れ替える処理に換算したら何回必要か」を
ああ、言い忘れた。
それは「距離」の一例だから。
ウィキペディアの「距離」だとそういう距離についてはちょっとしか触れてなくて、
「距離空間」のほうは専門的過ぎてわけわかんないな。
「ハミング距離」だとか「レーベンシュタイン距離」だとかの記事を見て感覚を
つかんでもらえればいいんだけど...
0605デフォルトの名無しさん
2011/04/02(土) 14:23:48.85人の感性はランダム性とは相性悪い。
(無記憶なはずの「運」を、「いい子と続いたからきっと次は悪いことは」とか思いこむのが人間)
そういう主観指標じゃなくて、客観的な指標なら、
乱数生成の研究してる人は必ず調べると思うよ。
周期性が出ちゃってないかとか、偏りが出てないかとかは数値化できる。
0606587
2011/04/02(土) 14:53:47.71>>604
「ハミング距離」と「レーベンシュタイン距離」ですね。
調べてみます。
>>605
なんて言って質問すればいいのか言葉が分からないのですが、
主観的にもある程度は納得いくような客観的指標とでも言えばいいのでしょうか。
でもそういうのは、より難しいのですよね。
まずは、完全に客観的な指標を考えてみます。
乱数生成における「周期性」や「偏り」てすね、調べてみます。
0607デフォルトの名無しさん
2011/04/02(土) 17:28:41.52何度もシャッフルを生成させて、各パターンのヒストグラムをとるしかないんじゃないか?
アルゴリズムがちゃんとしてるなら理論値も出せるだろうし。
その上で入力列の長さNに対しての空間量・時間量を評価すれば、
速度とかの面も評価できる。
ランダムに選んだ2要素を入れ替える、っていうシャッフル方法だと、
ヒストグラムに偏りが出るから不適格って記事をどっかで読んだ気もするし。
0608デフォルトの名無しさん
2011/04/02(土) 17:30:42.330609デフォルトの名無しさん
2011/04/02(土) 17:39:09.21他の方法を比較する理由なんて、手作業でやるシャッフルのシミュレーションぐらいしか
思いつかないんだけど。
0610デフォルトの名無しさん
2011/04/02(土) 17:47:03.360611587
2011/04/02(土) 17:56:35.74効率のいい優秀なシャッフル アルゴリズムがどうしても今欲しいわけではなくて、
単に比較方法に興味がわいて、いろいろ調べていくうちに面白くなった、それだけの理由です。
あと、アルゴリズムの中に数列の中からある要素をピックアップするという処理が入ってると、
C++ などなら効率いいけど Haskell だと効率悪いから別の方法を探る必要があって、
そうするとばらつき具合にも影響が出てくるのかな、とか色々考えてしまうわけです。
0612デフォルトの名無しさん
2011/04/02(土) 23:35:04.87> あと、アルゴリズムの中に数列の中からある要素をピックアップするという処理が入ってると、
> C++ などなら効率いいけど Haskell だと効率悪いから別の方法を探る必要があって、
なことはないが…
0613デフォルトの名無しさん
2011/04/02(土) 23:46:19.97アレイはHaskellには無いんだっけ?
0614デフォルトの名無しさん
2011/04/03(日) 00:12:58.50まともにHaskellを扱えるとは思えない
0615デフォルトの名無しさん
2011/04/03(日) 08:25:23.08調べたらHaskellにはArrayがちゃんとあるし、最適なアルゴリズムを探す前に、
まずは最適なデータ構造を考えないとだめだなぁ。
アルゴリズムとデータ構造を題材にした本はいろいろあるだろうし読んでみれ。
できればTACPぐらい読めばいいと思うけど、ありゃ高いしな…。
0616デフォルトの名無しさん
2011/04/03(日) 10:25:27.82「人がランダムであるように感じるのはどういうときか」
っていうのはそれなりに広がりのある話題だろ
0617デフォルトの名無しさん
2011/04/03(日) 10:35:57.730618デフォルトの名無しさん
2011/04/03(日) 11:31:51.38Haskell の Array のランダムアクセスの処理速度は測ってみたのか?
Haskell のアルゴリズムを解説した書籍で、
Array は極力使わないように指導される理由は知ってるか?
0619デフォルトの名無しさん
2011/04/03(日) 12:29:49.060620615
2011/04/03(日) 18:56:38.56俺はHaskell使ったことないから軽く調べてみただけなので、
あんまり込み入った事情は知らんかった。申し訳ない。
どうやら見当違いのこと言ってしまったようだ。
Haskell の効率の話に詳しいみたいだから、後は任せた。
>>619
圏論も知らずにモナドを語るのか。
0621デフォルトの名無しさん
2011/04/03(日) 19:08:11.970622デフォルトの名無しさん
2011/04/11(月) 01:12:30.23http://codepad.org/mbp2bmVU
フーリエって、sin(0) cos(0)地点の位置が、時間=0じゃなかった時ってどうやって合わせんの?
ごめん、コードみてないけれども。
a sin(ωt)+ b cos(ωt) = Csin(ωt + φ) (三角関数の合成)
つまり、周期の等しい sin と cos で、任意の位相にずらすことが可能。
0624デフォルトの名無しさん
2011/04/11(月) 01:48:47.46いや、それは解るんだけど、ある単位時間で指定周波数の出力をとろうとすると、
その周波数の波が単位時間内のどこでsin(0)cos(0)になってるかってのが解らないから近似値が取れないんだ。
だから特定周波数の波の開始地点をどうやって調べてんだろうかなって。
なんか、周波数の周期/(周期あたりの時間/2) 回数分だけ開始位置をずらしながら
フーリエで出力を取り出して、もっとも出力が高くなる地点を求めれば
いい気がするんだけど、それであってんのか解んない。
>>623 のレスの焼き直しですが、
フーリエ変換で出てくる sin() 成分の振幅を a、cos() の振幅を b として、A = sqrt(a^2 + b^2) である A が求めている値ではありませんか?
0626624
2011/04/11(月) 02:12:37.58単位時間の長さ = 10
求める周波数 = 1
この条件で、周波数1の開始地点を求めるとすると、
T = 0,1,2,3,4,5,6,7,8,9
と時間があるうち周波数1の開始点は
T = 0,1,2,3,4
のいずれか。0〜4のうちどれかを特定する手っ取り早い方法はどうやるの?って事。
0627デフォルトの名無しさん
2011/04/11(月) 02:16:20.83Aが開始点のずれを考慮してあるならそうです。
開始点を考慮してないなら、さっきリンク載せたコードと同じなんで違うと思います。
0628デフォルトの名無しさん
2011/04/11(月) 11:45:18.16その区間の信号が無限に周期すると仮定して変換するんでしょ。
0629デフォルトの名無しさん
2011/04/11(月) 11:49:20.030630デフォルトの名無しさん
2011/04/13(水) 06:16:01.110631デフォルトの名無しさん
2011/04/13(水) 07:00:22.62ハミング窓とかハニング窓とか
0633デフォルトの名無しさん
2011/04/13(水) 11:31:01.76に決まってんだろ
言わせんな恥ずかしい
0634デフォルトの名無しさん
2011/04/13(水) 15:23:01.980635デフォルトの名無しさん
2011/04/13(水) 18:07:42.010636デフォルトの名無しさん
2011/04/22(金) 21:02:12.02アフィン変換の行列 T = (sx, r0, r1, sy, tx, ty) と便宜上書きますね
あるビットマップB(w30,h30)があった場合に、それを変形して表示しようとして
Ta = (2, 0, 0, 2, 100, 100) :100×100の位置に2倍のスケールで表示
という変形をしてから描画した場合、当然描画された画像Baは
x100,y100の位置からw60,h60の大きさで描画されますよね
その画像Baをメモリにキャッシュしたとして、その画像をBcとします。
便宜上Bcの大きさは元の座標系で(0,0)-(160,160)の範囲を保持しているとします。
もちろんこの範囲の中で描画されているのは(100,100)-(160,160)の60x60部分だけです。
今度はまっさらな座標系にBcを変形して描画することにより、原点にBを描画したいと思った場合に
ただ逆行列をかけるだけだとダメなのがわかるかと思います。
Taの逆行列 Ta-1 = (0.5, 0, 0, 0.5, -50, -50) となるけれど、これを単純にBcに適用すると
Bと同じ画像が原点ではなくて(50, 50)の位置に表示されることになります。
ここで必要な行列Tb = (0.5, 0, 0, 0.5, -100, -100)です。
今回はスケールしか使わなかったので暗算でもなんとかなりますが、
回転も加わった場合でも使えるように、TaからTbを自動的に導き出すには
どうすればよいのでしょうか?
0637デフォルトの名無しさん
2011/04/22(金) 21:16:37.81スケーリング行列Scaleと平行移動行列Transは
Scale×Trans の順でかかってるから、
逆行列を作るなら Trans' × Scale' の順に作らないとダメ。
回転行列が噛んだ時も、Transが最後になることを考えないと。
0638デフォルトの名無しさん
2011/04/22(金) 21:18:12.95まあ大筋は伝わると思うけど…。
0639デフォルトの名無しさん
2011/04/22(金) 21:19:34.06書いてくれたように「逆行列」を考えることで逆変換を求めることができるけれど、
今回の例のように平行移動がついている場合はそんなに単純にはいかないよ
線形変換の場合は、2×2の正方行列 T を用いて変換を表すことができるね
点の座標を縦ベクトルであらわすことにして、点 x が点 x' にうつるとすると
x' = Tx ※ 2×2の正方行列 T と、2行の縦ベクトル x との積
とかける。これを x = の形で表すには、Tの逆行列 T~ を使って
x = T~x'
つまり、一次変換 T の逆変換は、T の逆行列 T~であらわされるわけだった
ところが、一般のアフィン変換だと、平行移動の成分がついているので
x' = Tx + b ※ 2×2の正方行列 T と縦ベクトル x の積に、縦ベクトル b をたす
とあらわされる。これを x = の形にすると
x = T~ (x' - b) ※ 行列 T を、縦ベクトル x から縦ベクトル b をひいたものにかける
= T~x' - T~b
となる。
まとめると、2×3行列 (T b) であらわされるアフィン変換の逆変換は、
2×3行列 (T~ T~b) であらわされる。
x' = Tx + b という式の形に立ち戻って、これを x = の形で表そうと考えるのがポイント
0640デフォルトの名無しさん
2011/04/22(金) 21:30:40.73変換行列は線形変換Aと平行移動bを
A b
O 1
(Oはゼロの並び)にして逆行列を求めるのが分かりやすかった。
0641デフォルトの名無しさん
2011/04/22(金) 21:32:38.54独学だったのでアフィン変換は3x3行列だと思っていた。
3x3行列Tで変換した座標空間ではT-1を適用するだけで原点に戻るけど
大元の座標系で計算するためには、ベクトルを別計算しないといけなかったんですね!
なるほど心から納得できました。計算式としては639さんの書いてくれた
x = T~x' - T~b
を使えば良さそうですね。ちょっと検算してみます、ありがとうございました!
0642デフォルトの名無しさん
2011/04/22(金) 21:44:06.21アフィン変換は 所詮線形変換式でしかないので
どこからどこまでという領域の情報を捨てた場合、変換結果から捨てた領域情報の復元は無理
初回の投影(ビットマップB から Ba への変換)の際、映像だけだはなく
矩形点(0,0), (w,0) (0,h) (w,h) も変換しておきそれを保持: Oa, Wa, Ha, WHa
Bc 空間上で Oa Wa Ha WHa が示す四辺形(アフィン変換は変換の前後で直線は直線として射影するので平行四辺形になる)
内の座標値 V は Ta-1 変換によって (0,0)-(w,H) の矩形に射影される
あとはこのVをくまなくなめてくだけ
0643デフォルトの名無しさん
2011/05/04(水) 21:39:52.05ベクトルと複素数の関係ってどうなってるの?
ベクトルが複素数の一種なの?
0644デフォルトの名無しさん
2011/05/04(水) 21:45:40.12そういうものはなんでもベクトルだよ
複素数も「足し算」「引き算」「係数倍」ができるのでベクトルの一種
ここでは係数っていうのは実数のことでね
0645デフォルトの名無しさん
2011/05/04(水) 21:48:28.34これは複素数空間を実数軸がx方向、虚数軸がy方向と考えたときの2次元ベクタと捉えることができる。
要は、実数は1次元のベクタと捉えたときのアナロジーになっている。
その辺りは数学ガールのコミック版を読むと判り易いかも。
0646デフォルトの名無しさん
2011/05/04(水) 21:57:37.87プログラミングに活かそうな
0647デフォルトの名無しさん
2011/05/04(水) 22:36:59.27どうしたら綺麗に収まるか気になったのよ。あと行列と複素数の関係も気になるしさ。
0648デフォルトの名無しさん
2011/05/04(水) 22:52:38.47特に、交流電気理論の分野。この分野の専門家に
「あんた達、ベクトル、ベクトルって言うけども、それって複素平面の話でしょ?」
って言ったら、
「何言ってるの?だからベクトルじゃないの!」という返事が返って来た。
もう、議論しても無駄だと思った(ちなみに、自分は機械物理系)。
0649デフォルトの名無しさん
2011/05/04(水) 23:40:26.95* 演算子の扱いが変わるからねぇ。
データ構造として同じだからといって、代数系として同じわけじゃない。
数学的にいうと、ベクトル、行列と複素数の関係は↓みたいな感じ。
複素数は実数を代数拡大したもの。
代数拡大体は、元の集合のベクトル空間になる。
複素数の掛け算は、複素数に対する線形変換とみなせる。
ベクトル線形変換は行列として表せる(ので、複素数の積も行列で表現できる)。
0650デフォルトの名無しさん
2011/05/05(木) 08:13:24.52もう、何がなにやらw
0651デフォルトの名無しさん
2011/05/05(木) 08:36:09.120652デフォルトの名無しさん
2011/05/05(木) 12:47:15.03ベクトルクラスと複素数クラスは、インタフェイスか抽象クラスとして提供して、
内部実装を共通化するのが賢いかもしれん。
一応概念的には別のものだから。
0653デフォルトの名無しさん
2011/05/05(木) 16:06:17.82いいと思うんだけど、不勉強でどこまでをベクトルでどこまでを複素数に
すりゃいいかがわからん。外積・内積ならベクトル、テンソルなら複素数
ぐらいの切り分けでいいのだろうか?
0654デフォルトの名無しさん
2011/05/05(木) 18:50:50.12いや、もう、数学わからないなら下手に考えずに、
元の理論がどっちを使ってるかをまんまコピれ。
数学わかってる人は明確に使い分けてるから。
0655デフォルトの名無しさん
2011/05/05(木) 18:52:15.74概念的には >>652 みたいに実装共通化できるとしても、
パフォーマンスチューニングの結果、共通化やめるとか普通にある話。
0656デフォルトの名無しさん
2011/05/05(木) 20:46:31.830657デフォルトの名無しさん
2011/05/05(木) 20:49:31.000658デフォルトの名無しさん
2011/05/05(木) 21:19:07.320659デフォルトの名無しさん
2011/05/05(木) 21:38:47.000660デフォルトの名無しさん
2011/05/05(木) 22:28:20.55似てる点はあったとしても、俺なら複素数とベクトルは別のクラスにして、
実装も別にする。
ベクトルには3次元(外積の定義がある)、n次元もあるし。
また、複素数を成分とするベクトルもあるし。
0661デフォルトの名無しさん
2011/05/05(木) 22:34:50.52継承とかで実装を共通化しようってのはいまいちだと思うな。
0662デフォルトの名無しさん
2011/05/05(木) 22:36:51.13複素数ってものを作ってみたら、それはベクトルの条件を満たしていたって感じなので。
0663デフォルトの名無しさん
2011/05/06(金) 00:12:30.53一般論として言えるのは、
複素数を使った演算で、GPU使って早くなるものもあるだろう
ってくらいかな。
ベクトルだからGPU使える/使って早くなるって単純なものじゃない。
GPUの挙動をある程度分かってないとダメかも。
0664デフォルトの名無しさん
2011/05/06(金) 00:33:02.71例えば、3Dの観点から言えば
表現能力はベクトル/行列と複素数(3Dなら四元数だけど)は特に違いはないけど、
ベクトル同士の積と、複素数同士の積が性質が違うから、便利なほうに変換して使ったりはする。
だから大きな違いは積演算の入れ方だと俺は思うよ。
0665デフォルトの名無しさん
2011/05/06(金) 00:46:45.930666デフォルトの名無しさん
2011/05/06(金) 01:08:51.66「文脈による」。
クオータニオンも、数論な人がいうクオータニオンと、3Dグラフィックな人がいうクオータニオン、
ものは一緒だけど使い方とか全然違う。
複素数もしかり。
0667デフォルトの名無しさん
2011/05/12(木) 00:25:49.47ゴムがびよんびよんする様子を計算したいんだけどあれってどういう構造?
たとえば折れ線をゴムに見立てるとして、折れ線の頂点は隣り合う頂点で相互にベクトルを
向けてるんじゃなかろうかと思う。↓こんな感じで
・ →← ・ →← ・ →← ・ →← ・ →← ・ →← ・ →← ・ →← ・
このゴムを引き伸ばして離した時、伸縮がどうベクトルで実現されていくのかがわからない。
あと伸縮が弾け飛んだゴムの慣性にどう影響すんのかもよくわからん。
0668デフォルトの名無しさん
2011/05/12(木) 00:48:33.63バネならわかる?
伸びているときはバネと一緒で
伸びていないときは束縛力なし
0669デフォルトの名無しさん
2011/05/12(木) 01:25:32.61こういう感じ?
伸長 0倍
・-・-・-・
伸長 2倍
・ → - ← ・ → - ← ・ → - ← ・
伸ばした分だけベクトルの長さが伸びると。
んー。バネもそうだけど慣性が解らない。
ベクトルの長さが何を基準に0に戻るかってのがどうも解らん。
v -= 適当な定数 * 時間 * 単位化(v)
p += v
でいいんかねぇ。できれば自然な伸縮にしたけど。
0670デフォルトの名無しさん
2011/05/12(木) 03:01:46.98厳密に言うと、まさにそういう「各点が引き合う」を無限に細かくして(極限とって)微分方程式にする。
けど、厳密解計算できないし、近似で、何点か代表点取って計算とかかな。
点と点の間隔が一定距離以下なら力書けず、
一定距離以上なら(基準距離からの差分で)距離に比例して力掛ける。
0671デフォルトの名無しさん
2011/05/12(木) 08:56:15.49ゴムの単位長さあたりの重さがρ、全長をL, 分割数をN、
ばね定数をk, 重力定数をg、頂点の位置ベクトルをx_i とすれば、
頂点の加速度ベクトルはこんな感じでしょ。
ρL/N a_i = ρL/N g
-k * (x_i - x_i-1) * max(0, |x_i-1 - x_i| - L/N)
-k * (x_i+1 - x_i) * max(0, |x_i+1 - x_i| - L/N)
境界条件
x_0 = (0,0), x_N = (L,0),
a_0 = a_N = (0,0)
0673デフォルトの名無しさん
2011/05/24(火) 15:18:05.870674デフォルトの名無しさん
2011/05/24(火) 15:19:18.35失せろゴミ
0675デフォルトの名無しさん
2011/05/24(火) 18:05:38.380676デフォルトの名無しさん
2011/05/24(火) 18:09:15.39そりゃ、親の軸→ローカル軸への変換行列を掛けりゃいいんじゃねーの?
0677デフォルトの名無しさん
2011/05/25(水) 14:13:25.04ありがとうございます
もうちょっと整理してきます。。。失礼しました
0678デフォルトの名無しさん
2011/05/27(金) 00:27:34.58レイトレで毎回画像生成して表示するときの( 時間 : 空間 )という比率と、
1度レイトレの結果を画像ファイルに落としそれを何度か開いたときの( 時間 : 空間 )の
比率って違う訳じゃん。その辺を数学的に表したいんで気になる。
あと、未来は既に決まっていて、将来入力される値は、時間を引数とした
(数学的)関数として表現可能とかって概念もその学問に入ってりゃなおいいんですが。
0679デフォルトの名無しさん
2011/05/27(金) 04:06:29.830680デフォルトの名無しさん
2011/05/27(金) 16:13:26.80そりゃ物理学の(なので、物理シミュレーションの)基本だと思うけども。
0681デフォルトの名無しさん
2011/05/27(金) 18:03:28.86未来はすでに決まっていてじゃなくて、
未来はすでに決まっているかのように扱う、がより適してるかもね
FRP の基礎概念だから、FRP 系の論文によく出てくる
0682デフォルトの名無しさん
2011/05/27(金) 22:34:06.74ほぇ〜。じゃあ X x Y x Z x T = S とか4次元の幾何学が成り立っちゃったりしてんの?
4次元ベクトルで過去未来空間を跨いで、幾何図形が構築されてたりすんのかな。
0683デフォルトの名無しさん
2011/06/01(水) 16:28:08.81逆に、インプットを多少で良いので延長してくれる補完てあるのでしょうか?
0684デフォルトの名無しさん
2011/06/01(水) 19:31:41.23意味が分からん
例えば3次スプラインは(ゼロ次も含めて)4つの係数を決定すれば、
その曲線の全範囲(無限)の形が決定される
空間内の点Aから点Bまでを補完するためのスプライン曲線を決定したなら、
つまりそのスプライン曲線のための係数を決定したならば、
その範囲の外側だろうと内側だろうとそんな事は全く関係なく、
点Aと点Bを通る無限に長いスプライン曲線の形が決定される
あなたの言い方を使えば、多少どころか、無限に延長してくれる
ちなみに、この性質はスプライン曲線に限らず、
(少なくとも)多項式で表現できる曲線なら全て当てはまる
0685デフォルトの名無しさん
2011/06/01(水) 23:42:19.92何かを想定して書いているならその想定を詳しく。
0686デフォルトの名無しさん
2011/06/02(木) 08:47:28.17要するに近似による内挿ってのは、フィットする連続関数 f を求めて、
端点 f(0) から 端点 f(1) まで 0 ≦ t ≦ 1 の範囲で t を変化させて元のデータに
ない値を求めるわけだ。
ということは、f(-0.5) や f(1.5) を計算してやれば、その範囲外の結果も求まるけど、
まともに求まるかどうかはその関数次第。
補外法とも言うが検索してみても難しい解説しかないな……
0687683
2011/06/02(木) 12:19:16.10有難うございました。
知りたいことでした、外挿、って言うんですね。
3次スプラインは試しました。けど、変化がちょっと複雑ですね。
0688デフォルトの名無しさん
2011/06/02(木) 12:40:18.32普通はその間に変曲点がくるから、
2点の外側の変化は単調なはずだが・・・
0689デフォルトの名無しさん
2011/06/03(金) 07:44:06.360690デフォルトの名無しさん
2011/06/03(金) 12:40:39.94間を補うから補間であり、外なら補外。
検索したら色々でるんじゃ?
0691デフォルトの名無しさん
2011/06/03(金) 16:11:11.180692デフォルトの名無しさん
2011/06/03(金) 16:17:15.410694デフォルトの名無しさん
2011/06/09(木) 02:15:53.500695デフォルトの名無しさん
2011/06/13(月) 01:19:45.19これ答え32.5cmなんだけど、お前らの頭の中じゃどう順序立てて解く?
順序も何も、見たまんまだよ。
左上から右下に対角線引いてみ。
0697デフォルトの名無しさん
2011/06/13(月) 01:29:31.64何かしら知ってりゃ簡単じゃん。
でも発想ってのは多分個々人に違うと思うんで。
俺はこの辺から思いついたってのを教えておくれよ、
0698デフォルトの名無しさん
2011/06/13(月) 01:32:42.53(今回の問題は、図の条件と位相自体は見ないと解けないと思うけど)
0699デフォルトの名無しさん
2011/06/13(月) 07:12:56.340700デフォルトの名無しさん
2011/06/13(月) 08:24:45.51日本で出て来る図形の問題のほとんどは補助線どこかに引けば解ける。
0701デフォルトの名無しさん
2011/06/13(月) 09:37:03.315+7=5√3とかでてきて解けないんだけど
歪み過ぎてまず矛盾起こさない補助線を引くのが難しいなコレ・・・
0702デフォルトの名無しさん
2011/06/13(月) 10:15:21.980703デフォルトの名無しさん
2011/06/13(月) 11:13:19.37直角表示で完全に>>696の方法に誘導されてるじゃん。
中学生レベルの幾何の問題。
0704デフォルトの名無しさん
2011/06/13(月) 11:34:04.88やっぱ進んでる所は進んでるな
0705デフォルトの名無しさん
2011/06/13(月) 12:03:48.21自分に何が必要かを理解していて存在しないものはそれを自ら作り出す能力、と言えばいいのか。
問題自体は解き方を覚えさえすれば誰でも出来る。
0706デフォルトの名無しさん
2011/06/13(月) 12:59:32.090707デフォルトの名無しさん
2011/06/13(月) 13:01:15.37このfをどうやって求めるかだよなぁ。
これが機械的に求められたら。。。
0708デフォルトの名無しさん
2011/06/13(月) 13:53:36.39能力的に明らかな差があるんだ。
0709デフォルトの名無しさん
2011/06/13(月) 20:35:05.520710デフォルトの名無しさん
2011/06/14(火) 00:05:27.380711デフォルトの名無しさん
2011/06/14(火) 20:18:43.00天才かどうか知らないけど、才能あるなあ
発想が素敵
0712デフォルトの名無しさん
2011/06/14(火) 21:57:33.980713デフォルトの名無しさん
2011/06/14(火) 23:14:47.810714デフォルトの名無しさん
2011/06/14(火) 23:18:14.460715デフォルトの名無しさん
2011/06/15(水) 00:00:19.05ダイバーのハンドシグナルって二進数でやってるの?
それは知らなんだ
0716デフォルトの名無しさん
2011/06/15(水) 06:56:56.01まぁどっちが非凡かというのも意味は無いな。
ただ、ラマヌジャンは空前絶後の存在。
オイラーは空前絶後に見えるがいつか同じ人間現れる。いわゆる天才。
この二人の思考の差異が解れば色々と発想の原点を探れそうな気はしてくる。
0717デフォルトの名無しさん
2011/06/15(水) 07:55:00.3320とかグワシになるんだが、指いたくないのだろうか
0718デフォルトの名無しさん
2011/06/15(水) 15:55:33.490719デフォルトの名無しさん
2011/06/25(土) 21:08:47.880720デフォルトの名無しさん
2011/06/26(日) 00:38:35.350721デフォルトの名無しさん
2011/07/01(金) 22:58:44.68よって数学的帰納法により、全ての人はハゲている。
数学は素晴らしいな、これでおれも明日から胸を張っていきていける。
0722デフォルトの名無しさん
2011/07/01(金) 23:07:06.820723デフォルトの名無しさん
2011/07/02(土) 03:49:43.96もう18のエロエロなんだぜ
0724天使 ◆uL5esZLBSE
2011/07/02(土) 17:31:55.69>>>>>> 髪の毛が一本もない人はハゲである。ハゲの人に髪の毛を一本足してもやっぱりハゲである。 <<<<<<(きリッ!!きリッッ!!!!きリ!!!!ッッッッ!!
--------------------(きリッッッッッ!!!!!キリッッキリッッッッ!!キリ!キリッッッ!!!!
---------
>>>>>>>>>> よって数学的帰納法により、全ての人はハゲている。 <<<<<<<<<<(きリッッッッ!キリッッッッキリッッキリッ!!!!!
---------
>>>>> 数学は素晴らしいな、これでおれも明日から胸を張っていきていける。 <<<<<(キリッッッ!ッッッ!
死ね
0725デフォルトの名無しさん
2011/07/02(土) 18:50:20.790726デフォルトの名無しさん
2011/07/02(土) 20:11:04.480727デフォルトの名無しさん
2011/07/03(日) 00:27:35.16帰納法とかは結構使いそうだけど。
0728デフォルトの名無しさん
2011/07/03(日) 00:56:43.820729デフォルトの名無しさん
2011/07/03(日) 03:50:03.010730ラプラスの天使 ◆daemontaDA
2011/07/03(日) 12:07:57.40あとは数学演算ライブラリがすべてやってくれるんじゃねw
0731デフォルトの名無しさん
2011/07/03(日) 12:18:54.25天才なんだから
おれら凡人はそれだけじゃあかんから、
コツコツと色んな事を学ぶ
0733デフォルトの名無しさん
2011/08/12(金) 22:09:51.02海外のオープンソースのゲームのハナシなんですが
モンスターを攻撃すると、そのモンスターは殴り返してきて戦いが始まります。
モンスターは殴り返すばかりではなく、ときどき魔法攻撃で応戦してきます。
魔法攻撃というのは、火を噴いたり光線を出したりみたいなことです。
if (乱数(0, 99) < 15) 魔法攻撃(); else 殴り攻撃();
これまではこのような計算式でした。
「乱数(0, 99)」は0〜99の整数の乱数を発生する関数です。
つまり、上の式は15%の確率で魔法攻撃を出してたことになります。
ところが最近、このような修正が入りました。
if (乱数(0, 99) < 乱数(7, 15)) 魔法攻撃(); else 殴り攻撃();
これって、どういう意味か理解できないんですけど、みなさんわかりますか?
if (乱数(0, 99) < 11) 魔法攻撃(); else 殴り攻撃();
と同じじゃないかと思うんですが・・・
間違ってます?
0734デフォルトの名無しさん
2011/08/12(金) 22:46:44.45魔法攻撃の確率が7〜15%の範囲で揺らぐようにしたかったのでしょうけど、
乱数(7, 15)を毎回計算したら11%固定と同じですね。
0735デフォルトの名無しさん
2011/08/13(土) 00:32:26.29分散は同じではないかも。
乱数が一様分布のものだとすると、乱数を二つ使うことによって分布が変わるはず。
たぶん。
0736デフォルトの名無しさん
2011/08/13(土) 00:40:55.280737デフォルトの名無しさん
2011/08/13(土) 01:16:24.62大半は気分の問題じゃないの
そこ突っ込まれたら泣くわ
0738デフォルトの名無しさん
2011/08/13(土) 06:10:25.00どちらも試行が独立事象で魔法の確率が同じなので同じ分布になります。
複数の一様分布の和が一様分布でない事はこの件に全く関係ありません。
0739デフォルトの名無しさん
2011/08/13(土) 07:17:34.00乱数表上のポインタを進めるという意味がある可能性が全く無いワケじゃないが
この場合は「単なる気分」に一票かなw
0740デフォルトの名無しさん
2011/08/13(土) 08:22:42.85単に if の条件というだけなら意味ないですな。
0741デフォルトの名無しさん
2011/08/13(土) 10:59:02.71そうなのかー。
確率難しいな…。
0742デフォルトの名無しさん
2011/08/13(土) 13:39:54.81乱数精度悪かったのを無理やり回避してるとかの可能性も。
0743デフォルトの名無しさん
2011/08/13(土) 15:08:19.040744デフォルトの名無しさん
2011/08/13(土) 15:13:53.98としてみるとわかりやすいけど
分母が7から15の間は確率を曖昧にしたいという
意図が感じられるね。
0745デフォルトの名無しさん
2011/08/13(土) 15:16:13.280746デフォルトの名無しさん
2011/08/13(土) 15:20:38.110747デフォルトの名無しさん
2011/08/13(土) 15:30:06.620748デフォルトの名無しさん
2011/08/13(土) 15:35:58.570749デフォルトの名無しさん
2011/08/13(土) 15:38:47.240750デフォルトの名無しさん
2011/08/16(火) 17:57:35.010751デフォルトの名無しさん
2011/08/17(水) 00:02:48.36レスありがとうございます。やっぱ変ですよねぇ。
プログラミング言語はjavaです。「乱数()」はjavaのjava.util.Randomのラッパーです。
開発元は英語しか受け付けてもらえないコミュニティなんですが
実は私、工業高校卒で英語はまったく話せないんです(T_T)
なんとか意思を伝えようと
> if (乱数(100) < 乱数(7, 15))
> and
> if (乱数(100) < 11)
> is the same
って書きこんだんですが、ロシア人もチリ人もアルゼンチン人もブラジル人もみな一様に
「乱数(7, 15) は 7〜15の乱数を発生させる関数です。いつも11固定ではありません」
みたいな返事です。
俺・・・算数は得意だが英語がまったく話せない
開発チーム・・・英語は話せるが算数がニガテ
こんな状況です。う〜ん困った。
0752デフォルトの名無しさん
2011/08/17(水) 00:07:32.30「乱数(100)」は「乱数(0,99)」とまったく同じ結果を返す関数です。
引数節約のラッパー関数です。中身は同じです。
0753デフォルトの名無しさん
2011/08/17(水) 00:43:22.380754デフォルトの名無しさん
2011/08/17(水) 00:51:16.16乱数を二回呼んでるくらいで、何か実質的な問題があるの?
変と言うほど変でもないと思うし、英語も通じてるみたいだし、
困る理由が分からないなあ。
0755デフォルトの名無しさん
2011/08/17(水) 01:32:48.000から99のセルを0から10まで(<11)埋めた1行のテーブル
計算値 11/100 = 0.11
0から99のセルを0から6まで(<7)
0から99のセルを0から7まで(<8)
:
0から99のセルを0から6まで(<15) 埋めた9行のテーブル
計算値 (7/100 + 8/100 + ... + 15/100 ) / 9 = 99/100 / 9 = 0.11
それぞれテーブルを画像化して見せてやればいいんじゃない?
0756デフォルトの名無しさん
2011/08/17(水) 01:34:14.250757デフォルトの名無しさん
2011/08/17(水) 08:05:10.90>>733
「変更前と変更後で確率が変わらない」ことを開発陣が理解しているかが問題。
もし理解しているなら、
『 開発陣の気分的な問題で、ソースコードの見た目を変えてみた 』
という くだらない話で終わる。
もし理解してないなら、変更後のソースコードは開発陣が意図した変更に
なってないということであり、開発陣にとって問題あり。
0758デフォルトの名無しさん
2011/08/17(水) 09:04:00.98ttp://www.dotup.org/uploda/www.dotup.org1913110.png
0759デフォルトの名無しさん
2011/08/17(水) 10:36:45.83if (乱数(100) < 乱数(7, 15))
武器を使って確実に攻撃したいという理性(左片)と、でも魔法も使ってみたいな、という野心(右辺)が
モンスターの脳内アリーナ(ifステートメント)で毎回火花を散らせているいう様子をコードで表現したものだろう。
乾いた砂礫上の波紋に流水を見る「枯山水」に通ずるものがある。
0760デフォルトの名無しさん
2011/08/17(水) 11:04:09.97理工系の奴から「それ確率論的に同じじゃね?」とかツッコミが入るのがお約束だったなぁ。
0761デフォルトの名無しさん
2011/08/17(水) 14:15:36.86分散に優位差があるようには見えないな
0762デフォルトの名無しさん
2011/08/17(水) 20:38:33.91うん
乱数を複数回使うのが開発陣の意図通りのコードかもしれないし、
後で修正を加えるのを見越して適当なコードのままで残しているだけかもしれないし、
そもそも『数学的な意味で厳密な意図』が無いのかもしれないし、
動作テストしてみていい感じで動けばいいという判断かもしれないし、
確率的に意味が無いというのははっきりしているけど、他人のコードだしね
0763デフォルトの名無しさん
2011/08/18(木) 03:54:28.860764デフォルトの名無しさん
2011/08/18(木) 21:00:33.020765デフォルトの名無しさん
2011/08/21(日) 19:55:35.18オブジェクトを頂点にしとくのが無難?
それともmapで[参照元頂点,参照先頂点]って感じで格納しとくべき?
0766デフォルトの名無しさん
2011/08/21(日) 21:12:37.060767デフォルトの名無しさん
2011/08/22(月) 08:10:47.570768デフォルトの名無しさん
2011/08/22(月) 22:09:04.88the art of computer programmingとか漁れば、もっとマイナーなデータ構造があるかも。
力になれなくてごめんね。
0769デフォルトの名無しさん
2011/08/22(月) 23:15:49.68誰か詳しい人居ないかな。
頂点数が変動してても、頂点辺りのノード数固定とかだと
もっと効率の良い別の構造とかありそうな気がするんだよね〜。
0770デフォルトの名無しさん
2011/08/23(火) 07:39:30.46とりあえず、>>766 (Wikipediaに載ってる様な二択) でやってみてくれ
その上で、どのようなケースで何がどのように不満なのか、
そのようなケースは頻出するのか、まずい部分を洗い出してくれ
そうすれば、その部分を改善する方法を提示できる人が現れる「かも」しれん
0771デフォルトの名無しさん
2011/08/23(火) 10:00:12.36何をやりたいかによって遣うデータ構造も変わってくる。
0772デフォルトの名無しさん
2011/08/29(月) 16:51:12.160773デフォルトの名無しさん
2011/08/29(月) 16:53:59.880774デフォルトの名無しさん
2011/08/29(月) 18:07:10.49ていうかその場合は親の新しい座標系に従って世界系での位置と姿勢を算出するだけか。
0775デフォルトの名無しさん
2011/09/14(水) 22:13:21.30ポリゴン集合体の全ての頂点を最速で巡回するいい方法ってある?
メッシュのレンダリングに使いたいんだけど。
0776デフォルトの名無しさん
2011/09/14(水) 22:37:19.450777デフォルトの名無しさん
2011/09/14(水) 22:39:10.34ちょっと違うだろ
メッシュのレンダリングに使うんだから、
単に巡回するんじゃなくて、三角形をひとつひとつ描くように巡回しないと
0778デフォルトの名無しさん
2011/09/14(水) 22:47:43.09意図してるところはそのとおりです。
0779デフォルトの名無しさん
2011/09/14(水) 22:52:51.19全ての面をたどったり、全ての頂点をたどったり、
開いているメッシュの境界線をたどったり、といったことが容易にできる
その手のメッシュ用データ構造の派生として、
Compact Array-Based Mesh Data Structures という論文に
配列ベースのコンパクトで速い方法が比較的分かりやすく書かれてた(と思う)
0780デフォルトの名無しさん
2011/09/14(水) 23:01:06.22論文が英語過ぎて読めんけど頑張ってみるわ。
0781デフォルトの名無しさん
2011/09/14(水) 23:20:34.07日本語の解説サイトを紹介したかったんだが、
いくら探しても B-Rep とは何かというサイトしか見つからん
肝心の「どういう構造」で「どうやって使うのか」が英語しか無いんだ
C++ のソースから読み取るという手もあるが
0782デフォルトの名無しさん
2011/09/15(木) 10:23:44.88グラフデーターベースっていうのがあって
Polygon-->Edge-->Vertex
みたいな構造をこいつに登録しておいて
Traverseっていう探索エージェントに条件を書いてやれば簡単に辿れるよ
俺は Scala + Neo4j でいろいろ遊んでるがおもしろいね
0783デフォルトの名無しさん
2011/09/16(金) 04:16:57.87何を勉強すれば良いでしょうか
0784デフォルトの名無しさん
2011/09/16(金) 07:17:43.83そんなんで答えが得られると思ってるのか?
甘えるな
何をやろうとして、どこまで理解できて、何が分からないのか
可能な限り具体的に質問してくれ
0785デフォルトの名無しさん
2011/09/16(金) 08:45:28.11心開いて股開く
0786デフォルトの名無しさん
2011/09/20(火) 09:18:40.37時刻の「時」を得る部分で「分」以下を丸める必要があった。
例えば 現在時刻が5時59分59秒なら6時を得る必要がある。
現状では 時=現在時刻÷3600 という計算式(少数切捨て)なので結果は5時になってしまうんだ。
そこで修正案をこう提案した。時=(現在時刻+1800)÷3600
これがおよそ1ヶ月前。
コミュニティの掲示板には「動作テストしてみます」というレスが付いたまま放置。
数日前から「誰かテストしてください」とか「テストOKですか」とかのレスが付き始めた。
でもなかなか修正されない。かなり致命的なバグなのに・・・
ガイジンさん、なぜ1800を足せば治るのか、理屈が理解できないのかな。
「四捨五入」みたいなもんですよ。時間なら「1799捨1800入」すればいいだけじゃん。
なんでわからないんかな。そんなに難しいのかな。
説明しようと思って「四捨五入」を英語に訳そうとしたら、「round off」だって・・・そりゃわからんハズだ。
日本語の「四捨五入」なら4以下は捨てる、5以上は切り上げる、ってわかりやすいけど
英語の「round off」だと理屈を説明しずらい。
そりゃアメリカ人には理解できんハズだ。をいアメ公、一生悩んでろ!
0787デフォルトの名無しさん
2011/09/20(火) 09:32:23.83それと俺だったらそんなマジックナンバー使ったメンテしにくいコードは採用しない
0788デフォルトの名無しさん
2011/09/20(火) 10:17:39.870789デフォルトの名無しさん
2011/09/20(火) 10:18:10.950790デフォルトの名無しさん
2011/09/20(火) 11:12:17.690.5 hour = 0.5 x 3600sec で分かるだろう。
0791デフォルトの名無しさん
2011/09/20(火) 18:21:42.62- ceil if min >= 30 (it's half hour)
- floor otherwise
とか。
0792デフォルトの名無しさん
2011/09/20(火) 18:26:52.73秒換算の式がわからないってのが本当なら、
式の具体的な値の例を列挙すると説得できるかも。
0793デフォルトの名無しさん
2011/09/20(火) 21:05:07.81純粋にプログラミングの為の数学と算数の話かと思ったら説明方法の話かよ
長文に期待して損した
0794デフォルトの名無しさん
2011/09/21(水) 08:37:22.29どこから 0.5 なんて数字が出てくるんだ?それ説明するのにかえって苦労するよ
0795デフォルトの名無しさん
2011/09/21(水) 09:09:40.340796デフォルトの名無しさん
2011/09/21(水) 09:12:17.730.4999999999999999999999999999捨0.5入
0797デフォルトの名無しさん
2011/09/21(水) 13:15:00.50四捨五入の時は位を指定するだろう。
0798デフォルトの名無しさん
2011/09/21(水) 13:58:44.60頭悪すぎ
笑わせるな
0799デフォルトの名無しさん
2011/09/24(土) 00:46:42.34コミュニティーにそのパッケージのリンク張ってやれば?
0800デフォルトの名無しさん
2011/09/24(土) 12:57:06.62git で pull リクエスト送りつけてやったらええねん
0801デフォルトの名無しさん
2011/09/24(土) 13:27:36.620802デフォルトの名無しさん
2011/09/25(日) 10:01:00.83そんな俺が圏論の勉強をはじめてみますね
カテゴリー?「5(キリッ」
0803デフォルトの名無しさん
2011/10/01(土) 00:59:17.670804デフォルトの名無しさん
2011/10/01(土) 01:57:45.100805デフォルトの名無しさん
2011/10/01(土) 07:41:01.82具体的には、JavaScriptの
ans[0] = V / U;
ans[0] = atan( ans[0] ) / (Math.PI / 180);
このような記述をWindowsMobile用のMortScriptに書き直したいのです。
できないなら諦めますが、どなたかご存じの方いたらお願い致します。
0806デフォルトの名無しさん
2011/10/01(土) 08:05:31.58atan(x) = x - x^3/3 + x^5/5 - x^7/7 ... (|x| < 1)
0807デフォルトの名無しさん
2011/10/01(土) 14:58:30.74このコードとか移植しやすそうかなー。
>>806の式での実装。
0808デフォルトの名無しさん
2011/10/01(土) 20:54:09.50応用次第では、表引きで充分じゃね?
0809805
2011/10/02(日) 05:15:36.38次期バージョンのβ版に逆三角関数ありました・・・。
なんて言ったらいいのか、その、ごめんなさい。
0810デフォルトの名無しさん
2011/10/02(日) 08:24:31.66ここは質問スレではないから気にするな。
お題を振ってみたと思えばいい。
0811デフォルトの名無しさん
2011/10/05(水) 15:02:04.410812デフォルトの名無しさん
2011/10/05(水) 15:45:35.03からも透視投影変換は同型射ではないのは明らか
0813デフォルトの名無しさん
2011/10/05(水) 18:29:56.380814デフォルトの名無しさん
2011/10/05(水) 20:38:27.910815デフォルトの名無しさん
2011/10/23(日) 17:59:40.36同型でないからアフィン変換でない、っていうのは乱暴のような
0816デフォルトの名無しさん
2012/03/25(日) 18:10:03.62に書かれているソースのうち、aとbを求めてる以下のコードの意味が分かりません…
説明の
> We calculate an X/Y offset based on the current distance from the centre of the ripplemap and the magnitude of the ripple at this point.
に対応していて、1024は特に意味が無いんだろうなあ、という予想なんですが、
それより先、どなたか解説頂けないでしょうか。
//where data=0 then still, where data>0 then wave
data = (short)(1024-data);
//offsets
a=((x-hwidth)*data/1024)+hwidth;
b=((y-hheight)*data/1024)+hheight;
0817デフォルトの名無しさん
2012/03/25(日) 21:37:19.32波高が1024段階の整数で表現されてるから1024って使ってるんじゃないかな。
0818816
2012/03/25(日) 22:23:34.03ありがとうございます。
a' = nx'
ただし、
a' = a - hwith
x' = x - hwith // current distance from the centre of the ripplemap
で、nが0<=n<=1を取るdata(magnitude of the ripple at this point)の関数にするために
n = 1 - data/1024 (1行目で代入する前のdata)
と決めてる、ってことですかね。
つまりdataが大きくなるにつれnが小さくなればそれっぽく見えるので
必ずしもこの関数である必要はない、というわけですかね…
0819デフォルトの名無しさん
2012/03/26(月) 01:56:07.04a=((x-hwidth)*data/1024)+hwidth;
≒x-(hwidth*data/1024)+hwidth;
≒x+hwidth*(1-data/1024)
だってことが分かれば、そんなに理解に苦労はしないっしょ。
0 ≦ (1-data/1024) ≦ 1
だろうから、hwidthは単にエフェクトの横方向の倍率表してるだけ。
波紋エフェクトのキモになってるのは
short data = (short)((ripplemap[mapind-width]+ripplemap[mapind+width]+
ripplemap[mapind-1]+ripplemap[mapind+1])>>1);
ここだから、他のとこは別に何でもいいっちゃいいね。
0820デフォルトの名無しさん
2012/06/04(月) 23:01:53.86int *x = { ほげ,はげ,うんこ... }; //サンプルデータの配列
int ave = 0;
for (i = 0; i < 100; i++) {
ave = (ave + x[i]) / 2;
}
printf("平均=%d", ave);
0821デフォルトの名無しさん
2012/06/04(月) 23:20:16.93ave は int じゃダメだろ。少数点以下が切り捨てられるから。
double ave = 0.0;
で試してみてよ。
0822デフォルトの名無しさん
2012/06/04(月) 23:31:32.89http://codepad.org/yC0x5p3H
0823デフォルトの名無しさん
2012/06/04(月) 23:35:27.630824デフォルトの名無しさん
2012/06/04(月) 23:52:02.13それは、例えば要素数が3つの場合、下記の等式が成り立つか、ということだろ?
(a + b + c)/3 = ((a/2 + b)/2 + c)/2
左辺は小学校で習う平均値の計算式
右辺は君が提示したプログラムを式にしたもの
左辺から右辺を引いてゼロになるか計算してみれば、質問しなくても分るだろ
で、一般の要素数 n でどうなるかは数学的帰納法で分るだろ
プログラム以前の話だよ
といっても、まさにプログラムのための数学の話だが
0825デフォルトの名無しさん
2012/06/05(火) 00:10:52.95平均 = (総和) / (要素数)
で求めるのがいいと思うよ。
つまり822の一番上の関数。
0826デフォルトの名無しさん
2012/06/05(火) 00:40:54.63{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; (集合Aの平均+集合Bの平均)÷2=AとBの平均・・・
ヾ;;;ハ ノ .::!lリ;;r゙
`Z;i 〈.,_..,. ノ;;;;;;;;> そんなふうに考えていた時期が
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f. 俺にもありました
~''戈ヽ `二´ r'´:::. `!
0827デフォルトの名無しさん
2012/06/05(火) 19:15:10.64加重平均の一種としてそのようなコード使うことあるな。
0828デフォルトの名無しさん
2012/06/08(金) 04:40:12.73円周率を「3」で計算するゆとり世代ですね、わかります。
0829デフォルトの名無しさん
2012/06/08(金) 05:22:16.660830デフォルトの名無しさん
2012/06/08(金) 14:00:37.92およそ 3
だったぞ
少なからず漏れの記憶では
0831デフォルトの名無しさん
2012/06/08(金) 14:34:51.730832デフォルトの名無しさん
2012/06/08(金) 19:29:57.95逐次的に平均値を計算したいのでしょうか。
数列の先頭から要素を一つずつ取り出し、
その度にそれまでの平均値を更新していくような。
それでしたら、次の計算が使えます。
x[n] : 数列 x の n 番目の要素 (n = 1, 2, 3 ・・・)
a[n] : 数列の n 番目の要素までの平均値
a[n] = a[n-1] + (x[n] - a[n-1]) / n
>>820 のプログラムを改良するなら、こんな感じでしょう。
(まぁ、int 型なのは論外ですが)
ave = ave + (x[i] - ave) / i;
ただし、毎回丁寧に要素数で割る計算に比べて、誤差が蓄積し易いので注意。
0833デフォルトの名無しさん
2012/06/08(金) 22:12:02.61Sn = Σ (1/2)^(n-i)Ai になるわけか。
指数関数的に過去の寄与が減ってゆくわけね。
0834デフォルトの名無しさん
2012/06/08(金) 22:41:01.570835デフォルトの名無しさん
2012/06/09(土) 10:52:56.31右打ちのときは打率2割
左打ちのときは打率8割
平均すると打率5割!
0836デフォルトの名無しさん
2012/06/09(土) 13:14:02.905割の確率で打ったと言える。
0.5 * 0.2 + 0.5 * 0.8 = 0.1 + 0.4 = 0.5
でも、右打ちした確率が 0.7 で、左打ちした確率が 0.3 なら、
2割強の確率で打ったことになる。
0.7 * 0.2 + 0.3 * 0.3 = 0.14 + 0.09 = 0.23
と思ったんだけど、合ってるかな?
0837デフォルトの名無しさん
2012/06/09(土) 16:26:56.05何故0.3*0.3?
そこは0.3*0.8だろ。
0838デフォルトの名無しさん
2012/06/09(土) 16:31:29.80そうだよね、単なるミスだ
0.7 * 0.2 + 0.3 * 0.8 = 0.14 + 0.24 = 0.38
4割弱といったところか
0839デフォルトの名無しさん
2012/06/09(土) 17:22:59.61> 右打ちした確率が 0.5 で、左打ちした確率も 0.5 なら、
そこは確率じゃなくて割合だろ…
0840デフォルトの名無しさん
2012/06/09(土) 18:10:12.31試験は、3で計算していいだけで
教えるのは、3.14...で教えるぞ
うちのガキだってそこは知ってる
0841デフォルトの名無しさん
2012/06/09(土) 21:36:32.110842デフォルトの名無しさん
2012/06/11(月) 02:33:17.740843デフォルトの名無しさん
2012/06/11(月) 07:03:03.97それだと、計算の最初から円周率を3として計算するから誤差が大きすぎる。
いくらゆとりでも、円周率を3として数値を出すのは最後の最後だ。
0844デフォルトの名無しさん
2012/06/11(月) 12:05:46.71いろいろわかってない人なんだろうな
0845デフォルトの名無しさん
2012/06/11(月) 18:25:54.18直す作図をきちんと解けるんだろうな。
0846デフォルトの名無しさん
2012/06/11(月) 19:52:05.110847デフォルトの名無しさん
2012/06/11(月) 21:21:20.54まずヒモを用意します。
0848デフォルトの名無しさん
2012/06/12(火) 02:08:58.480849デフォルトの名無しさん
2012/06/12(火) 10:06:00.830850デフォルトの名無しさん
2012/06/12(火) 10:21:23.08いずれにしても、たとえば柱のような形状の体積は「底面積×高さ」という一般法則があるのに、
入試で「円筒の体積」の問題を出したのは範囲外だのなんだのと、「個別のルールを、法則などを
考えることは一切せずに暗記せよ」というのが教育である、という根本的な心得違いが根底に
あって、それを是正するつもりは一切ないようだから、日本が今後復活する見込みはない。
0851デフォルトの名無しさん
2012/06/12(火) 12:35:37.58とにかく計算練習をさせる。
スポーツ感覚でクラス対抗やったり、計算クイズ合戦をやったり、
ご褒美を出したりして、可能な限り飽きさせない。
(クラス対抗やるなら、仲間のミスをフォローできるシステムだと尚良い)
計算練習だけさせるから、積分の計算くらいまでならできるだろ。
で、中学生になってから、そもそも君たちが使ってる「数」って何だろうね、
と言ってペアノの公理からスタートする。
こんな世界に生まれたかった。
0852デフォルトの名無しさん
2012/06/12(火) 12:50:29.990853デフォルトの名無しさん
2012/06/12(火) 17:36:36.50> 入試で「円筒の体積」の問題を出したのは範囲外
「円筒(円柱のような?)の体積はこのようにして求められる」という一言が問題に併記されていれば
問題ない気がするけど、それもなかったってことなのかなぁ。
なかったんだろうなぁ。とすれば問題の不備だなぁって思えるよ。
0854デフォルトの名無しさん
2012/06/12(火) 20:46:36.60ただし、「回答誤差×100点点数を差し引く」
とかならきっとみんな頑張る。
0855デフォルトの名無しさん
2012/06/12(火) 21:51:19.06間違えて円周率を虚数単位で計算しちゃった、テヘ
とかいうお茶目な生徒の点数はどうなるの?
0856デフォルトの名無しさん
2012/06/12(火) 21:57:04.230857デフォルトの名無しさん
2012/06/12(火) 22:22:06.47高校の頃, 持ち点100点で純粋に減点法, クラスの平均点が’マイナスなんて教師がいたな
#
0858デフォルトの名無しさん
2012/06/12(火) 22:27:22.85赤点もマイナスなら別に問題ないな…w
0859デフォルトの名無しさん
2012/06/13(水) 16:19:26.29消費税の計算を出来なくする愚民化政策です
0860デフォルトの名無しさん
2012/06/13(水) 18:15:15.84複数桁×1桁→複数桁×複数桁という流れだったような気はするけど、
それが今2桁までしかやらないとしても、問題ないような。
割り算掛け算の筆算でずらずらずらずら書かなくていいのはチラ裏にやさしくはあるけれど。
0861デフォルトの名無しさん
2012/06/13(水) 18:52:53.50良い時代になったもんだ
0862デフォルトの名無しさん
2012/06/13(水) 20:45:56.41この一連の式変形の中で興味深い点を挙げ、その理由を述べよ。
積分を使って解く面白い文章問題を作れ。
などなど。
こういうのを数問だけ出して、部分点を細かくして採点すればいいんだよ。
それだけで、これまでの授業でどこまで理解できているのか先生も生徒も把握できる。
テスト中スマフォで問題文を掲示板に投稿する馬鹿もいるだろうから、
答案内容があやしい奴は後日、数学の時間に不意打ちで答案の詳細を述べさせる。
0863デフォルトの名無しさん
2012/06/13(水) 20:59:13.410864デフォルトの名無しさん
2012/06/14(木) 05:47:44.15そうすると採点が死ねる
この辺は自然言語処理の世界の人に頑張って欲しいな
0865デフォルトの名無しさん
2012/06/14(木) 15:29:10.06言わんとすることはわかりつつ、野暮なツッコミをすると
> この一連の式変形の中で興味深い点を挙げ、その理由を述べよ。
これは、理解が追いついていない生徒と理解しきった生徒という対極にいる生徒が
「特に興味深い点はありません」と解答しかねない
0866デフォルトの名無しさん
2012/06/15(金) 08:37:02.160867デフォルトの名無しさん
2012/06/15(金) 12:24:39.90それって数学じゃなくて国語のテストじゃね?
0868デフォルトの名無しさん
2012/06/15(金) 12:36:48.60というのを、数学ガールで学んだ
0869デフォルトの名無しさん
2012/06/15(金) 19:29:02.96履修範囲外で0点になる自信がある
0870デフォルトの名無しさん
2012/06/15(金) 21:26:02.380871デフォルトの名無しさん
2012/06/15(金) 23:15:11.850872デフォルトの名無しさん
2012/06/19(火) 09:19:59.07ノーベル教育賞を作ったら考えてやる
0873デフォルトの名無しさん
2012/06/19(火) 09:54:49.960874uy
2012/06/19(火) 13:45:15.17Yコンビネータ(笑)
数学得意な人から見て
recursionはどうですか
0875デフォルトの名無しさん
2012/06/19(火) 17:33:18.570876デフォルトの名無しさん
2012/06/19(火) 18:47:39.660877デフォルトの名無しさん
2012/06/19(火) 20:34:13.20学校の演習では腐るほどやるだろ。
0878デフォルトの名無しさん
2012/06/19(火) 21:14:18.22>>874
callを全部unfoldしたら、recursionはY-combinatorと等価なんじゃ?
0879uy
2012/06/21(木) 00:04:36.31あとそれはゴミ、
コードは更新された
def recursion &b
f = ->*n{ b[ *n , &f ] }
end
0880uy
2012/06/21(木) 00:06:39.30並べるとYコンビネータ(笑)のゴミさが際立つ
0881デフォルトの名無しさん
2012/06/21(木) 00:24:52.330882デフォルトの名無しさん
2012/06/23(土) 04:33:40.04■ このスレッドは過去ログ倉庫に格納されています