04/09/15 15:04:11
ln(x)のテイラー展開って収束悪いみたいなので
何か他にいい求めかたないですか?
47:デフォルトの名無しさん
04/09/15 16:19:46
>>46
数学板とかで聞けば?
48:デフォルトの名無しさん
04/09/15 16:45:41
>>46
収束悪いって?
時間がかかるって言うことを言っているの?
それとも精度?
49:デフォルトの名無しさん
04/09/15 16:55:46
>46
log(x)/2 = (x-1)/(x+1) + ((x-1)/(x+1))^3/3 + ... +((x-1)/(x+1))^(2k-1)/(2k-1)+...
とか有名ですね.他にもあると思うので適当に数値計算の本を当たってみてください.
50:デフォルトの名無しさん
04/09/15 17:14:06
>>47
わかりました明日あたり図書館行ってきます
>>48
時間(?)と収束半径ともにです
51:デフォルトの名無しさん
04/09/15 19:54:37
前スレの最初の話題がそのlogの計算みたいだよ。 過去ログ見えないなら
3 名前:1 投稿日:2001/08/07(火) 11:28
早速だけど、
非力なCPUで対数を計算させたいのです。
log(a)を求めるのに、a=b*2^n として
bを0.5~の範囲に調整し
x = 1-b として(xは0~0.5の範囲)
ln(b) = -(x+x^2/2+x^3/3+x^3/4+x^5/5+x^6/6+x^7/7)
さらに高速なのは
x=(1-b)/(1+b) として(xは0~0.333の範囲)
ln(b) = -2*(x+x^3/3+x^5/5+x^7/7+x^7/9)
log(b) =-0.86859*(x+x^3/3+x^5/5+x^7/7+x^7/9)
6 名前:デフォルトの名無しさん 投稿日:2001/08/07(火) 14:05
>>3
除算がそれほど苦じゃないなら 0.5~1にした後で
√0.5以下なら√0.5で割ってから級数展開すれば収束が早くなるよ
後でlog(√0.5)を足せばいい。
あるいは平方根(lこれはニュートン法3回程度で十分)出してから
級数展開してもいいし
10 名前:1 投稿日:2001/08/07(火) 18:55
log(a)を求める方法ですが、a=b*2^n として
bを0.5~1の範囲に調整し
log(a)= -0.933*b*b + 2.775*b -1.8437 + log(2)*n
で求める精度が出ました
52:デフォルトの名無しさん
04/09/16 14:47:46
以記より求められる式は
log(x)/2 = (x-1)/(x+1) + ((x-1)/(x+1))^3/3 + うんこ + ((x-1)/(x+1))^(2k-1)/(2k-1) + うんこ
53:デフォルトの名無しさん
04/09/16 15:02:52
>>51
ありがとうございます参考にします
54:デフォルトの名無しさん
04/09/17 08:25:19
log( (1+x)/(1-x) ) = 2*tanh^-1(x) 逆双曲線関数を使うって事か?
逆双曲線関数を使うなら、CORDICも使えそうだね
55:デフォルトの名無しさん
04/09/19 02:25:00
floatangle_r = (PI / (float)ring);
floatangle_s = (2.0f * PI / (float)segment);
// リンググループを生成する
for(DWORD i=0; i<ring; i++){
floatr0 = sinf((float)(i + 0) * angle_r);
floatr1 = sinf((float)(i + 1) * angle_r);
floaty0 = cosf((float)(i + 0) * angle_r);
floaty1 = cosf((float)(i + 1) * angle_r);
// 現在のリングについてセグメントグループを生成する
for(DWORD j=0; j<segment+1; j++){
floatx0 = sinf(j * angle_s);
floatz0 = cosf(j * angle_s);
floatx1 = sinf(j * angle_s);
floatz1 = cosf(j * angle_s);
// 頂点データを入力する
vert->vPos = D3DXVECTOR3(r0 * x0, y0, r0 * z0) * radius;
vert->vNormal = D3DXVECTOR3(x0, y0, z0);
vert->fU = -((float)j) / (float)segment;
vert->fV = (float)(i + 0) / (float)ring;
vert++;
vert->vPos = D3DXVECTOR3(r1 * x1, y1, r1 * z1) * radius;
vert->vNormal = D3DXVECTOR3(x1, y1, z1);
vert->fU = -((float)j) / (float)segment;
vert->fV = (float)(i + 1) / (float)ring;
vert++;
}
}
頂点シェーダで球を作るものですが、
rがsinでyがcosの理由がよく分からないのですが。
長文コピペすみません。
56:デフォルトの名無しさん
04/09/21 18:12:21
>>55
円柱座標系なんじゃないの?
57:デフォルトの名無しさん
04/09/22 06:45:14
おまえら国語もがんばってください
58:デフォルトの名無しさん
04/09/22 06:52:13
まあ、太陽は地球のまわりを回っているわけだが。
59:デフォルトの名無しさん
04/09/22 12:57:10
DQN学生が宇宙中の星が地球を中心に回ってると解釈してもなんら問題ないよな
円周率も3だし
わかりやすいDQN判別法として有効じゃん
60:デフォルトの名無しさん
04/09/22 13:46:02
x = 1 / (1 - x)
61:デフォルトの名無しさん
04/09/22 18:54:15
(1 + x)^n = 1 + nx
62:デフォルトの名無しさん
04/09/22 19:15:31
>>60と>>61は何が言いたいのかわからん。
63:デフォルトの名無しさん
04/09/22 19:44:16
>>60はx = (1 ± √3i)/2
>>61はxが小さいときに成り立つ公式
いきなり出てくる意図はわからん。
64:デフォルトの名無しさん
04/09/24 11:19:09
>>61の間違った解き方
(1 + x)^n = 1 + n・x
log_(1 + x) (1 + x)^n = log_(1 + x) (1 + n・x)
n = log_(1 + x) n・(1/n + x)
n = n・log_(1 + x) (1/n + x)
log_(1 + x) (1/n + x) = 1
1/n + x = 1 + x
n = 1
65:デフォルトの名無しさん
04/09/24 20:31:10
>>64
まちがってはいないね。
>>61は公式というか近似式だな。
66:デフォルトの名無しさん
04/09/27 13:45:27
>>65
実際に間違えてないか?
67:デフォルトの名無しさん
04/10/06 17:46:51
ガウス消去法って、どなたかご存じないですか?
そのプログラムを組みたいと思ったのです。
3x+9y-6z = -6 …α
4x+10y-2z = 16 …β
2x+3y-z = -1 …γ
ってのがあったとします。そこで、はじめ第1番目方程式の
第1番要素の係数を1にするみたいです。
つまり、3x+9y-6z = -6 を3でわって『 x+3y-2z = -2 』にするみたいですね。
そのあとβ,γの第1要素にある係数を掛けて0(ゼロ)にするらしいですが、
ゼロにするために掛ける、係数の求め方を忘れてしまいました。
適当だったら、γに-2を掛けてβと減じればゼロになるのでしょうが、法則性がわからなければ
プログラムが組めません。
法則性があったような、なかったような…
ご存知の方がいらっしゃれば、情報提供お願いいたします。。。
68:デフォルトの名無しさん
04/10/06 17:58:18
>>67
ガウス消去法ってのは知らんけど、
各式に x の係数の逆数をかければ係数全部1になる。
後はただの引き算。
69:デフォルトの名無しさん
04/10/06 18:00:18
googleで「ガウスの消去法」で検索したら一発で出たぞ。
検索くらいしる。
URLリンク(www.fuka.info.waseda.ac.jp)
70:デフォルトの名無しさん
04/10/06 18:01:07
ぐぐれ
ガウス 消去 #include
71:デフォルトの名無しさん
04/10/07 03:13:42
>>69-70
どうも、アリガトウございました^^
お陰でやっとわかりました。一応検索したんですが、、、むぅ。
>>68
すごいっす。そんなやり方もあったのですね。
貴重な情報どうもです!
72:デフォルトの名無しさん
04/10/12 21:54:06
DP(動的計画法)マッチングの基礎から学べる書籍やウェブ知りませんか?
サウンドプログラミングのスレにいったんですが、
微妙に違う感じなんで、こっちで質問させてください。
最終的には2つの異なる音声信号にかけたいと思っていますが、
とりあえず最初のうちは文字列比較などの一般的な話から
理解につとめたいと考えております。
スレ違いだったら御指摘くださいませ。
73:デフォルトの名無しさん
04/10/12 23:43:05
ぐぐればしっかりページが出てくるが……。
74:デフォルトの名無しさん
04/10/13 07:59:11
難しく考えると難しいが、プログラミングにすりゃ簡単だ。
ようは
uzeeezou と
uzeeeezo を比較するのに 順にマッチさせて、一つ先とのマッチが大きければ先にすすめるだけ
75:デフォルトの名無しさん
04/10/13 18:17:27
google電卓リファレンス
URLリンク(hp.vector.co.jp)
76:デフォルトの名無しさん
04/10/13 22:48:22
オーストラリアで10分後に自動的に扉の開く公衆トイレがあるとよ。
>>28
トリビアの泉だが。
77:デフォルトの名無しさん
04/10/14 07:53:51
>>72
「音声認識の基礎(上)」(NTTアドバンステクノロジ)がくどいほど詳しく載ってるよ。
78:デフォルトの名無しさん
04/10/14 18:31:12
>>73 >>74 >>77
レスありがとう参考にしてみます。
いちおうウェブ検索しましたが、
私にわかるほど噛み砕いた解説がなかったのです。
79:デフォルトの名無しさん
04/10/14 20:24:25
数学能力検定試験
この数列の規則を見つけてくれ。
(その道の専門家ならば、一目見ればすぐ分かるかも?)。
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 5 2 2 2 4 1 2 2 4 1
3 1 3 3 2 1 5 2 3 2 3 1 4 2 4 2 2 1 4 1 2 3 6 2 3 1 3 2 3 1 5 1 2 3 3 2 3 1 5 4
2 1 4 2 2 2 4 1 4 2 3 2 2 2 6 1 3 3 4 1 3 1 4 3 2 1 5 1 3 2 5 1 3 2 3 3 2 2 5 2
2 2 3 3 4 1 7 2 3 1 4 2 2 4 4 1 3 1 4 2 2 2 6 2 2 3 3 1 4 1 4 3 3 2 4 1 2 2 6 2
5 1 3 3 2 1 5 2 3 3 3 1 3 3 5 2 2 1 5 1 3 2 4 2 3 2 3 4 3 1 7 1 2 3 4 1 4 1 5 2
2 2 4 2 2 3 5 2 4 1 3 2 2 2 6 2 2 2 4 2 3 1 6 4 2 1 4 1 3 3 4 1 4 2 3 2 3 1 6 1
3 5 3 3 3 2 4 2 4 1 5 2 2 3 8 1 3 2 4 3 2 1 5 2 3 2 3 1 5 1 5 3 2 3 4 1 2 3 5 1
3 1 3 3 3 2 7 2 3 2 3 1 4 2 4 4 2 2 5 2 2 2 5 2 4 1 4 2 3 1 5 1 2 4 3 1 3 2 7 2
3 2 6 3 2 2 4 2 4 1 3 3 2 2 6 1 3 2 4 2 4 3 4 3 2 1 4 1 4 4 6 1 3 2 3 3 2 1 6 2
2 3 4 2 3 1 5 3 3 2 4 1 3 4 4 2 5 1 4 2 2 1 8 3 2 3 3 1 4 2 5 2 2 2 5 1 2 3 6 1
3 2 3 5 3 2 5 1 3 2 3 2 4 2 6 2 3 1 5 1 2 3 4 3 3 2 3 3 3 1 7 1 3 3 3 2 3 1 5 4
3 1 4 2 2 2 7 1 5 2 3 2 2 3 5 1 2 4 4 1 4 1 5 3 2 1 5 2 3 2 4 2 3 3 4 3 2 1 7 2
2 3 4 2 6 1 4 2 4 1 4 2 3 4 5 2 3 1 5 2 2 1 6 2 3 3 3 1 4 2 9 4 2 2 4 2 3 2 5 1
4 1 3 4 2 2 6 2 3 3 4 2 3 2 4 2 2 3 6 1 2 2 6 2 4 1 3 3 4 2 5 2 2 3 3 1 4 2 6 3
2 1 4 2 2 5 4 1 4 1 4 2 3 3 8 1 3 2 4 2 3 2 4 4 2 1 5 2 3 2 5 1 5 3 3 2 3 1 6 1
3 3 3 3 3 1 6 3 3 2 5 1 2 3 5 1 3 1 4 4 2 2 6 4 2 3 3 2 5 1 4 2 2 2 4 3 3 3 8 1
3 1 4 3 3 1 7 2 4 3 3 1 3 2 5 3 3 1 5 1 2 3 4 3 4 2 3 2 3 2 7 1 2 5 4 1 3 2 5 2
3 1 5 2 4 2 5 2 4 1 3 4 2 2 5 2 2 2 5 1 5 2 7 3 2 2 4 1 3 3 4 2 4 3 3 2 2 1 7 2
3 2 3 3 4 1 5 6 3 2 4 1 2 4 6 2 4 1 4 3 3 1 5 2 2 3 4 2 5 1 5 2 3 2 6 1 2 3 5 1
3 2 3 4 2 2 9 1 4 2 3 1 4 3 4 3 2 2 5 2 3 4 6 2 3 1 3 2 3 2 6 2 2 3 3 1 4 2 7 3
80:デフォルトの名無しさん
04/10/15 07:44:47
全然わからねえorz
81:デフォルトの名無しさん
04/10/15 08:58:11
目を細めると何かが見えますね。
82:デフォルトの名無しさん
04/10/15 11:46:02
01210111220212210010110
21101111121201211222002
01202210211212220221222
83:79
04/10/15 17:57:12
回答が出ないようなら出すけど、
もう少し待った方がいい?
間違いなく擬似乱数なんかではないよ。
84:79
04/10/15 18:05:02
ちょっとヒント。
今は全て一桁の数だけど、
そのうち2桁や3桁の数も出てくる筈。
85:デフォルトの名無しさん
04/10/15 19:28:59
初めての数字が出現する位置から、2進数?ってところまで来たけど、そこから判らん。
86:79
04/10/15 19:50:35
>>85
>初めての数字が出現する位置から、2進数?
む~、なかなか渋いところを突いている。
でも基数表現自体とは無関係だと
言ってもよいと思う。
87:デフォルトの名無しさん
04/10/15 22:33:20
規則その1
0が無い
88:デフォルトの名無しさん
04/10/16 00:09:07
とりあえず頭から
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行目までしか確かめてません
89:79
04/10/16 07:39:14
どうやら答えが出ないようなので、正解を出しておく
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], ...
やっぱり数の世界は奥が深いね・・・
90:デフォルトの名無しさん
04/10/16 08:47:52
orz
91:デフォルトの名無しさん
04/10/16 13:57:36
2スタートが思いつかねー。
というかこの場合、1=1[=>0]もあってしかるべきではないのか。
92:デフォルトの名無しさん
04/10/16 15:03:40
1は素数じゃないだろ?
93:デフォルトの名無しさん
04/10/16 15:22:43
普通はそうだわな
94:デフォルトの名無しさん
04/10/16 16:00:13
>92
1が素数でないことと、この数列から省略されることは関係ないだろ。
数列の値が「素因数分解して出てくる素因数の数」だとするなら
1には0という正当な解が存在している以上、
省略されているのは不当な難易度の上昇だと思うんだが。
95:デフォルトの名無しさん
04/10/16 16:23:39
くやしいのは分かったけど責任転嫁はほどほどにな
96:デフォルトの名無しさん
04/10/16 16:43:18
加藤先生なら頭に0がなくても瞬時に分かっただろう。
素数に馴染んでない普段の行いが悪いんだよ。多分。
97:デフォルトの名無しさん
04/10/17 12:45:38
素因数分解ってのは、手間がかかる割りに、人手を使ってやる意味のあまりない操作だし、
問題としていまいち面白みに欠ける。
98:デフォルトの名無しさん
04/10/17 16:53:23
すっぱい葡萄だな
99:デフォルトの名無しさん
04/10/17 17:29:02
おまいら命がけで数学やってるか?
100:デフォルトの名無しさん
04/10/17 17:46:00
健康の為なら死ねる
101:デフォルトの名無しさん
04/10/17 17:48:37
>>88 がかなりいい線行っている
フェルマーの大/小定理と素数と約数の数は全て関連がある
102:デフォルトの名無しさん
04/10/23 11:02:44
Newton法とか数値解析の基本的なアルゴリズムについてかかれている
お勧めの本はありますか?
103:デフォルトの名無しさん
04/10/23 11:32:10
sage で聞いても 皆見てないだろ。
しかしまあ、ニュートン法とかは大抵の入門書のレベルだと思うが
104:デフォルトの名無しさん
04/10/23 12:45:46
>>102
Cによる理工学問題の解法
薄いし、大きいし、見やすい。
105:デフォルトの名無しさん
04/10/23 13:32:46
>>104
URLリンク(www.amazon.co.jp)
これですね。
他にも何かありましたら、推薦お願いします。(Fortran, Pascal などでかかれたものはパス)
106:デフォルトの名無しさん
04/10/23 19:30:27
横槍。
本じゃなくてウェブサイトがあれば教えてほしいです。
やっぱりただ読みが一番。
107:デフォルトの名無しさん
04/10/23 19:32:15
>105
Fortran も Pascal のも簡単だから覚えておいたほうがいいよ。
数値計算の本は Fortran で書かれているものが結構あるよ。
108:デフォルトの名無しさん
04/10/23 19:32:36
>>106
webサイトではあまり良いサイトはないな。
タダだと内容までチープだよ。
109:デフォルトの名無しさん
04/10/27 03:56:32
「ゲームで使える物理シミュレーション」
著者/訳者名 : 本田大地
出版社名 : 秀和システム
発売予定日 : 2004年06月下旬
サイズ : B5判・460頁
販売価格 : 4,410円(税込)
最新のゲームでは当たり前に使われるようになった、物理シミュレーションプログラミングの書籍。
ゲーム中のキャラクタや背景の動きを、物理的な法則に則って表現するためのプログラミング技法を解説する。
物理法則の基本から、プログラミング方法、更に実際にゲームで利用するための方法などを収録。
付属CDには物理シミュレーションプログラミングを利用したキャラクタを操作して動かせるデモなどを収録予定
これ、どーなったんだ???
110:デフォルトの名無しさん
04/10/27 04:40:29
>>109
それは糞本
111:デフォルトの名無しさん
04/10/27 06:05:27
人間ってないものねだりだからな
なんで喪前らが論理を求めるかってーと
喪前らの顔って黄金比率が狂っているからだろうな
つまり気持ち悪がられる
よって 友達いなーーーーーーーーーーーーーーい
そうだろ?wwwwwwwwwwwww
HA-HA-HA-HA-HA-HAWWWWWWWW
112:デフォルトの名無しさん
04/10/27 06:32:36
友達いないのは多分きみだけだと思う
113:デフォルトの名無しさん
04/10/27 08:07:47
>>112
俺もいない
114:デフォルトの名無しさん
04/10/27 22:48:06
早く人間になりたい
115:デフォルトの名無しさん
04/10/28 06:05:26
>>114
どうすれば人間になれるでしょうか?
数学的な対象を頭の中に構成する能力は
生まれたときに既に決まっているような気がします。
116:マイク ◆yrBrqfF1Ew
04/11/01 15:14:30
double i = std::sqrt(-1);
何故だめなんだ?
117:デフォルトの名無しさん
04/11/01 15:19:25
>>116
黙れ基地外
118:デフォルトの名無しさん
04/11/01 20:22:43
math::complex 使え
119:デフォルトの名無しさん
04/11/03 16:03:32
mother::complexも使え
120:デフォルトの名無しさん
04/11/10 20:17:03
差分法でもやってろってこったw
121:デフォルトの名無しさん
04/11/13 22:01:47
連立方程式反復法で解けないじゃん・・・orz
発散するか振動するかだ・・・・orz
122:デフォルトの名無しさん
04/12/01 08:39:57
どういう?
123:デフォルトの名無しさん
04/12/01 13:04:24
>>115
禿同。同じように語学や音楽の才能も生まれたときに決まってる気がする。
努力である程度まではカバーできてしまうところから多くの誤解が生まれるけど。
124:デフォルトの名無しさん
04/12/01 13:34:55
乳幼児期の脳が出来上がるまでの教育、環境も大きいと思う。
125:デフォルトの名無しさん
04/12/02 01:14:58
生まれたときに決まってる=生まれる前から決まってる=乳幼児期の教育、環境で努力しても手遅れ
ということが言いたいんだとESP。
才能があっても努力しなければ伸びないのは当然だから
乳幼児期の教育、環境が充実していることが前提での話であることは明らか。
126:デフォルトの名無しさん
04/12/02 08:37:19
つまりどんなに努力してもあなたはガウスにはなれませんよ、と。
127:マイク ◆yrBrqfF1Ew
04/12/02 12:19:26
ということはつまり俺はノイマンになれないがシャノンにはなれるということか。
128:デフォルトの名無しさん
04/12/02 14:41:09
9歳過ぎたらバイリンガルにはなれないとか、そういう話かね。
129:デフォルトの名無しさん
04/12/05 11:03:18
>>127
シャノンも厳しいと思いますが
130:デフォルトの名無しさん
04/12/15 02:00:02
だからといって精子にも戻れない
131:デフォルトの名無しさん
04/12/28 16:54:57
そろそろ、ご相談受付いたしましょうか?
132:デフォルトの名無しさん
04/12/28 17:29:47
プログラムを上手く書くための数学ってのもあると
思うけど、
こういうプログラム書いてるととか、こういう言語
使ってるとこれこれの分野の数学がわかるように
なりますよ、ってのはないのですか。
一番下の娘の大学受験が来月から始まるので。
もう手遅れか・・・。
133:デフォルトの名無しさん
04/12/28 17:47:45
>>132
マセマティカ買ってやれ。
134:デフォルトの名無しさん
04/12/28 22:08:09
>>100
AHAHAHAHAHA!!!!!!
135:デフォルトの名無しさん
04/12/31 18:36:53
>>132
BASIC(VBにあらず)を勉強するとセンター試験の数学で有利だ。
卑怯なくらい有利だ。
他に使途がない上にもう手遅れっぽいけどな。
136:デフォルトの名無しさん
04/12/31 20:28:52
>>135
BASICの問題は検算ができないからお勧めしないぞ。
確かに圧倒的に簡単なのは簡単なんだけど。
137:デフォルトの名無しさん
05/01/01 23:42:57
まぁだからって他の問題がむずかしいとかじゃないんだけどな
138:デフォルトの名無しさん
05/01/04 14:32:46
>>132
情報論とか
記号論理とか
数学基礎論とか
形式言語論とか
プログラムの意味論とか
プログラミング言語やってると
すんなり入りやすい(上におもしろい)
数学はいろいろあるが
どれもこれも大学入ってからの科目で
受験には役立ちそうもないな。
139:デフォルトの名無しさん
05/01/04 18:30:13
>>138
AO入試では役に立つかもよ。
140:デフォルトの名無しさん
05/01/04 22:43:02
質問いいでしょうか?
デジタル信号処理関係の本を連続して読んでる(谷萩・辻井先生の本あたり)んだけど
線形予測分析付近から
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は期待値を意味しており・・・・という説明はあるのですが、具体的には
平均か、Σとほぼ同じ意味だろうと想像してるのですが、どちらが正しいでしょうか?
どちらでもあっても、矛盾は無い感じは感じなんだけど・・・
141:デフォルトの名無しさん
05/01/04 23:32:33
>>140
普通は平均。
どっちでも単に定数倍になっただけだからあんまりその後読み進めていくうえで支障はなさそう。
142:140
05/01/05 07:20:06
>>141 ありがとうございました
143:デフォルトの名無しさん
05/01/31 22:46:49
y=f(x)で実測して得られたx、yを元に最小二乗法でf内の係数を求めたいのですが
どうすればいいでしょうか?
一次関数の場合は公式を本で見つけましたが、それ以外についてはやり方が分かりません。
ごり押しの計算でもいいので求め方を教えてください。
144:デフォルトの名無しさん
05/02/01 01:45:24
>>143
漏れ、プログラマーでは無い(実験職)けど
方法は関数電卓のマニュアルに載ってるよ。
対数関数や指数関数くらいは。
もっと詳しく知りたければ大学理系学部レベルの数理統計学の教科書や線形代数学、物理学大辞典でも調べなさい。
非線形関数の取扱いとかも乗ってますよ。
145:デフォルトの名無しさん
05/02/01 07:44:28
最小2乗だから R=Σy^2を最小にするわけ
有限範囲に最小点があるなら、微分するとゼロにる点のどれかが最小だから
R'(各パラメータ群)=0
これを満たす各パラメータから、Rを計算して実際に最小の点になる点を探す
146:デフォルトの名無しさん
05/02/01 08:29:26
(x_i, y_i)に対して適当な関数y=f(x)を仮定してR=Σ(y_i-f(x_i))^2を最小にするんでしょ。
147:デフォルトの名無しさん
05/02/01 08:54:43
微分を使え!
148:デフォルトの名無しさん
05/02/01 09:25:02
ふつう偏微分しる
149:デフォルトの名無しさん
05/02/01 09:33:47
>>143
URLリンク(www.eli.hokkai-s-u.ac.jp)
URLリンク(aoki2.si.gunma-u.ac.jp)
納得いかないときはここ嫁
URLリンク(aoki2.si.gunma-u.ac.jp)
150:デフォルトの名無しさん
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がわかれば、多項式の係数がわかるので、近似式がわかる
とまあ、こんな感じだったと思うぞ
151:デフォルトの名無しさん
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) )
152:デフォルトの名無しさん
05/02/04 00:32:11
最小2乗法?
特殊な場合を除いて特異値分解して解く
つーかNumerical Recipes嫁 載ってるコードは糞らしいが
153:デフォルトの名無しさん
05/02/14 18:56:31
C言語でのはさみうち法のプログラムを教えてください。
154:デフォルトの名無しさん
05/02/14 18:57:33
>>153
マルチポストには教えられません。
155:デフォルトの名無しさん
05/03/18 00:31:28
漸化式についてアホでもわかるよう教えてけれ
156:デフォルトの名無しさん
05/03/18 00:34:15
アホに説明すると、1から120まで延々と教えなければならなくなるので面倒だ
157:デフォルトの名無しさん
05/03/18 00:47:02
数学ができる人、なにかコツとかあるんですかっっ?!!!!!!!
n + 1 のべき乗とか文字みるとクラクラしてくるんです!!
158:デフォルトの名無しさん
05/03/18 00:51:53
>>157
数学ができなくても生きていけるよ。
馬鹿は無理をせずに馬鹿を貫け。
159:デフォルトの名無しさん
05/03/18 00:57:56
なるぽ。
160:デフォルトの名無しさん
05/03/18 04:16:18
。ぽるな
161:デフォルトの名無しさん
05/03/19 12:18:57
>>155
ぐぐれ。
162:デフォルトの名無しさん
05/03/20 18:57:43
教科書見れば早いのに。
163:デフォルトの名無しさん
05/03/25 09:25:38
おまえ氏ねよぼけ
164:デフォルトの名無しさん
05/03/28 06:03:35
数学はこつこつやってるんだが
俺の脳のスタックが足りねえこと痛感よ
165:デフォルトの名無しさん
05/03/31 08:56:58
最近でた、結城の本買った奴いる?
166:デフォルトの名無しさん
05/04/11 19:27:12
atan2って、atanが有るから要らないように思うのですが?
どうなんでしょう
167:デフォルトの名無しさん
05/04/11 19:34:52
xがゼロかどうかを気にしなくて済む。
sage
168:デフォルトの名無しさん
05/04/11 19:35:26
ええけつしとるのぉ(*´Д`)ハァハァ
URLリンク(133.86.144.64)
URLリンク(133.86.144.64)
URLリンク(dawn3)
URLリンク(dawn3)
169:デフォルトの名無しさん
05/04/11 19:36:20
sageと書こうとしたらフォーカスが変なとこにあったorz
170:デフォルトの名無しさん
05/04/11 20:45:27
数学のatanこそ廃止して atan2 の形式で統一したほうがいい気がする。
atanの定義はイクナイ
171:デフォルトの名無しさん
05/04/12 05:18:26
atan(y / x)とatan(-y / -x)が同じになっちゃうからなあ
172:デフォルトの名無しさん
05/04/12 11:00:18
>>170
C言語のライブラリに atan は要らないってことよね?
それなら禿同。
173:デフォルトの名無しさん
05/04/12 19:00:03
算数は三桁の暗算できないくらいだがプログラムはバリバリですが何か?
174:デフォルトの名無しさん
05/04/12 22:03:00
>>173
まあ、それは俺も。
っていうかね、紙の上で微分方程式解いたりするよりも暗算の方が苦手。
175:デフォルトの名無しさん
05/04/12 22:54:07
>>173-174
もまえらこれやってみろ。安産力付くぞ
URLリンク(r_akky.at.infoseek.co.jp)
漏れは10000越えると死ぬ
176:デフォルトの名無しさん
05/04/14 13:33:16
質問なんですが、あるグラフが木であることを判定する方法として
全頂点の入次数が1以下であることを確認するよりも効率的な方法はありますか?
177:デフォルトの名無しさん
05/04/14 15:32:31
>全頂点の入次数が1以下であること
の意味が判らないけど、これで十分条件になるの?
A→B, B→C, C→A みたいな循環構造が木と判定されない?
178:デフォルトの名無しさん
05/04/27 19:42:54
おい、wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
なんか言えよ雑魚
が
179:デフォルトの名無しさん
05/04/28 01:01:10
>>178
180:デフォルトの名無しさん
05/04/28 03:17:27
たぶん誰もわからないだろうけど、ツェラーの公式で
なぜ曜日が求まるのか、詳しく教えていただけませんか・・・?
181:デフォルトの名無しさん
05/04/28 03:25:56
わざわざ回答をしてくれる人を遠ざけるような枕をつける理由がわからない。
とりあえずぐぐってみて一番正確かつ詳しく説明してそうなページを探し、
その上でどこがわからないかを文章にしてみたら?
182:デフォルトの名無しさん
05/04/28 05:14:03
これでも買っとけ
URLリンク(www.amazon.co.jp)
183:デフォルトの名無しさん
05/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]
184:デフォルトの名無しさん
05/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日の曜日は求められる
185:デフォルトの名無しさん
05/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
これは、上述の数列とよく似ているが一つ横にずれている(残念)
186:デフォルトの名無しさん
05/04/28 06:57:32
一つずらすために、m の代わりに m + 1 を使ってみたらどうか?
[13/5 * m]ではなく[13/5 * (m + 1)]の値を m = 3 から m = 14 について列挙してみよう
まあこれは、再計算する必要も無く、さっきの数列が左に一つずれただけだ
10, 13, 15, 18, 20, 23, 26, 28, 31, 33, 36, 39
この数列の隣同士の値の差は、やはり左に一つずれて
3, 2, 3, 2, 3, 3, 2, 3, 2, 3, 3となり、これで目的の数列と一致する
つまり、 f(m) は、[13/5 * (m + 1)]に定数項を足したもので表現できる
ここで[13/5 * (m + 1)]の値を m = 3 で求めると、[13/5 * 4] = 10
7の倍数は無視できるので、この値は 3 と同じとみなせる
これは目的の値 f(3) = 0 より 3 多い
したがって f(m) = [13/5 * (m + 1] - 3 となる
各月の1日(ついたち)の曜日は
[21/4 * c] + [5/4 * y] + 3 + f(m)
= [21/4 * c] + [5/4 * y] + [13/5 * (m + 1]
を7で割った余りから求められる
2日(ふつか)以降の曜日については、一日ごとに曜日が一個ずれるから
m月d日について求めるときは、上式に d - 1 を加えればよい
[21/4 * c] + [5/4 * y] + [13/5 * (m + 1] + d - 1
この値を7で割った余りが、100 * c + y年m月d日の曜日となる
187:デフォルトの名無しさん
05/04/28 06:58:30
いい時間つぶしになってしまった
しかしこれであってるのだろうか?
188:マイク ◆yrBrqfF1Ew
05/04/28 15:56:08
MITも楽勝そうなこのスレの神々しい方々に質問ですぅ
nが自然数でn^2+1が素数になる数がいくつあるのか中卒の僕に優しく教えてくださいペコリー
189:デフォルトの名無しさん
05/04/28 18:57:37
>>188
URLリンク(ja.wikipedia.org)
ここの「素数に関連する未解決の問題」の欄を見るといい。
190:デフォルトの名無しさん
05/04/28 20:55:41
>>187
やるな・・・
191:デフォルトの名無しさん
05/04/29 13:33:40
やってはいけなかったか…
192:デフォルトの名無しさん
05/05/04 01:36:31
通りすがりの者だが
>>25~>>29と>>33のやり取りにはワロタ
193:デフォルトの名無しさん
05/05/04 02:14:14
線形代数、大事ですよね・・・・・・・・・
194:デフォルトの名無しさん
05/05/04 02:43:37
ウンコがしたくなり、とある建物のトイレをかり、便器に座ってふと横を見たら
「トイレットペーパー以外の物は詰まりの原因になりますので流さないでください」
と書いてあったが、俺はウンコは流しても問題ないよなと思った
だから俺はウンコをし、尻を拭いたペーパーも流してしまった
そしたらトイレが詰まってしまい、怖いお兄さんが飛んできて後始末をしながら
「トイレットペーパー以外流さないで下さいって書いてあるだろ」と言ってきた
結局殴られる変わりに、一万円払って何とか逃げ出しました
以上、ぼったくりトイレは怖いと思い知った一日でした
195:デフォルトの名無しさん
05/05/11 15:41:21
ウンコは持ち帰りましょう
196:デフォルトの名無しさん
05/05/30 13:26:46
>>189
> >>188
> URLリンク(ja.wikipedia.org)
> ここの「素数に関連する未解決の問題」の欄を見るといい。
のぞいてみたら、紛らわしい記述があった。
>素数は無限に存在する。
>
> * エウクレイデスによる証明
>
> 背理法による。
エウクレイデス(ユークリッド)のは背理法ではないよ。
197:デフォルトの名無しさん
05/05/30 17:15:51
ユークリッドの証明は背理法だよ。
何故、背理法ではないと思うの?
198:デフォルトの名無しさん
05/05/30 17:35:05
背理、背理、振れ背理法
199:デフォルトの名無しさん
05/05/30 17:45:11
たぶん、エラトステネスとエウクレイデスの混同。
200:デフォルトの名無しさん
05/05/30 20:55:23
素数が有限しかなかったとしたら何か問題でも?
201:デフォルトの名無しさん
05/05/30 21:27:48
エラトステネスの呪い
202:デフォルトの名無しさん
05/05/31 04:39:00
>>200
矛盾が生じる。
203:デフォルトの名無しさん
05/05/31 05:11:54
一見背理法に見える証明でも、
実は単なる対偶法、ということはよくあるけどね
204:デフォルトの名無しさん
05/05/31 08:16:12
矛盾とは?
205:デフォルトの名無しさん
05/05/31 13:42:44
素数が有限なら、最大の素数Pってのが(いくつか知らんが)
あるわけで、2からPまでの全部の積に1を加えた数を考えて
みよう。これは明らかにPより大きい数だが、Pを整除するには?
206:デフォルトの名無しさん
05/05/31 17:21:16
>>205
1以外ではできない あれ、これは素数ではないか
→すると仮定に矛盾する。
207:デフォルトの名無しさん
05/05/31 17:48:36
>>197
君は原論第9巻の20を読んだことはないということだ。そこには
「素数の個数はいかなる定められた素数の個数よりも多い」とある。
208:デフォルトの名無しさん
05/05/31 18:13:33
URL:URLリンク(www.asahi-net.or.jp)
メール:FV6N-TNSK@asahi-net.or.jp
>先週はフィリピンで旧日本兵の方が発見されたとかいう未確認情報も
>流れて結構話題になっていたりしていますが、それにしてもフィリピンと
>言えば前の戦争で50万人も日本人が死んでいるんですよね。
>しかもこれ、ほとんどが飢え死にだそうで。話題になっている第三十師団も
>二週間分の食料しか持たずにジャングルを50日間行軍して6.7割の人が
>餓死したのだそうですが(インパール作戦みたいなものですね)、
>いやはやなんと馬鹿みたいな戦争をしたものです。
>しかも結局何も得るものも無かったわけですから、死んだ兵士はまさに犬死に
>としか言いようがありませんね。まったく二度と戦争なんて馬鹿げたことはしないで
>欲しいものです。とりあえず日本には九条があるので大丈夫かとは思いますけれどね。
209:デフォルトの名無しさん
05/05/31 18:53:02
>>208
ここに貼ってどうする
政治経済方面に貼りまくるんだ
210:デフォルトの名無しさん
05/05/31 20:12:29
>>205 2からPまでの全部の*素数の*積+1
だね。
211:デフォルトの名無しさん
05/05/31 20:13:01
あ、整数全部でももkか。
212:デフォルトの名無しさん
05/06/01 04:14:30
2からPまでの積+1がPを整除するって?
213:デフォルトの名無しさん
05/06/02 05:35:26
>>207
原論は昔読んだ事があるんだが・・・
ごめん、あなたの方が正しい気がしてきた。もう一度勉強しなおしてくる。
214:デフォルトの名無しさん
05/06/06 09:52:30
PARIつかえ
215:デフォルトの名無しさん
05/06/06 09:57:55
ユークリッド(Euclid)による素数の無限性の証明の
話がでてるけど余談
エルデシュ(Erdoes) はこの証明を
"The BOOK" すなわち彼が信仰し存在することを
前提としている「究極のエレガントな証明集」の
代表例といっているそうだ
216:デフォルトの名無しさん
05/06/06 10:03:28
また余談
この証明,何かだまされたような気がする人がいるのは
背理法,もっというと排中律を暗黙の仮定としているからだろう.
実際にかつて,排中律を使わずに数学を構成しよう,
という立場の人があらわれた.
より詳しい話は数学の歴史の本を参照してください.
217:デフォルトの名無しさん
05/06/06 16:02:55
普通に高校数学やった人ならわかるっしょ。
218:デフォルトの名無しさん
05/06/06 20:05:18
背理法を使わずに証明できない
つまり廃中立を認めない立場では
素数は有限しかないことないのか
219:デフォルトの名無しさん
05/06/06 20:48:03
>218
背理法使わずに証明できるよ
220:デフォルトの名無しさん
05/06/06 21:19:05
うちの大学の計算機科学の演習が
ひたすら直観主義論理で算術を構成してくっていうやつで
その最後の問題が素数の非有限性だったな
俺は証明できなかったけど
221:デフォルトの名無しさん
05/06/06 23:22:03
数学的帰納法も騙されている漢字瓦斯
てゆーかあれで証明なのかどうか理解できにくい
222:デフォルトの名無しさん
05/06/06 23:56:45
>>221
あれは自然数の公理のうちに入ってる
223:デフォルトの名無しさん
05/06/07 22:46:31
>>222
それを公理に加えちまうってのが、
いかにも後付け的でインチキくせーってことでしょ。
224:デフォルトの名無しさん
05/06/07 23:32:50
>>223
まあ、無限集合を定義するのにどの道必要だし。
225:デフォルトの名無しさん
05/06/08 11:36:09
無限集合は、「自身の内部との一対一対応がある集合」として定義できるよ。
226:デフォルトの名無しさん
05/06/08 21:57:09
>>225
それはつまり、「実数全体からなる集合は、
自然数全体からなる集合と1対1対応が取れる」
ということですか?
227:デフォルトの名無しさん
05/06/08 22:15:03
「任意の内部」ではなくて「ある内部」でしょ
228:デフォルトの名無しさん
05/06/08 22:24:40
おお。濃度の話になっている。
流石にスレ違いのような
229:デフォルトの名無しさん
05/06/09 09:13:05
>>226
それはウソ
実数は可算ではないことが証明できる
有名な Cantor の対角線論法
230:デフォルトの名無しさん
05/06/09 09:17:40
公開問題:
可算の濃度と実数の濃度に間の
濃度を持つ集合は存在するか?
231:デフォルトの名無しさん
05/06/09 10:48:21
>>230
それは「どっちでもいい」で解決したはず
232:デフォルトの名無しさん
05/06/09 14:27:31
>230
上に同じ
233:デフォルトの名無しさん
05/06/10 00:02:39
>>231-232
正確には、ZFC公理系の範囲では否定も肯定もできない。
もうちょっと公理を足せば否定も肯定もできる。
234:デフォルトの名無しさん
05/06/14 10:17:37
公開問題:
ZF公理系の無矛盾性を証明せよ
235:デフォルトの名無しさん
05/06/14 20:52:41
>>230,234
ネタフリ乙!
URLリンク(ja.wikipedia.org)
236:デフォルトの名無しさん
05/06/15 00:34:45
(1)無矛盾でないと仮定する。
(2)仮定により矛盾が導かれる。
(3)故に仮定(1)は否定される。
237:デフォルトの名無しさん
05/07/16 12:47:12
保守
238:デフォルトの名無しさん
05/08/15 13:33:36
何か質問ある? と保守
239:デフォルトの名無しさん
05/08/20 13:56:07
微分方程式って
まさに再帰アルゴリズムだよね。
240:デフォルトの名無しさん
05/08/20 13:59:47
存在することよりも存在しないことを示すほうが難しいんだから。
背理法
241:デフォルトの名無しさん
05/08/20 14:26:53
悪魔の証明
242:デフォルトの名無しさん
05/08/20 14:44:34
●緊急告知
Googleの「日本海」の表記が韓国からの抗議により「東海」に変更
↓↓↓詳しくはこちら↓↓↓
【日本海】(;^ω^)VIP vs VANKlt;`∀´*gt;part8【海戦】
スレリンク(news4vip板)l50
今日の17時、20時、23時に 何 か を 「 撃 ち 」 ま す 。
抗議メール等、ご協力お願いいたします。
~~
↑
重要
243:デフォルトの名無しさん
05/08/20 16:06:16
>>11
大学に入れば勝ち
それだけで
仕事で使えもしないのに
おおいばりできるからな
244:デフォルトの名無しさん
05/08/23 09:45:03
>>243
違うだろ
それでやっと「スタートライン」だろ
245:デフォルトの名無しさん
05/08/24 00:58:46
コンピュータの数学 グレアム著
URLリンク(www.amazon.co.jp)
一応、既出ではないよね?
コンピュータの名著100にも選ばれた超定番。
スタンフォード大学で使われてる教科書だけど、
ハノイの塔とかイメージしやすいところから始まって高度なところまで
自然に導いてくれるから、思ったほど敷居は高くない。
日本の教科書みたいにトップダウン式の記述ではなくかなり親切に書かれてるから、
腰をすえて読めばきっと満足できるはず。
値段的にアレだけど…。
246:デフォルトの名無しさん
05/08/24 09:43:17
>>245
URL長すぎ
もっと短くしる
247:デフォルトの名無しさん
05/08/24 12:35:21
amazonのURLのexec/obidosの部分は略記が可能で、
URLリンク(www.amazon.co.jp)
と出来る。
まだ長い?
248:デフォルトの名無しさん
05/08/24 12:48:08
URLリンク(www.amazon.co.jp)
こう?
249:デフォルトの名無しさん
05/08/24 16:24:06
スキームもいらんな。
www.amazon.co.jp/o/ASIN/4320026683
250:デフォルトの名無しさん
05/08/24 16:29:12
いっそ
">>245"
251:デフォルトの名無しさん
05/08/24 22:57:50
↑
252:デフォルトの名無しさん
05/08/25 10:14:14
>>245
> コンピュータの数学 グレアム著
この本はマジでいいよ
値段がアレだけど
Knuth の例の The Art... から
おいしいとこだけもってきて
きれいに系統だてたかんじ
TeX による組版のできもいい
数式は普通はイタリックを使うのが慣例だけど
別の書体を使ってるのがおもしろい
そもそもイタリックを使うのは普通の文章の
ローマンと区別するためのもので
区別させつけば数式がイタリックである必然性はない
253:デフォルトの名無しさん
05/08/25 16:13:28
値段もアレだが、大きさもアレだよな。
俺は洋書で買って、すぐ単元ごとに切り分けてしまったよ。
定評あるコンピュータ本って豪華な装丁だったり、
ページ数が膨大だったりするから、ホントはいつでも気軽に参照したいのに
(気持ち的に)アクセスが重いってことがある。
自分の血肉とするためには、本の体裁など気にせず
とことん自分仕様に改良するのがよい。
同じ本の違うページを同時に開いて見れるしね。
254:デフォルトの名無しさん
05/08/26 21:52:02
>>253
わかった!
さっそく切り刻んでくる!
255:デフォルトの名無しさん
05/08/26 23:03:01
でも、古本に売れなくなるぞ
256:デフォルトの名無しさん
05/08/30 01:26:45
豪華装丁本をバラすのはなかなか勇気がいりますなぁ…。
257:デフォルトの名無しさん
05/08/30 09:44:39
もう後戻りは出来ない
258:デフォルトの名無しさん
05/08/30 13:08:36
21 名前:名無しさん@6周年[] 投稿日:2005/08/30(火) 10:31:13 ID:oAGcvdqV0
>>6
イタリア語で85000(8500だったかな・・)は
「 オッタッタチンコミーレ !」
259:デフォルトの名無しさん
05/08/30 22:30:49
ヤコビ法
URLリンク(www.geocities.jp)
b配列に代入されている初期値の意味は何ですか?
260:デフォルトの名無しさん
05/08/30 22:50:21
3.0*x + -6.0*y + 9.0*z = 6.0
2.0*x + 5.0*y + -8.0*z = 8.0
1.0*x + -4.0*y + 7.0*z = 2.0
を解くプログラムで、a[n][n]が左辺の係数、b[n]が右辺ではないかい。
261:デフォルトの名無しさん
05/08/31 01:42:08
>>260
すばらしいぃ!!
疑問が晴れました。ありがとうございます。
262:デフォルトの名無しさん
05/09/13 01:54:25
結城さんの「プログラマの数学」は、
>>245 の「コンピュータの数学」グレアム著、
の初歩を紹介した感じの内容だね。
なんつーか、この人わかりやすい比喩を考えるのがうまい。
www.amazon.co.jp/o/ASIN/4797329734/
263:デフォルトの名無しさん
05/10/02 01:33:08
伝熱解析に関して
非定常の差分方程式を解くプログラムをCで作りたいのですが
おすすめの参考書とかありますか?
Tm+1 + Tm-1 + 2Tm / ⊿x^2 = 1/α δTp/δt
の方程式です
264:デフォルトの名無しさん
05/10/05 11:38:18
数値解析+差分方程式 で google したら?
265:デフォルトの名無しさん
05/10/05 11:56:16
ワイルは晩年、直感主義数学を主張してたらしい
本当に基礎的な証明でも膨大な時間をかけて講義してたらしい
266:デフォルトの名無しさん
05/10/05 12:11:37
>>263
そのレベルなら、俺が師匠の手伝いしておごってもらった時に書いた本でも作ったな
てか、初歩の数値解析関係で、差分方程式のサンプルにまず100%含まれてる
後は、境界条件と制約条件をどうするかだけしかないな
267:デフォルトの名無しさん
05/10/09 02:17:46
263です
例で書いた数式1次元ですね。すいません
んー、3次元の非定常のプログラムがなかなかなくて・・・
参考書はほとんど二次元で終わってまして
268:デフォルトの名無しさん
05/10/12 17:21:19
楕円方程式で、
x^2/a^2 + y^2/b^2 = 1とネットで調べると出てくるのですが、
円の中心(本来はそういわないかもしれない)が(0,0)で
ない場合の式は、この式じゃないような気がするんですが。
269:デフォルトの名無しさん
05/10/12 17:26:54
それは標準形という奴だからでは?
270:デフォルトの名無しさん
05/10/12 17:34:17
つまり、その式は原点が中心の円を縦・横に引き伸ばした場合の式
さら平行移動させたり、回転させたりすると、当然複雑になるけど、複雑にしてもメリットないでしょ?
実際に楕円描く時はその式では不便で、sin/cosの媒介変数型使うだろうし
・・・・いや、実際に楕円描く場合はベジェ曲線で近似するだろうな
271:デフォルトの名無しさん
05/10/12 18:28:16
>>268
応用が効かない言い方をするならば、
中心(c,d)なら(x-c)^2/a^2+(y-d)/b^2=1と考えていい。
272:デフォルトの名無しさん
05/10/12 19:36:15
というか
曲線f(x,y)=0を x軸方向に+a, y軸方向に+b したら f(x-a,y-b)=0
x=f(t), y=g(t) だったら x=f(t)+a, y=g(t)+b だし
273:デフォルトの名無しさん
05/10/12 21:49:37
だから応用の効かないと言ったんだが
274:デフォルトの名無しさん
05/10/15 20:36:14
天文物理をやっていると焦点と離心率で楕円を書きたくなる罠。
275:デフォルトの名無しさん
05/10/16 22:27:04
紐と画鋲と鉛筆で描くみたいな感じ。
276:デフォルトの名無しさん
05/10/19 23:05:17
>>268
一応言っておくと「楕円方程式」と「楕円の方程式」は別物ですよ
ここで言ってるのは前者ですね
277:デフォルトの名無しさん
05/10/19 23:06:43
違った後者だ
278:デフォルトの名無しさん
05/10/21 20:14:16
いや、実は前者。俺の言うことを信じろ。
279:デフォルトの名無しさん
05/10/21 23:53:52
皆だまされるな!正しくはもちろん後者だ。
280:デフォルトの名無しさん
05/10/22 00:56:25
俺の言うことだけが本物だ。信じろ。
前者に決まっとる。
281:デフォルトの名無しさん
05/10/22 03:32:24
本当の事言うと。
どっちもどっちw
282:デフォルトの名無しさん
05/10/24 13:41:54
真実は闇の中…。
283:デフォルトの名無しさん
05/10/24 21:16:45
問:>>276-282のなかで嘘つきを断定せよ。
参考:>>268
284:デフォルトの名無しさん
05/10/26 14:03:53
今だから真実を告白したい…>>283こそが嘘つき。
285:デフォルトの名無しさん
05/10/26 23:53:36
>>284
嘘つきになる要素が・・・
286:デフォルトの名無しさん
05/10/27 13:49:13
俺こそが嘘つき。
287:デフォルトの名無しさん
05/10/27 14:31:05
この中に1人、明らかな矛盾を述べたものが居るっ!!!
288:デフォルトの名無しさん
05/10/27 15:00:16
>>287 お前やろ?
289:デフォルトの名無しさん
05/10/27 22:38:31
ヴルルル、自分は絶対嘘なんかついてますねん。
290:デフォルトの名無しさん
05/10/28 00:58:51
バカっていったやつがバカ
291:デフォルトの名無しさん
05/10/28 01:04:29
>>289 お前やー!!
292:291
05/10/28 01:05:14
…決め台詞で割り込まれた orz
293:デフォルトの名無しさん
05/10/28 01:10:03
おまえら落ち着け…
素数を生成するコードを書いて落ち着くんだ…
294:デフォルトの名無しさん
05/10/28 01:21:54
10 N=1
20 N = N + 1
30 K=2
40 IF N = K THEN LPRINT N
50 IF N MOD K = 0 THEN GOTO 20
60 K = K + 1
70 GOTO 40
295:デフォルトの名無しさん
05/10/28 10:58:22
やれやれだぜ…
296:デフォルトの名無しさん
05/11/04 02:06:55
だぜ、って懐かしいよな。
297:デフォルトの名無しさん
05/11/04 22:23:21
>>296
「だぜ」に突っ込むか・・・。
「やれやれだぜ」自体が漫画の台詞。
ジョジョ。
298:デフォルトの名無しさん
05/11/04 23:27:22
「だぜ」って「学校に行こう」に出てたヤシだろ?
299:判定
05/11/08 14:02:29
>>297-298
どっちも知る人ぞ知るってな話題だが>>298の方がよりマイナーと思われ。
300:& ◆BSGaog1Z0Q
05/11/08 14:18:52
#include<iostream>
//>>294
std::ostream& dumpPrimes(std::ostream& os, int max) {
for(int n=2; n <= max; ++n){
for(int k=2; ; ++k){
if(n==k) {
os << n << "\n";
}
if(n % k == 0) {
break;
}
}
}
return(os);
}
301:デフォルトの名無しさん
05/11/08 14:36:01
std::ostream& testDiv(std::ostream& os, int n, int k){
if(n==k){
os << n << "\n";
}
return((n % k == 0)? os: testDiv(os, n, k+1));
}
std::ostream& testNum(std::ostream& os, int max, int n){
return((n > max)? os: testNum(testDiv(os, n, 2), max, n+1));
}
std::ostream& dumpPrimes(std::ostream& os, int max) {
return(testNum(os, max, 2));
}
302:デフォルトの名無しさん
05/11/16 22:10:39
>URLリンク(ja.wikipedia.org)
> 素数は無限に存在する。
>
> エウクレイデスによる証明
> 背理法による。
> 素数が有限個しかないと仮定し、それらを次のようにおく。
>
> pi, i <= n
> ただし n は定数。
>
> q = p1p2p3...pn + 1
>
> を考えよう。q は合成数であるか素数であるかのいずれかである。
> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである。その一方で q は pi のいずれで割っても 1 があまり、矛盾する。
> 素数だとすると、これは pi のいずれとも異なるから素数が有限個しかないことに反する。
> Q.E.D.
この証明変だよね。
303:デフォルトの名無しさん
05/11/16 22:18:18
>>302
どこで引っかかった?何が変?
304:デフォルトの名無しさん
05/11/16 22:22:32
「素数は無限に存在する」ことの証明だから、
「qが合成数」も「素数が有限」も否定していいんだよ。
305:302
05/11/16 22:29:52
> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである。
そうとは限らない
2 + 1 =
3 is a prime.
2 x 3 + 1 =
7 is a prime.
2 x 3 x 5 + 1 =
31 is a prime.
2 x 3 x 5 x 7 + 1 =
211 is a prime.
2 x 3 x 5 x 7 x 11 + 1 =
2311 is a prime.
2 x 3 x 5 x 7 x 11 x 13 + 1 =
30031 is 509 x 59
2 x 3 x 5 x 7 x 11 x 13 x 17 + 1 =
510511 is 97 x 5263
2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 + 1 =
9699691 is 27953 x 347
2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23 + 1 =
223092871 is 703763 x 317
306:デフォルトの名無しさん
05/11/16 22:37:59
>そうとは限らない
> 2 + 1 =
>3 is a prime.
2<3
> 2 x 3 + 1 =
>7 is a prime.
3<7
> 2 x 3 x 5 + 1 =
>31 is a prime.
5<31
> 2 x 3 x 5 x 7 + 1 =
>211 is a prime.
7<211
> 2 x 3 x 5 x 7 x 11 + 1 =
>2311 is a prime.
11<2311
> 2 x 3 x 5 x 7 x 11 x 13 + 1 =
>30031 is 509 x 59
13<59
> 2 x 3 x 5 x 7 x 11 x 13 x 17 + 1 =
>510511 is 97 x 5263
17<97
> 2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 + 1 =
>9699691 is 27953 x 347
19<347
> 2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23 + 1 =
>223092871 is 703763 x 317
23<317
論外なところから値を引っ張ってきて論じようとしている。
23が「最大」の素数であれば、317は素数でも合成数でもないのでどちらにしても矛盾がしょうじる。
307:デフォルトの名無しさん
05/11/16 22:41:27
>>305
この推論は「素数が有限個しかない」という偽の前提があるから、反例を持ち出してもしょうがない。
> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである。
これは、「合成数は有限個の素数の積で表される」という定理と「素数はpiしかない」からの帰結。
308:302
05/11/16 22:49:50
素数が有限個しかないとは思ってませんが、
> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである
そうでない場合もあるとは思いませんか?
そして、その場合についても論ずるべきでは?
309:デフォルトの名無しさん
05/11/16 22:57:11
>>308
だから、>>307に書いたように、
> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである
は「素数がpiしかない」という仮定の下で証明できる。
証明できるからには、これが偽である可能性を検討する必要はない。
310:302
05/11/16 23:37:43
では、エウクレイデスによる証明は、
>「合成数は有限個の素数の積で表される」という定理
を前提としているわけですか?
311:デフォルトの名無しさん
05/11/16 23:45:05
>>310
群論か環論の本を読んでくださいな、素元、既約元のあたりです。あとできれば背理法についてもね。
312:デフォルトの名無しさん
05/11/16 23:57:48
>>310
細かい違いはあるかも知れない(例えば、その定理の代わりに「合成数は素因数を持つ」でも十分)けど、
基本的にはその通りだと思う。
313:302
05/11/17 00:16:30
じゃあこの部分を
> を考えよう。q は合成数であるか素数であるかのいずれかである。
> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである。その一方で q は pi のいずれで割っても 1 があまり、矛盾する。
> 素数だとすると、これは pi のいずれとも異なるから素数が有限個しかないことに反する。
こう変えてもいいですか?
を考えよう。q は合成数であるか素数であるかのいずれかである。
q が合成数だとすると q は pi のいずれかを用いて積の形に表されるとき、q は pi のいずれで割っても 1 があまり、矛盾する。
また q は pi のいずれかを用いて積の形に表されないとき、q は pi を超える素数を持ち、矛盾する。
素数だとすると、これは pi のいずれとも異なるから素数が有限個しかないことに反する。
314:デフォルトの名無しさん
05/11/17 00:19:56
おまいらプログラマらしく素因数分解のアルゴリズムでも考えよう
128bit暗号を解読できるくらいのを
315:デフォルトの名無しさん
05/11/17 00:31:12
>>313
ちょっとおかしいところ(「piを超える素数」じゃなくて「pi以外の素因数」というべき)があるけど、大筋としてはそれでもいい。
でも、そう書き換えたところで推論の構造はほとんど変わっていないし、
「合成数は素因数をもつ」ことに依存しているのも変わらない。
316:302
05/11/17 00:46:27
そうですか。
自分なりに納得できて助かりました。
ありがとうございました。
317:デフォルトの名無しさん
05/11/17 01:16:31
代数学か。懐かしいな。
318:デフォルトの名無しさん
05/11/17 11:36:57
>>311
いや、真っ先に背理法を理解すべきでは?
319:デフォルトの名無しさん
05/11/17 12:27:31
大きくなれよ
320:デフォルトの名無しさん
05/11/17 13:05:04
背理 背理 振れ 背理法~
321:302
05/11/17 16:06:10
たびたびすみません。
素数を順番にかけるとint型では、23までしかいけなかったので
double型でやったら、途中からおかしな答えになりました。
下から2番目なんですが、答えが1大きくなりました。
なんでなんでしょう?
2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23 x 29 + 1 =
6469693231 is 331 x 19545901
2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23 x 29 x 31 + 1 =
200560490131 is a prime.
2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23 x 29 x 31 x 37 + 1 =
7420738134811 is 181 x 40998553231
2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23 x 29 x 31 x 37 x 41 + 1 =
304250263527211 is 61 x 4987709238151
2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23 x 29 x 31 x 37 x 41 x 43 + 1 =
13082761331670032 is 2 x 6541380665835016
2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23 x 29 x 31 x 37 x 41 x 43 x 47 + 1 =
614889782588491390 is 2 x 307444891294245700
322:デフォルトの名無しさん
05/11/17 16:08:50
2進数で表すと分かるかも。doubleの内部ビット表現を調べてみな。
323:デフォルトの名無しさん
05/11/17 17:01:31
>>321
浮動小数点表現の仮数部が 52 ビットのとき、精度は 15.6 桁。
…って、計算機の初歩の初歩だろうに。
324:302
05/11/17 17:11:45
>>322
レスありがとうございます。
2進数の表し方がわからなかったので、
16進数で見てますが、所々おかしなところがあり、
手直ししています。
>>323
そうでしたか、出直してきます。
325:デフォルトの名無しさん
05/11/17 21:07:29
SA(シミュレーテッド・アニーリング)法で
巡回セールスマン問題解くプログラム作ってるんですけど
このスレでいいっすか?
それとも数学板に行ったほうがいいですかね?
URLリンク(www.watanabe.nuie.nagoya-u.ac.jp)
↑でとりあえず理屈はわかったんだけど
摂動行列の決め方がわからん。
ていうか
あるルート候補から次のステップのルート候補作るときに
全部シャッフルしたらさすがに効率悪そうだし
隣同士入れ替えただけだともろ局所解に引っかかりそうだし。
なんか巡回セールスマン向けのうまい方法
(あるルートXnからX(n+1)を作るアルゴリズム)
だれかしらないですか?
326:デフォルトの名無しさん
05/11/17 22:09:18
>>325
アニーリング関数が適当なら、その隣同士とかでやったとして
局所的なくぼ地にはまってしまうような場合であっても
少ない確率ではあるけどそのくぼ地を乗りこえることかできるから
結局それなりにうまくいくんじゃないのかな
327:デフォルトの名無しさん
05/11/18 00:37:31
>>321
つ[long long]
328:デフォルトの名無しさん
05/11/19 09:22:25
>321
つ[多倍長演算]
329:デフォルトの名無しさん
05/11/19 10:35:17
読みって「たばいちょう」?
330:デフォルトの名無しさん
05/11/19 11:18:12
>>329
OK!
331:デフォルトの名無しさん
05/11/19 11:26:32
束井町の塩山では今年も岩塩の収穫の時期になりました
332:デフォルトの名無しさん
05/11/19 11:29:02
えっ?どこっ?なに?誤爆?束胃腸・・・?
333:デフォルトの名無しさん
05/11/19 13:23:14
>>330
サンクス。
変換しても出てこないので違うのかなと思っていた。
334:デフォルトの名無しさん
05/11/19 13:51:31
>>333
かな漢字変換辞書が全ての技術語を網羅しているわけがないだろう。
それともあれか、藻前は「へんかんできないからそんな字ない」とか言っちゃう小学生か?
335:デフォルトの名無しさん
05/11/19 19:32:31
つーか他の読みをしようにもたばいちょうとしか読めん
336:デフォルトの名無しさん
05/11/19 20:10:17
>>334
そんなにキツく言わんでも・・。
337:デフォルトの名無しさん
05/11/20 22:49:35
今 1 から N までの N 個の異なる自然数からなる順序付きタプルを入力に受け,
そのタプルが大きさ N の全順列中において辞書順で何番目かを返すアルゴリズムを
実装したいんですが,どういうアルゴリズムが考えられますか?
例えば, {1, 2, 0} を与えたら 4 を返すような感じのアルゴリズムです.
338:デフォルトの名無しさん
05/11/20 22:53:59
タプルって何だっけ?
339:デフォルトの名無しさん
05/11/20 23:01:25
>>338
tuple
【名】 組、《コ》タプル
340:デフォルトの名無しさん
05/11/20 23:08:44
>>337
それの例のまま、 {1, 2, 0} で考えると、
最初が 1 → このタプルより前には {0, *, *} がある → 前に 2! 個 = 2個 ある
次が 2 → でも1は出てる → これより前で、{0, *, *} 以外のものは {1, 0, *} → 1個
だから、{1, 2, 0} より前には3個のタプルがあるから、
{1, 2, 0} は4番目。って感じ?
1つ数字増やして {2, 3, 1, 0} とかでいくと、
最初、{0, *, *, *} と {1, *, *, *} 数えて、 3! = 6個
次、{2, 0, *, *} と {2, 1, * *} で 2×2! = 4個
次、{2, 3, 0, *} があるから 1個
計11個前にあるから {2, 3, 1, 0} は12番目。
341:デフォルトの名無しさん
05/11/20 23:10:03
Nがわかったら、順列を順に生成する関数に渡せば良いんじゃね?(N,{0,1,2}を渡す)
で、マッチングをとる。
342:デフォルトの名無しさん
05/11/20 23:17:15
あっ、340 の {2, 3, 1, 0} の例、最初は 3! じゃなくて 2×3! =12、
最後の結果も18だわ。
>>341
それだと順列生成自体が糞重たいし、コーディング結構難しくない?
343:デフォルトの名無しさん
05/11/21 00:32:41
魔法陣って4×4で出来ますか?
344:デフォルトの名無しさん
05/11/21 01:58:19
できます
345:デフォルトの名無しさん
05/11/21 11:28:06
>>340 の考え方で C++ 使うと
std::vector<int> src, arr;
src.push_back(1);
src.push_back(2);
src.push_back(0);
arr = src;
size_t ct = 0;
do {
#ifdef _DEBUG
std::cout << "{";
for (int i=0; i<arr.size(); i++)
std::cout << (i? ", ": "") << arr[i];
std::cout << "}" << std::endl;
#endif // _DEBUG
} while (ct++, std::prev_permutation(arr.begin(), arr.end()));
std::cout << ct << std::endl;
結果:
{1, 2, 0}
{1, 0, 2}
{0, 2, 1}
{0, 1, 2}
4
346:デフォルトの名無しさん
05/11/21 15:45:08
>>337
素直に説明を読むと、
「1からNまでのN個の順列組み合わせを辞書式順序で並べたとき
各組合わせは何番目?」
という問だと思うのだが、いきなり組の要素に0があったりするのはなぜ?
347:337
05/11/21 18:58:04
>>340
素直にやるなら,前から順に読んでいって現れた数字を記録しないとならないですよね.
前から順に読んで現れた数字より大きい数字を全てデクリメントしていくやり方も
あるのかな?参考になります.
>>345
これって 340 さんの考え方じゃなくてむしろ 341 さんの考え方ですよね?
>>346
すいません.最初,説明を「0 から N-1」と書いてて後で直したんですが
例を書き直すのを忘れてました.337 の正しい例は {2, 3, 1} です.
348:デフォルトの名無しさん
05/11/22 04:02:57
>前から順に読んで現れた数字より大きい数字を全てデクリメントしていくやり方
それでいいんでね?
(1)result=0で初期化
*ここで、1~Nの整数が、適当に並べ替えられて並んでいたとして、
(2)N=1ならresult+1を返し終了。
(3)左端の数aに対し (a-1)*(N-1)! を計算し、resultに加算。
(4)列の中で、aより大きい要素は全て1だけ減らす(小さい要素はいじらない)。
(5)先頭のaを切り落とし(N=N-1)、残った列に対し*に戻る。
349:340
05/11/22 12:02:43
>>348
それ見てて思ったけど、
(3)(階乗計算)とか(4)の計算に掛かる時間を考えると、
>>345 のコードよりも計算量大きくなるかも。
>>345 だと標準ライブラリの機能そのまま使っててコード量的にも少ないし。
順列生成のアルゴリズムって、>>345 の結果見てる感じ、
バブルソートを1ステップずつやるようなものなのね。
350:デフォルトの名無しさん
05/11/22 16:31:37
似たような問題で、よく出るのが、
1 から N までの N 個の異なる自然数による順序付タブル をランダムに出力せよ
351:デフォルトの名無しさん
05/11/22 18:36:00
タブル
352:337
05/11/23 22:03:52
>>349
345 さんのコードだと平均・最悪で O(N!) な一方で
348 さんのだと平均・最悪で(階乗計算も含めて) O(N^2) ですから,
特別な事情がなければ 348 さんのを選択するのが良いと思います.
というか 348 さんのアルゴリズムで実装できました.ありがとうございました.
353:デフォルトの名無しさん
05/11/28 23:10:17
新スレたてました!
フーリエ変換が趣味です。
スレリンク(hobby板)
354:デフォルトの名無しさん
05/11/29 19:35:47
『任意の微分方程式を与えられたとき、それを解くプログラムを記述せよ。ただし、す
べての方程式を解くことは困難なので、そのプログラムで解ける範囲を指定し記述せよ。』
この問題のアルゴリズムと、ソースを書いてくれませんか?
ここで悩んでいるので是非とも力を貸してください!!お願いします。
355:デフォルトの名無しさん
05/11/29 19:36:39
師ね
356:デフォルトの名無しさん
05/11/29 19:36:55
×力を貸してください
○答え教えろ
357:デフォルトの名無しさん
05/11/29 20:08:28
>すべての方程式を解くことは困難なので、そのプログラムで解ける範囲を指定し記述せよ。』
とりあえずオイラー法を用意して、それで解ける範囲を明示しておけばレポート通るんじゃね?
358:デフォルトの名無しさん
05/11/30 01:23:23
あからさまに宿題をそのまま出されるとな・・・
359:デフォルトの名無しさん
05/12/07 23:46:24
URLリンク(www-ise2.ise.eng.osaka-u.ac.jp)
上記のサイトで、Sinをテイラー展開で求めているようですが、
sin(0.00) = NaN (非数値)
sin(0.01) = NaN (非数値)
sin(0.02) = NaN (非数値)
・
・
となってしまいます。どこが間違っているのでしょうか?
360:デフォルトの名無しさん
05/12/08 00:11:24
0で割りゃあ、非数になるわなw
double Sin(double x)
{
double xx = -x * x;
double fact = 1;
double sin = x;
for(int i=1; i<100; )
{
fact *= ++i; fact *= ++i;
x *= xx;
sin += x / fact;
}
return sin;
}
361:デフォルトの名無しさん
05/12/08 00:16:08
っつーかおまいら、2ch にさらす暇あったら作者に報告入れろって。
362:359
05/12/08 00:39:53
>>360
なるほど! 数学関連の話で、何が合っていてどこから手をつけていいものか
困り果てているところでした。非常にお早いレス感服いたします。
ありがとうございました。
>>361
すみません。いくつか間違いがみられ、一応メールアドレスを探してみた
のですがわかりやすい位置になかったので、すぐに断念してしまいました。
363:デフォルトの名無しさん
05/12/08 00:42:21
i=100から順に計算した方が精度が上がると思う
364:デフォルトの名無しさん
05/12/08 01:32:54
数学的に正しくてもプログラム的にどうなのかは別問題なのす
365:340
05/12/08 11:29:34
>>362
トップページたどれって。
全ページに連絡先入れといた方がいいのか?
>>363
それいいだすとさ、
π/2 の範囲に収まるように mod 2π とか三角関数の公式使って変換して、
sin と cos のどちらか選んで計算するとか、凝りだすときりない。
餅は餅屋と言う奴で、そういうのは数値計算屋さんにお任せしないと。
366:デフォルトの名無しさん
05/12/08 22:43:03
>>365
ウェブページの作り方的な話なら、
全ページにaddress要素は入れるのが基本
address要素内には連絡先として通常メールアドレスが入る
367:デフォルトの名無しさん
05/12/08 23:13:51
>>366
それ、確かに推奨はされてるけど、
ボットにアドレス収集されるのが嫌で、実際やってる人いなくない?
368:デフォルトの名無しさん
05/12/08 23:25:27
>>367
俺はやってるよ
あるいは自働収集が嫌って言って
画像を使ったり余計な文字をはさんだりしてる人もいる
要は形式上の問題じゃなくて、
>>362みたいな状況にならないようにっていうのが
目的なんだし。
369: 【凶】 【308円】
06/01/01 07:54:11
あけましておめでとう。 求む 質問・疑問
370: 【だん吉】 !otoshidama
06/01/01 08:40:35
さっきやったら大凶が出たぞ!
371:デフォルトの名無しさん
06/01/09 00:38:04
答えが来るかわからんけど
マージソートについて勉強してます
マージソートの配列の分割についてなんですけど
例えば8だけの場合は
4 4
2 2 2 2
1 1 1 1 1 1 1 1
とだけ分割できると思います。
ですが例えば要素が34の場合
17 17
と一回だけ分割すると素数になってしまいます。
更に極端にしますと
7や23などの要素の個数の場合はどう分割するのでしょうか・・
まだ勉強初めて1日だけなんでアレですが参考のページでもあると嬉しいです
372:デフォルトの名無しさん
06/01/09 00:49:45
>>371
そりゃ、8と9に割ればいいじゃん。
373:デフォルトの名無しさん
06/01/09 00:54:24
>>372
しかしその場合併合(マージ)しようとするとどんな風になるのでしょうか
グーグル先生のイメージ検索はエレメントの個数が偶数ばかりのもので・・
勉強してきます(´・ω・`)
374:デフォルトの名無しさん
06/01/09 00:56:37
どんな感じってソートするだけだろ。
375:デフォルトの名無しさん
06/01/09 03:02:59
>>373
べつに偶数のときとかわらん。
違う数に分割されたからといって
コードの何処も変える必要なんかない。
そんな必要があったら
そもそもマージソートじゃない
376:デフォルトの名無しさん
06/01/09 10:30:58
>371
例えば9の場合、
4, 5
(2, 2), (2, 3)
((1, 1), (1, 1)), ((1, 1), (1, 2))
((1, 1), (1, 1)), ((1, 1), (1, (1, 1)))
と分割すればいい。
てか図解すると並列に見えるけど、実際の処理は再帰的に行われるから、
部分的に階層が深くなっても問題ない。
URLリンク(oku.edu.mie-u.ac.jp)
の mergsort.c 読めば解るよ。
377:デフォルトの名無しさん
06/01/09 13:56:17
>>373
つーか、聞く前に一度自分で実際にやってみ。
マージって全然個数の違う2つの列相手にもできるから。
例えば極端な話 1, 16 とかで分けてもマージできる。
378:マイク ◆yrBrqfF1Ew
06/01/23 00:20:53
シュレーディンガーの猫というのは簡単に言うとあれだろ
堀江由衣の処女
379:デフォルトの名無しさん
06/01/23 04:26:20
,,-‐----‐、 , -'"` ̄ ̄"`''-,__, --‐‐-..,
/ 、゙ヽ、 ‐-'´ ヽ‐- / / ヽ
,/´ .., ヽ,,l_),' '、,ト/ / ヽ
/ ヽ,r' l .,、z:ュ、,_. ,、=,゙.-〈__r,'、 ヽ_
_.l ヽ」 , l. ´ ,r'ャ、`' i'rャ;| ゙‐ヽ、_,, /l
,l l| -'´ll ,ll ヽ. ''`¨¨´ ヽ | .,//゙l //\
l`l| l|ヽ ヽ 入 ,ィ _. ', l |l // }
l \ l| ,l ヽ_. ' `'゙`'‐'i゙ ,' |,l // l バカジャネーノ
/ '\ l|`l l ヽ`'. ,∠.ニフ / l ヽ // |
,l '\ l| .lヽ_l ` 、 、 い.... ,' /___/ | ∨/ ,}
| ヽl | ,| .ヽ', .ヽ`二フ.,' ヽ ,| ,l
| l ,l ' .、,_`,.ィ l \ /
ヽ | \. ヽ/ l ヽ /j
\ / ヽ ヽ | l /
゙l\.. / ヽ ヽj | , /
ヾ ヽ ヽ ヽ / ,l
ヽ、 ヽ l } / ,r
ヽ ヽ | /′ ,,...''
`'':..、 ___ ___,..-.. |, ,l , :..-‐'"´
 ̄ /lr‐‐‐'--、_..... l_,..-'''""'- "
380:デフォルトの名無しさん
06/01/30 23:54:04
原点(0,0)を中心とした半径Rの円がある
中心点から角度θの軸を考え、横2W縦2Hの長方形の中心がこの軸を移動するとして
長方形の頂点が円周上にくる点の座標は?
381:380
06/01/30 23:55:32
>>380書き忘れ
長方形は円の内側にあるものとする
382:デフォルトの名無しさん
06/01/31 00:41:23
>380-381
人にモノ聞く態度じゃねぇな。
出直して来い。
383:デフォルトの名無しさん
06/01/31 09:44:41
それになんか問の内容も何がいいたいかよーわからん。
もしかして日本語が不自由な方なんでわ?
384:デフォルトの名無しさん
06/01/31 10:41:19
ここは宿題スレじゃないんじゃね?
385:デフォルトの名無しさん
06/01/31 18:07:46
正方形じゃねーのかな・・・
386:デフォルトの名無しさん
06/01/31 18:42:49
プログラムじゃなくて普通に算数(三角比を使うにしても数学ってほどじゃない)だなぁ。とりあえず解いたんで書く。
r=-(Wcosθ+Hsinθ)+√(R^2-(Wsinθ-Hcosθ)^2) として
(rcosθ+W, rsinθ+H) …(1)
θの範囲は0≦θ<π/2だけどね。他の範囲は(1)式にある符号が変化するだけのはず。
387:デフォルトの名無しさん
06/02/01 08:22:33
>>386
それだと、 W = H = 0 の時にしか、長方形の頂点が円周上にこないんじゃない?
「点の座標」ってのが長方形の中心だとしても頂点だとしても。
多分やつは問題を理解できてないんだろうなあ。
2Dゲーム作ってて、円形フィールドからはみ出さないようにしたい、と推測したがどうか。
388:デフォルトの名無しさん
06/02/01 17:20:04
>>387
それだと浮動小数点でやってる場合、
点の座標を求めて=で判別したらイタイ目見そうだ。
(丁度等しくならなかった時に判定をスリ抜ける。)
不等式で「内側」の度合い評価できる基準を見つけないと。
389:デフォルトの名無しさん
06/02/01 17:29:09
2Dゲームの判定に使う程度なら
たぶん長方形の外接円で判定してごまかすのが楽なんじゃないかなぁ。
中心点同士の距離と半径だけで判定できる。
2乗ノルムでやれば平方根もいらないし。
もし精密にやりたければ上記の方法で簡易判定して明らかに接触しない事例を除いた上で
拙速するかもしれないケースだけ長方形を構成する線分が交差するかどうかを判定すれば
いいのかな。
390:デフォルトの名無しさん
06/02/01 17:31:22
で、この場合長方形の軌道は無視して一般化できて
軌道は具体的に長方形の位置を計算する以外は無関係だね。
391:マイク ◆yrBrqfF1Ew
06/02/04 00:33:27
log(2)(x-1) + log(1/2)(3-x) <= 0 //logの真ん中の()は底
を満たすxの値の範囲は
a < x <= b
このaとbと導かれる過程がわからん。
包茎じゃなくて東京六大学に在学中か卒業した人だけ答えてくださーい。
392:デフォルトの名無しさん
06/02/04 11:10:14
ヒント: a<x の部分は真数条件から
393:デフォルトの名無しさん
06/02/05 13:36:53
___ _
| ̄| /> _ _ / _| | | />
| |// \ \ __ / / \ \. | |//
| \ \ \/ \/ / 〉 ヽ. | \
| |\ \ \ /\ / | ̄ ̄ ノ | |\ \
/::::/'"  ̄ヾi /  ̄ ̄ \ /::::/'" ̄ ̄ヾi /  ̄ ヽ
|:::::::| ,,,,,_ ,,,,,,| | ^ ^ | |:::::::| ,,,,,_ ,,,,,,| | ^ ^ |
|r-==( 。);( 。) | >ノ(、_, )ヽ、.| |r-==( 。);( 。) | >ノ(、_, )ヽ、.|
( ヽ :::__)..:: } ! ! -=ニ=- ノ ! ( ヽ :::__)..:: } ! ! -=ニ=- ノ !
ヽ ー== ; \ `ニニ´ / ヽ ー== ; \ `ニニ´ /
\___ !  ̄ ̄ \___ !  ̄ ̄ ̄
394:デフォルトの名無しさん
06/02/06 04:30:36
東京六大学ってスポーツリーグだろ?
あんなかでまともな偏差値誇ってんのは
東京 慶應 早稲田 だけだろ
あとの三つは……やめた。
395:デフォルトの名無しさん
06/02/06 11:34:15
>391
名大出のしがない漏れは
頑張って答えようとしたりせずにニヤニヤしてれば好いわけね?
396:デフォルトの名無しさん
06/02/06 19:59:06
包茎云々は法政のことかいのう・・・
397:デフォルトの名無しさん
06/02/07 22:59:21
法経学部?
しかし>391ってまるっきり高校レベルじゃないか
398:デフォルトの名無しさん
06/02/08 12:53:00
>>397
シッ! 皆わかっててニヤ(・∀・)ニヤしてるんだから!
399:マイク ◆yrBrqfF1Ew
06/02/08 18:49:12
高卒・大卒なのにセンター試験の問題すら答えられないんだね;)
400:デフォルトの名無しさん
06/02/09 10:40:54
>>399
イヤー、オヂサン参ったな。ナント院卒だが答えられないぞ。
>391が出した問題の最後に示された条件:
> 包茎じゃなくて東京六大学に在学中か卒業した人
を満たすことができないからなー。何せ漏れは重度の冠頭包茎だし、
名古屋生まれの名古屋育ちで大学も院も名古屋大学だからな。
漏れがこの問題に答えるためには
東京6大学(慶応、上智、東京、明治、立教、早稲田)のどっかに入らないと
イカンわけだろ?
いやー回答者の資格に制限がある問題は難しいわ、ホント難しい、
全然答えられそうにないよwww
最近のセンター試験ってこんな答えるのが難しい問題出すの?(・∀・)
401:デフォルトの名無しさん
06/02/09 10:43:17
解らないっつってた本人が捨て台詞。
相変わらず莫迦なコテだな。
402:400
06/02/09 11:08:11
あ、書き忘れてたけど漏れが問題に答えるためには
My包皮も切らないとイカンのかー。やっぱ難しいわ。
漏れ包皮ついてるほうが好きだし、
臆病者だから体の一部切るなんてコワいしなー。
403:マイク ◆yrBrqfF1Ew
06/02/09 17:15:47
>>401
エセ学歴な上にノータリンですか?(▽
>>400
名古屋はもういいよ。
404:400
06/02/09 17:45:26
ま、>>391には皮肉も通じないようなんでマジレスに切り替えるけどね。
思うんだが学歴を今後も問題の条件に入れ続ける気なら
学歴板でも行ったらどうかと思う。
ここはプログラム板の数学スレだから学歴は関係ない。
そしてプログラムに関係ないセンター試験の問題について
受験生向け解説依頼を受け付けるスレでもない。
受験生ならオトナシク受験板でも行ってたほうがいいんじゃない?
大学受験板
URLリンク(etc4.2ch.net)
学歴板
URLリンク(tmp6.2ch.net)
405:マイク ◆yrBrqfF1Ew
06/02/09 18:10:56
答えたくなければいいんですよ。
答えなくなければね;)
406:デフォルトの名無しさん
06/02/09 18:16:13
実際答えたくねーし。
407:デフォルトの名無しさん
06/02/09 18:39:45
プログラムに関係ない受験数学の質問する厨な荒しは
今後スルーが相応と思うがどうか?
408:デフォルトの名無しさん
06/02/09 19:39:20
すべて水に流して 心機一転
ー 再開 ー
409:マイク ◆yrBrqfF1Ew
06/02/09 21:36:08
>今後スルーが相応と思うがどうか?
毎度スルースルーと言ってる割には毎度我慢できなくなってレスしちゃうんだね。
子供?;)
410:デフォルトの名無しさん
06/02/10 00:01:50
ここはム板なんだから、やっぱプログラム的に
近似的に解くべきだなw
411:デフォルトの名無しさん
06/02/10 02:34:30
>>409
えーと、どこで笑えばいいのかな?
412:デフォルトの名無しさん
06/02/10 16:15:10
>>410
じゃぁ、両端を探すために二分探索でもするか?
413:デフォルトの名無しさん
06/03/01 22:02:54
>>411
m9(^Д^)
じゃなくて
;)
を無理して使うとこ
414:デフォルトの名無しさん
06/03/03 14:58:11
自分の趣味としては;)よりは;-)
415:デフォルトの名無しさん
06/03/09 09:58:52
僕的には :-P
とかがかわいくて好きでつ
416:デフォルトの名無しさん
06/03/09 11:39:33
ここは顔文字スレになりました。よろしくね ;-P
417:デフォルトの名無しさん
06/03/09 11:56:57
問題だ
1+1=
418:デフォルトの名無しさん
06/03/09 12:14:22
11
419:デフォルトの名無しさん
06/03/09 12:24:33
10説も提唱するか。
420:デフォルトの名無しさん
06/03/09 12:34:32
Error: '=' の左が左辺値ではありません
421:デフォルトの名無しさん
06/03/09 13:24:56
Error: '=' で式が終わっています
422:デフォルトの名無しさん
06/03/09 23:36:01
Error : 予期せぬ問題が出題されました
423:デフォルトの名無しさん
06/03/10 00:06:04
符号付整数除算で四捨五入の処理について質問があります。
a÷b の結果を四捨五入して ret に取得する処理を以下のようにしました。
[バージョンA]
// 除数と被除数の符号チェック
if ((a ^ b) < 0) {
// a, bが異符号
// ret = (a / b) - (1 / 2)
ret = (2 * a - b) / (2 * b);
}
else {
// a, bが同符号
// ret = (a / b) + (1 / 2)
ret = (2 * a + b) / (2 * b)
}
この方法だと正の場合0.5→1、負の場合-0.5→-1となり
数値0に対して正負の結果が対称になります。
(続く・・・)
424:423
06/03/10 00:07:03
今、実装したいと考えているのは
除算結果の整数部: n、小数部: s (s >= 0) としたとき
四捨五入後の結果
・s < 0.5 のとき n
・s >= 0.5 のとき n + 1
[実例]
・-0.6 = -1 + 0.4 = -1 + 0 = -1
・-0.5 = -1 + 0.5 = -1 + 1 = 0
・-0.4 = -1 + 0.6 = -1 + 1 = 0
・0.4 = 0 + 0.4 = 0 + 0 = 0
・0.5 = 0 + 0.5 = 0 + 1 = 1
としたいのですが、上手い方法が見つかりません。
一応、自分なりに考えて以下のように実装したら上手くいきました。
[バージョンB]
if ((a ^ b) < 0) {
// 正数にして計算を行う
a = abs(a); b = abs(b);
// ・整数除算の結果を -1 したもの
// ・小数部を割合化したもの(?)である (b - (a % b)) / b + (1 / 2) を四捨五入したもの
// を加えて求める。
ret = -(a + b) / b + (2 * (b - (a % b)) + b) / (2 * b);
}
else {
ret = (2 * a + b) / (2 * b);
}
除数、被除数の符号チェックをしたりしてスマートではないので
もっとシンプルにできる整数演算での上手い方法はあるのでしょうか?
よろしくお願いします。
425:デフォルトの名無しさん
06/03/10 00:11:33
0.5足して切り捨てしちゃ駄目?
426:423
06/03/10 01:16:10
>>425
画像処理で使用するため浮動小数点は、できるだけ使用しないようにしています。
ちなみにバージョンA,Bともに四捨五入をするときは
ret = (a / b) + 0.5
= (a / b) + (1 / 2)
= (2 * a + b) / (2 * b) ←通分(だったっけ?)
のように0.5を足すようにしています。
427:423
06/03/10 01:32:01
ちょっと言葉足らずだったので補足を・・・
単純に0.5を足して切り捨てると除算結果が負数の場合に問題があるのです。
(たとえば、結果が-2のときは -2.0+0.5 → -1.5 → -1になってしまう)
そのためにバージョンAでは、除算の結果が正負で場合わけをして
+0.5か-0.5を切り分けることにしました。
428:デフォルトの名無しさん
06/03/10 02:46:54
>画像処理で使用するため浮動小数点は、できるだけ使用しないように
そもそもここに間違いがあると思うだけどな
429:デフォルトの名無しさん
06/03/10 11:44:35
>424
方法はそれしかない。可搬性を確保したい場合符号チェックは必然。
挙げられた例題は結果の精度として整数値しか必要でない
(小数点以下0ビットの精度)場合の固定小数点演算と看做すことができる。
固定小数点演算とは例えば小数点以下に2ビットの精度が必要な場合に
3ビット下駄を履かせて1→8、0.5→4とするなどして整数演算によって
一定精度の実数演算を行う方法だ。
その場合結局四捨五入の処理も必要になる。
最下位ビットが0か1かを決めるために剰余を使うのもまさに例題と同じだ。
(固定小数点演算という枠組みで考える理由は精度が異なる場合も
同じ考え方で統一的に考えられるというだけだ。)
そして符号の処理も結局必要になる。
ただ、符号付整数除算のハードウェア仕様としてはAもBもありえて、
ハードウェアの仕様を調べてそれに依存するなら処理を省略できる可能性はある。
通常の整数は2の補数表示をすることで正数に対する処理を転用して
負数を扱っているで0に対して表現が元々対称でない。
だからBバージョンが目当てなら見込みは割とある。
ハードウェアに依存しちゃうけどね。
430:デフォルトの名無しさん
06/03/10 11:58:45
訂正
2ビットの精度が必要な場合→3ビットの精度が必要な場合
精度は悪化するけど2bitの精度が必要な場合に3bit取って
剰余は見ないで最下位ビットだけ見て四捨五入って手はあるけどね。
431:423
06/03/10 14:08:49
色々とありがとうございます。
やはり、符号チェックは必要なのですね・・・
浮動小数を使いたくないというのは、参考にしているライブラリの処理速度を計測したところ
その結果から浮動少数は使っていないと思われるためです。
ちなみに、そのライブラリは Win32API のウィンドウとビューポート間の座標変換処理で
比較対照としているものは LPtoDP() という関数です。
こいつが結構くせもので、整数部を n 、小数部を s としたとき
だいたい s >= 0.47 で四捨五入して n + s → n + 1 としているのです。
(負数の場合も -1.53 = -2.0 + 0.47 = -1 [入]、-1.54 = -2.0 + 0.46 = -2 [捨])
上記のように、四捨五入の仕様は>>424のバージョンBと同じです。
整数演算で 0.47 くらいで四捨五入なんて特殊なことをしているので
何か整数演算独自の四捨五入の方式があるのかと思い質問させていただきました。
個人的にはバージョンBの除数、被除数の符号が異なる場合に
除算を2回行うというのに満足できないので、もう少し紙とペンで色々と考えてみます。
432:デフォルトの名無しさん
06/03/10 15:50:22
サンプルを少数表記じゃなくて整数比で示してくれないか?
その方が解析しやすい。
433:デフォルトの名無しさん
06/03/10 15:55:04
知ってるかどうか知らないが、
小数点以下の数を10進表記するとそれだけで誤差が含まれる。
だからこの場合、実数に換算しないで考えたほうがよい。
つまり計算させてる事例に関わる整数の比がないと
何が行われているか正確なことはわからない。
LPtoDP()ってことは窓の大きさとディスプレイの解像度が絡むんだろ?
434:デフォルトの名無しさん
06/03/10 16:18:42
固定少数点で負数の時だけ処理するのを条件判断を使わずにやりたいなら、
ret = (2 * a + b*sgn) / (2 * b);
として sgn を 1か-1にすればいい
あるいは
ret = (2 * a + b*(sgn+1)-b) / (2 * b);
とすれば sgn+1 は 0か2なので 0か-1の変数fを使い
ret = (2 * a-b + 2*b&f) / (2 * b);
xor結果の最上位で fを-1か0にすればいい
・右へのビット幅だけシフト
・インラインアセンブラを使って符号拡張命令
して、符号ビットを埋めて ゴチャゴチャやる方法があるけど、そんなの使いたい?
435:デフォルトの名無しさん
06/03/10 16:27:53
他に
ret = (2 * a + (b^t)) / (2 * b);
として tを 0か-1とする方法もある
でもたぶん
ret = ( a + ((b^t)>>1) ) / b;
あたりでやってんじゃないかな
436:423
06/03/10 18:01:03
みなさん、どうもありがとうございます。
>>432 >>433
座標変換のための設定は以下の通りです。
// マッピングモード設定
::SetMapMode(hDc, MM_ANISOTROPIC);
// ウィンドウ領域 (0, 0) - (1000, 1000)
::SetWindowExtEx(hDc, 1000, 1000, NULL);
::SetWindowOrgEx(hDc, 0, 0, NULL);
// ビューポート設定 (0, 0) - (10, 10)
::SetViewportExtEx(hDc, 10, 10, NULL);
::SetViewportOrgEx(hDc, 0, 0, NULL);
単純にウィンドウからビューポートへ(1/100)倍する変換です。
ウィンドウ、ビューポートのx座標をそれぞれ wx, vx として
-1000 <= wx <= 1000 の範囲で変換してます。
変換式は憶測ですが
vx = wx * (10 / 1000)
で求めていると思われます。
四捨五入の「入」、「捨」の境界は以下のとおり 0.46~0.47 です。
(これ以外の146, 246, ...、-154, -254, ... でも同様の結果です)
wx = -54 → vx = -1 (-54/100 → -0.54 → -1 + 0.46 → -1)
wx = -53 → vx = 0 (-53/100 → -0.53 → -1 + 0.47 → 0)
wx = 46 → vx = 0 (46/100 → 0.46 → 0 + 0.46 → 0)
wx = 47 → vx = 1 (47/100 → 0.47 → 0 + 0.47 → 1)
>>434
その方法だと>>423のバージョンAと同じになってしまうんです。
今は>>424のバージョンB方式の四捨五入の実装方法で迷ってるんです。
437:423
06/03/10 18:03:48
追加情報で、ウィンドウ領域とビュー領域の数値は32bit(int型)で設定可能なのですが
MSDNで調べたところウィンドウ領域は32bitを保証してビューポートは27bitしか保証しないと
明記されてます。
残り5bitを小数部とした固定小数点で計算とかをしているんですかね?
438:434
06/03/10 18:21:37
>>436
折角書いてやったんだから、ちゃんと読め!
いいか その>>424のバージョンB ってのは a/bの符号によって
符号負 ret = (2 * a - b) / (2 * b);
符号正 ret = (2 * a + b) / (2 * b)
としたいわけだろ?
符号を sgn +1/-1 なら
ret = (2 * a - b*sgn) / (2 * b);
だろが!
439:デフォルトの名無しさん
06/03/10 18:57:40
>>438
論外
ポイントになるのは、0.1刻みとして(-2.5~-1.6), (-1.5~-0.6), (-0.5~0.4), (0.5~1.4)
をどうやって同じグループにするかということ
440:デフォルトの名無しさん
06/03/10 19:21:54
素直に floor(val + 0.5) いっとく?