トップページ⇒tech
1001コメント336KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
プログラムに必要な数学、算数に関する話題について
語りましょう。TIPS/Q&Aスレです。
008679NGNG
>>85
>初めての数字が出現する位置から、2進数?

む〜、なかなか渋いところを突いている。

でも基数表現自体とは無関係だと
言ってもよいと思う。
0087デフォルトの名無しさんNGNG
規則その1
0が無い
0088デフォルトの名無しさんNGNG
とりあえず頭から
1
1

2
1 2 1

3
2 2 1 3 1 2 2

4
1 3 1 3 2 2 1 4 2 2 3 3 1 3 1

と、初出の数nが出たら、そこから次にそのnが出る位置と反対側に次の数n+1が出てるような希ガス。
で、上で抜き出した数列の項数は順番に1,3,7,15,31,…
階差を取ると2,4,8,16,…

というのがちゃんと続いているのかどうかは2行目までしか確かめてません
008979NGNG
どうやら答えが出ないようなので、正解を出しておく

2=2[=>1], 3=3[=>1], 4=2*2[=>2], 5=5[=>1], 6=2*3[=>2], 7=7[=>1], 8=2*2*2[=>3],
9=3*3[=>2], 10=2*5[=>2], 11=11[=>1], 12=2*2*3[=>3], 13=13[=>1], 14=2*7[=>2],
15=3*5[=>2], 16=2*2*2*2[=>4], 17=17[=>1], 18=2*3*3[=>3], 19=19[=>1],
20=2*2*5[=>3], 21=3*7[=>2], 22=2*11[=>2], 23=23[=>1], 24=2*2*2*3[=>4],
25=5*5[=>2], 26=2*13[=>2], 27=3*3*3[=>3], 28=2*2*7[=>3], 29=29[=>1],
30=2*3*5[=>3], ...

やっぱり数の世界は奥が深いね・・・
0090デフォルトの名無しさんNGNG
orz
0091デフォルトの名無しさんNGNG
2スタートが思いつかねー。
というかこの場合、1=1[=>0]もあってしかるべきではないのか。
0092デフォルトの名無しさんNGNG
1は素数じゃないだろ?
0093デフォルトの名無しさんNGNG
普通はそうだわな
0094デフォルトの名無しさんNGNG
>92
1が素数でないことと、この数列から省略されることは関係ないだろ。
数列の値が「素因数分解して出てくる素因数の数」だとするなら
1には0という正当な解が存在している以上、
省略されているのは不当な難易度の上昇だと思うんだが。
0095デフォルトの名無しさんNGNG
くやしいのは分かったけど責任転嫁はほどほどにな
0096デフォルトの名無しさんNGNG
加藤先生なら頭に0がなくても瞬時に分かっただろう。
素数に馴染んでない普段の行いが悪いんだよ。多分。
0097デフォルトの名無しさんNGNG
素因数分解ってのは、手間がかかる割りに、人手を使ってやる意味のあまりない操作だし、
問題としていまいち面白みに欠ける。
0098デフォルトの名無しさんNGNG
すっぱい葡萄だな
0099デフォルトの名無しさんNGNG
おまいら命がけで数学やってるか?
0100デフォルトの名無しさんNGNG
健康の為なら死ねる
0101デフォルトの名無しさんNGNG
>>88 がかなりいい線行っている
フェルマーの大/小定理と素数と約数の数は全て関連がある
0102デフォルトの名無しさんNGNG
Newton法とか数値解析の基本的なアルゴリズムについてかかれている
お勧めの本はありますか?
0103デフォルトの名無しさんNGNG
sage で聞いても 皆見てないだろ。

しかしまあ、ニュートン法とかは大抵の入門書のレベルだと思うが
0104デフォルトの名無しさんNGNG
>>102
Cによる理工学問題の解法
薄いし、大きいし、見やすい。
0105デフォルトの名無しさんNGNG
>>104
http://www.amazon.co.jp/exec/obidos/ASIN/4526036323/
これですね。
他にも何かありましたら、推薦お願いします。(Fortran, Pascal などでかかれたものはパス)
0106デフォルトの名無しさんNGNG
横槍。
本じゃなくてウェブサイトがあれば教えてほしいです。
やっぱりただ読みが一番。
0107デフォルトの名無しさんNGNG
>105
Fortran も Pascal のも簡単だから覚えておいたほうがいいよ。
数値計算の本は Fortran で書かれているものが結構あるよ。
0108デフォルトの名無しさんNGNG
>>106
webサイトではあまり良いサイトはないな。
タダだと内容までチープだよ。
0109デフォルトの名無しさんNGNG
「ゲームで使える物理シミュレーション」
著者/訳者名 : 本田大地
出版社名 : 秀和システム
発売予定日 : 2004年06月下旬
サイズ : B5判・460頁
販売価格 : 4,410円(税込)
最新のゲームでは当たり前に使われるようになった、物理シミュレーションプログラミングの書籍。
ゲーム中のキャラクタや背景の動きを、物理的な法則に則って表現するためのプログラミング技法を解説する。
物理法則の基本から、プログラミング方法、更に実際にゲームで利用するための方法などを収録。
付属CDには物理シミュレーションプログラミングを利用したキャラクタを操作して動かせるデモなどを収録予定

これ、どーなったんだ???
0110デフォルトの名無しさんNGNG
>>109
それは糞本
0111デフォルトの名無しさんNGNG
人間ってないものねだりだからな
なんで喪前らが論理を求めるかってーと
喪前らの顔って黄金比率が狂っているからだろうな
つまり気持ち悪がられる

よって 友達いなーーーーーーーーーーーーーーい


そうだろ?wwwwwwwwwwwww
HA-HA-HA-HA-HA-HAWWWWWWWW
0112デフォルトの名無しさんNGNG
友達いないのは多分きみだけだと思う
0113デフォルトの名無しさんNGNG
>>112
俺もいない
0114デフォルトの名無しさんNGNG
早く人間になりたい
0115デフォルトの名無しさんNGNG
>>114
どうすれば人間になれるでしょうか?
数学的な対象を頭の中に構成する能力は
生まれたときに既に決まっているような気がします。
0116マイク ◆yrBrqfF1Ew NGNG
double i = std::sqrt(-1);

何故だめなんだ?
0117デフォルトの名無しさんNGNG
>>116
黙れ基地外
0118デフォルトの名無しさんNGNG
math::complex 使え
0119デフォルトの名無しさんNGNG
mother::complexも使え
0120デフォルトの名無しさんNGNG
差分法でもやってろってこったw
0121デフォルトの名無しさんNGNG
連立方程式反復法で解けないじゃん・・・orz
発散するか振動するかだ・・・・orz
0122デフォルトの名無しさんNGNG
どういう?
0123デフォルトの名無しさんNGNG
>>115
禿同。同じように語学や音楽の才能も生まれたときに決まってる気がする。
努力である程度まではカバーできてしまうところから多くの誤解が生まれるけど。
0124デフォルトの名無しさんNGNG
乳幼児期の脳が出来上がるまでの教育、環境も大きいと思う。
0125デフォルトの名無しさんNGNG
生まれたときに決まってる=生まれる前から決まってる=乳幼児期の教育、環境で努力しても手遅れ

ということが言いたいんだとESP。

才能があっても努力しなければ伸びないのは当然だから
乳幼児期の教育、環境が充実していることが前提での話であることは明らか。
0126デフォルトの名無しさんNGNG
つまりどんなに努力してもあなたはガウスにはなれませんよ、と。
0127マイク ◆yrBrqfF1Ew NGNG
ということはつまり俺はノイマンになれないがシャノンにはなれるということか。
0128デフォルトの名無しさんNGNG
9歳過ぎたらバイリンガルにはなれないとか、そういう話かね。
0129デフォルトの名無しさんNGNG
>>127
シャノンも厳しいと思いますが
0130デフォルトの名無しさんNGNG
だからといって精子にも戻れない
0131デフォルトの名無しさんNGNG
そろそろ、ご相談受付いたしましょうか?
0132デフォルトの名無しさんNGNG
プログラムを上手く書くための数学ってのもあると
思うけど、
こういうプログラム書いてるととか、こういう言語
使ってるとこれこれの分野の数学がわかるように
なりますよ、ってのはないのですか。
一番下の娘の大学受験が来月から始まるので。
もう手遅れか・・・。
0133デフォルトの名無しさんNGNG
>>132
マセマティカ買ってやれ。
0134デフォルトの名無しさんNGNG
>>100
AHAHAHAHAHA!!!!!!
0135デフォルトの名無しさんNGNG
>>132
BASIC(VBにあらず)を勉強するとセンター試験の数学で有利だ。
卑怯なくらい有利だ。

他に使途がない上にもう手遅れっぽいけどな。
0136デフォルトの名無しさんNGNG
>>135
BASICの問題は検算ができないからお勧めしないぞ。
確かに圧倒的に簡単なのは簡単なんだけど。
0137デフォルトの名無しさんNGNG
まぁだからって他の問題がむずかしいとかじゃないんだけどな
0138デフォルトの名無しさんNGNG
>>132
情報論とか
記号論理とか
数学基礎論とか
形式言語論とか
プログラムの意味論とか

プログラミング言語やってると
すんなり入りやすい(上におもしろい)
数学はいろいろあるが
どれもこれも大学入ってからの科目で
受験には役立ちそうもないな。
0139デフォルトの名無しさんNGNG
>>138
AO入試では役に立つかもよ。
0140デフォルトの名無しさんNGNG
質問いいでしょうか?
 デジタル信号処理関係の本を連続して読んでる(谷萩・辻井先生の本あたり)んだけど

線形予測分析付近から
R(0) R(1)とか、E[f(t)^2] とかがどの本見ても具体的説明が無く出て来て困惑しています。
R(i-j)=E[s(t-i)*s(t-j)] とあり、自己相関関数を表しているとありますので
この事からR(0)は  R(0) = Σs(t)^2   R(1) = Σ[s(t)*s(t-1)]付近なんだろなと思うのあけど

Q E[式] Eは期待値を意味しており・・・・という説明はあるのですが、具体的には
  平均か、Σとほぼ同じ意味だろうと想像してるのですが、どちらが正しいでしょうか?

どちらでもあっても、矛盾は無い感じは感じなんだけど・・・
0141デフォルトの名無しさんNGNG
>>140
普通は平均。
どっちでも単に定数倍になっただけだからあんまりその後読み進めていくうえで支障はなさそう。
0142140NGNG
>>141 ありがとうございました
0143デフォルトの名無しさん05/01/31 22:46:49
y=f(x)で実測して得られたx、yを元に最小二乗法でf内の係数を求めたいのですが
どうすればいいでしょうか?
一次関数の場合は公式を本で見つけましたが、それ以外についてはやり方が分かりません。
ごり押しの計算でもいいので求め方を教えてください。
0144デフォルトの名無しさん05/02/01 01:45:24
>>143
漏れ、プログラマーでは無い(実験職)けど
方法は関数電卓のマニュアルに載ってるよ。
対数関数や指数関数くらいは。

もっと詳しく知りたければ大学理系学部レベルの数理統計学の教科書や線形代数学、物理学大辞典でも調べなさい。
非線形関数の取扱いとかも乗ってますよ。
0145デフォルトの名無しさん05/02/01 07:44:28
最小2乗だから R=Σy^2を最小にするわけ

有限範囲に最小点があるなら、微分するとゼロにる点のどれかが最小だから
R'(各パラメータ群)=0

これを満たす各パラメータから、Rを計算して実際に最小の点になる点を探す
0146デフォルトの名無しさん05/02/01 08:29:26
(x_i, y_i)に対して適当な関数y=f(x)を仮定してR=Σ(y_i-f(x_i))^2を最小にするんでしょ。
0147デフォルトの名無しさん05/02/01 08:54:43
微分を使え!
0148デフォルトの名無しさん05/02/01 09:25:02
ふつう偏微分しる
0149デフォルトの名無しさん05/02/01 09:33:47
>>143
ttp://www.eli.hokkai-s-u.ac.jp/~kikuchi/ma2/chap08.html
ttp://aoki2.si.gunma-u.ac.jp/LaTeX/nonlinear.pdf

納得いかないときはここ嫁
ttp://aoki2.si.gunma-u.ac.jp/lecture/mb-arc/arc015/399.html
0150デフォルトの名無しさん05/02/03 18:44:36
f(x)をa0 + a1 * x + a2 * x^2 + a3 * x^3 + ... + an * x^n で表せるn次式で近似するとする
サンプル点は、x0, x1, x2, ... xm のm+1点あり、m≧nとする
近似すべき式は、以下の行列式になる

 ( 1 x0 x0^2 x0^3 ... x0^n ) ( a0 )  ( f(x0) )
 ( 1 x1 x1^2 x1^3 ... x1^n ) ( a1 )  ( f(x1) )
 ( 1 x2 x2^2 x2^3 ... x2^n ) ( a2 ) = ( f(x2) )
 ( 1 x3 x3^2 x3^3 ... x3^n ) ( a3 )  ( f(x3) )
 (      |      ) ( | )  (  | )
 ( 1 xm xm^2 xm^3 ... xm^n ) ( an )  ( f(xm) )

上の式の行列を前から順に、A X Yとおくと

 X A = Y

Xの転置行列をtXとすると

tX X A = tX Y

tX X は正方行列なので、通常は逆行列が存在するそれをinv(tX X)とおくと

inv(tX X) tX X A = inv(tX X) tX Y
 ↓
A = inv(tX X) tX Y

Aがわかれば、多項式の係数がわかるので、近似式がわかる
とまあ、こんな感じだったと思うぞ
0151デフォルトの名無しさん05/02/03 18:46:45
式が見づらいね

 ( 1 x0 x0^2 x0^3 ... x0^n ) ( a0 )  ( f(x0) )
 ( 1 x1 x1^2 x1^3 ... x1^n ) ( a1 )  ( f(x1) )
 ( 1 x2 x2^2 x2^3 ... x2^n ) ( a2 ) = ( f(x2) )
 ( 1 x3 x3^2 x3^3 ... x3^n ) ( a3 )  ( f(x3) )
 (       |        ) ( | ) (  | )
 ( 1 xm xm^2 xm^3 ... xm^n ) ( an ) ( f(xm) )

0152デフォルトの名無しさん05/02/04 00:32:11
最小2乗法?
特殊な場合を除いて特異値分解して解く
つーかNumerical Recipes嫁 載ってるコードは糞らしいが
0153デフォルトの名無しさん05/02/14 18:56:31
C言語でのはさみうち法のプログラムを教えてください。
0154デフォルトの名無しさん05/02/14 18:57:33
>>153
マルチポストには教えられません。
0155デフォルトの名無しさん05/03/18 00:31:28
漸化式についてアホでもわかるよう教えてけれ
0156デフォルトの名無しさん05/03/18 00:34:15
アホに説明すると、1から120まで延々と教えなければならなくなるので面倒だ
0157デフォルトの名無しさん05/03/18 00:47:02
数学ができる人、なにかコツとかあるんですかっっ?!!!!!!!
n + 1 のべき乗とか文字みるとクラクラしてくるんです!!
0158デフォルトの名無しさん05/03/18 00:51:53
>>157
数学ができなくても生きていけるよ。
馬鹿は無理をせずに馬鹿を貫け。
0159デフォルトの名無しさん05/03/18 00:57:56
なるぽ。
0160デフォルトの名無しさん05/03/18 04:16:18
。ぽるな
0161デフォルトの名無しさん05/03/19 12:18:57
>>155
ぐぐれ。
0162デフォルトの名無しさん05/03/20 18:57:43
教科書見れば早いのに。
0163デフォルトの名無しさん2005/03/25(金) 09:25:38
おまえ氏ねよぼけ
0164デフォルトの名無しさん2005/03/28(月) 06:03:35
数学はこつこつやってるんだが
俺の脳のスタックが足りねえこと痛感よ
0165デフォルトの名無しさん2005/03/31(木) 08:56:58
最近でた、結城の本買った奴いる?
0166デフォルトの名無しさん2005/04/11(月) 19:27:12
atan2って、atanが有るから要らないように思うのですが?
どうなんでしょう
0167デフォルトの名無しさん2005/04/11(月) 19:34:52
xがゼロかどうかを気にしなくて済む。
sage
0168デフォルトの名無しさん2005/04/11(月) 19:35:26
ええけつしとるのぉ(*´Д`)ハァハァ
http://133.86.144.64/
http://133.86.144.64/~ss.jpg
http://dawn3/
http://dawn3/~ss.jpg
0169デフォルトの名無しさん2005/04/11(月) 19:36:20
sageと書こうとしたらフォーカスが変なとこにあったorz

0170デフォルトの名無しさん2005/04/11(月) 20:45:27
数学のatanこそ廃止して atan2 の形式で統一したほうがいい気がする。
atanの定義はイクナイ
0171デフォルトの名無しさん2005/04/12(火) 05:18:26
atan(y / x)とatan(-y / -x)が同じになっちゃうからなあ
0172デフォルトの名無しさん2005/04/12(火) 11:00:18
>>170
C言語のライブラリに atan は要らないってことよね?
それなら禿同。
0173デフォルトの名無しさん2005/04/12(火) 19:00:03
算数は三桁の暗算できないくらいだがプログラムはバリバリですが何か?
0174デフォルトの名無しさん2005/04/12(火) 22:03:00
>>173
まあ、それは俺も。
っていうかね、紙の上で微分方程式解いたりするよりも暗算の方が苦手。
0175デフォルトの名無しさん2005/04/12(火) 22:54:07
>>173-174
もまえらこれやってみろ。安産力付くぞ
ttp://r_akky.at.infoseek.co.jp/mental.html

漏れは10000越えると死ぬ
0176デフォルトの名無しさん2005/04/14(木) 13:33:16
質問なんですが、あるグラフが木であることを判定する方法として
全頂点の入次数が1以下であることを確認するよりも効率的な方法はありますか?
0177デフォルトの名無しさん2005/04/14(木) 15:32:31
>全頂点の入次数が1以下であること
の意味が判らないけど、これで十分条件になるの?
A→B, B→C, C→A みたいな循環構造が木と判定されない?
0178デフォルトの名無しさん2005/04/27(水) 19:42:54
おい、wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
なんか言えよ雑魚
が
0179デフォルトの名無しさん2005/04/28(木) 01:01:10
>>178


0180デフォルトの名無しさん2005/04/28(木) 03:17:27
たぶん誰もわからないだろうけど、ツェラーの公式で
なぜ曜日が求まるのか、詳しく教えていただけませんか・・・?
0181デフォルトの名無しさん2005/04/28(木) 03:25:56
わざわざ回答をしてくれる人を遠ざけるような枕をつける理由がわからない。
とりあえずぐぐってみて一番正確かつ詳しく説明してそうなページを探し、
その上でどこがわからないかを文章にしてみたら?
0182デフォルトの名無しさん2005/04/28(木) 05:14:03
これでも買っとけ
http://www.amazon.co.jp/exec/obidos/ASIN/4797329734/ref=ase_2217800-22/249-3298830-5914740
0183デフォルトの名無しさん2005/04/28(木) 06:53:53
曜日を求めるには、グレゴリウス暦の初日から何日たったかを求めてそれを7で割った余りで一意に決まる
ただし、7で割った余りのみが問題になるので、何日たったかを正確に求める必要は無く
7の倍数だけずれた日数を求められれば、それを7で割った余りで曜日を求めるには十分である

一年は365日なので、うるう年を無視するとn年間で日数は 365 * n 日

しかし途中にうるう年が入るとややこしくなる、うるう年で増える一日を
一年の最後に持っていくと都合がいい
そうしないと、うるう年となる年の曜日を求める際に、年の途中ではいる2月29日以降は
一日だけ日数を増やす必要がでてくる
したがって、1月は前年の13月、2月は前年の14月として扱う

この変形グレゴリウス暦の西暦0年3月1日からY年間で何日になるかは、
うるう年を考慮に入れて、以下のようになる

365 * Y + [Y / 4] - [Y / 100] + [Y / 400]
= 364 * Y + Y + [Y / 4] - [Y / 100] + [Y / 400]

曜日を考える分には7の倍数は無視できる
364 * Y = 7 * 52 * Yで、7の倍数だから無視すると

Y + [Y / 4] - [Y / 100] + [Y / 400]
0184デフォルトの名無しさん2005/04/28(木) 06:55:03
Y をツェラーの公式流に 100 * c + y (0 <= y < 100) と置くと

100 * c + y + [(100 * c + y) / 4] - [(100 * c + y) / 100] + [(100 * c + y) / 400]
= 100 * c + y + 100/4 * c + [y / 4] - 100/100 * c - [y / 100] + [100/400 * c + y / 400]
= (100 + 25 - 1) * c + y + [y / 4] - [y / 100] + [c / 4 + y / 400]

ここで、0 <= y < 100より、[y / 100] = 0, [c / 4 + y / 400] = [c / 4]なので

= 124 * c + [c / 4] + y + [y / 4]
= 119 * c + 5 * c + [c / 4] + y + [y / 4]

119 * c = 7 * 17 * cで、7の倍数なので無視して

5 * c + [c / 4] + y + [y / 4]
= [21/4 * c] + [5/4 * y]

[21/4 * c] + [5/4 * y]を西暦2005年3月1日(火曜日)について計算すると、111で
111を7で割った余りは、6だから、6が火曜日となる
ツェラーの公式に合わせて6が土曜日になるには、3を足せばよい

[21/4 * c] + [5/4 * y] + 3

これを、7で割った余りから、各年の3月1日の曜日は求められる
0185デフォルトの名無しさん2005/04/28(木) 06:55:56
ここからさらに、4月以降の1日(ついたち)の曜日について考える
m月1日(3 <= m <= 14)が3月1日から何日たっているかを求めればよい
その日数を f(m) であらわすとすると
[21/4 * c] + [5/4 * y] + 3 + f(m) を求め、それを7で割った余りから各月の一日の曜日は求められる
なお、うるう年に増える一日は年の最後の日であるので、f(m) の値ははうるう年の影響を受けない

f(3) = 0 は自明、3月は31日あるので、f(4) = f(3) + 31 = 31 だが
例によって7の倍数分は無視しても曜日には影響は無いので28引いて、f(4) = 3 としても差し支えない
つまり、f(m) を求めるに際しては、3月は3日しかないと考えても結果は変わらない

この考えに従って、各月の日数を3月から順に列挙すると
3, 2, 3, 2, 3, 3, 2, 3, 2, 3, 3, 0 or 1となる
1日(ついたち)の曜日を考える上では最後の月である14月が何日であるかは影響が無い
したがってこの数列は 3, 2, 3, 2, 3, 3, 2, 3, 2, 3, 3 と考えてよい
これをよく見ると、3,2,3,2,3というパターンの単純な繰り返しとなっている
このことから、5ヶ月は13日(3+2+3+2+3=13)であると考えることができるのである

したがってこのことから、f(m) は、[13/5 * m]に定数項を足したもので表現できそうである
[13/5 * m]の値を m = 3 から m = 14 について列挙してみよう

7, 10, 13, 15, 18, 20, 23, 26, 28, 31, 33, 36

この数列の隣同士の値の差が各月の日数と合致していればよい
実際に求めると 3, 3, 2, 3, 2, 3, 3, 2, 3, 2, 3
これは、上述の数列とよく似ているが一つ横にずれている(残念)
■ このスレッドは過去ログ倉庫に格納されています