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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラムに必要な数学、算数に関する話題について
語りましょう。TIPS/Q&Aスレです。
2デフォルトの名無しさん:04/09/05 16:25
>>1
  ∧ ∧
  (,,゚Д゚) <ハァ?
  /  |
  (,,_/
プログラミングの為の数学と算数
http://pc5.2ch.net/test/read.cgi/tech/997150743/
プログラミングに最も必要なのは数学力
http://pc5.2ch.net/test/read.cgi/tech/1045224980/
ゲームのための物理(力学)
http://pc5.2ch.net/test/read.cgi/gamedev/1018255106/
【Collision Detection】
http://pc5.2ch.net/test/read.cgi/gamedev/1015484028/
関連スレ

フーリエ変換について教えてください
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=996929748

交差判定アルゴリズム
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=996157997

サウンドプログラミング
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=996171508

最速の素数判定アルゴリズム 
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=993457354

公開鍵の高速な生成
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=991992977
確率・統計は必要だな。
とりあえず。
グラフ理論とかも、知っておいたほうがよさげ

論理的・抽象的に考える力を養うために数学を勉強するのが最も大切なわけだが。
6旅人達 ◆ahGjnhNBTw :04/09/05 22:00
>>1
乙ですー
プログラマ志望。。
7デフォルトの名無しさん:04/09/08 02:15
離散系数学やっとけ
8デフォルトの名無しさん:04/09/08 02:47
俺の弟は、文系で数学つーか算数がまったくだめだったが、
ソフトハウスに就職した。研修始まった頃、
0〜n−1がn個であることがわかんねー、とか、16進のことで、
アルファベットがなんで数字?、とかいっていた。
んでも、配属されて開発やってんだってさ。どんな仕事やってんだろ。
文系で算数がまったくだめ、というかただのバカじゃないの?
うん。そこまでバカだと文系も糞もないな
文系って大学でも勉強といえる勉強ってしてないよね
だから今大変らしいけどな。象牙の塔の崩壊。
ネットの普及で、情報へアクセスしたり、論壇に上る特権がなくなってしまった。

よほど専門的な分野でない限り、文殊の知恵のほうが強い。
文系理系じゃなくて、コピペで済んでしまうような知識全般ってことだろ。
つまり、>>12みたいなカッコよさげなだけの、意味のない文章を書いてるやつは大変だということか。

文殊は智慧をつかさどる菩薩だから、強いのは当たり前だな。
文系だから数学がだめ、という話はよく聞くが、理系だから国語がだめ・世界史がだめ・英語がだめ、という話はあまりきかない。
文系のヤツの方が英語苦手だし。
もともと数学できるやつとできないやつを分けたのが文系理系なんだっけ?
17デフォルトの名無しさん:04/09/10 14:34:39
>>16
専門分野によってわけたのが理系と文系。
もともとあまり明確な区分は無いけれど、
おもにの物質的なもの・ことや論理などから研究するのが理系で、
人文をもとに研究するのが文系じゃないかなぁ…
人というのは間違いを侵すものだから、人文から結論を出す文系は
いつも間違えだらけ。
18デフォルトの名無しさん:04/09/10 15:37:53
計算で答えを求めるのが理系
資料から結論を出すのが文系
だけど、資料が多くなると計算して答えを求める必要があるから、結局両方理系。
19デフォルトの名無しさん:04/09/10 15:48:07
おまえらそういう下らない話、荒れるの分っててやってるだろ
20デフォルトの名無しさん:04/09/10 16:45:29
っていうか、文系って、数学から逃げるための言葉以外の意味あるの?
21デフォルトの名無しさん:04/09/10 20:52:15
>>5-20 それはマ板ネタだな
22デフォルトの名無しさん:04/09/11 01:58:56
>18
ところが学生に教える教員が純文系で算数ダメなので終了してる
23デフォルトの名無しさん:04/09/13 07:15:37
前スレ終了記念age
24デフォルトの名無しさん:04/09/13 08:43:58
もっと生産性のある話をしようよ
25デフォルトの名無しさん:04/09/13 09:51:54
スロット覚えたてで初心者の頃、ウンコがしたくなりホールに行ったんだ
で、便器に座ってふと横を見たら
「トイレットペーパー以外の物は詰まりの原因になりますので流さないでください」
と書いてあった
だから俺はウンコは便器の横でして、尻を拭いたペーパーだけを流してしまった
そしたら店員が来て、大きなピンセットみたいな物でウンコを一粒一粒拾いながら
「おまえわざとか?」と言ってきた
俺は悪くないのにイヤミ言われてアタッマきた
26デフォルトの名無しさん:04/09/13 10:05:23
>>25
確かに論理的には合ってるが…

27デフォルトの名無しさん:04/09/13 10:22:41
お店の論理では、便器の中にうんこをしろと、
しかし流すなと、そういうことだったんだろう。
流すなら紙だけ流せと。
はっきり書いておかない店側が悪いな。
28マイク ◆yrBrqfF1Ew :04/09/13 10:47:53
>>25
「ウンコを便器の中にして流す」というのが通常の行為だと思ったから
わざわざ便所に行ったんだろ?
今まで便器外にそれらを配置してくるのがお前にとって当たり前のことだったか?

便所は汚物を排泄する場所であり、
例えば包茎の皮を剥いて他の男と亀頭をこすり合わせて遊ぶような場所ではないと
通常わかるなら便器の横にモノを外してOKだと思えないだろうな。

ウンコ2ちゃんネラと言われても致し方ない
29デフォルトの名無しさん:04/09/13 11:03:16
>>28
しかし、常識を持ってトイレへ行ったら、うんこを流すなと書いてあったと、
そこで彼は彼なりに考えたのだろう。
俺は>>25を責める気にはなれない。
30デフォルトの名無しさん:04/09/13 11:09:39
数学と関係無いと思うが。。
31デフォルトの名無しさん:04/09/13 11:19:12
数学の定義を言ってみろ
32デフォルトの名無しさん:04/09/13 11:28:15
>>25
最高。使える!


33マイク ◆yrBrqfF1Ew :04/09/13 11:30:18
「トイレットペーパー以外の物は詰まりの原因になりますので流さないでください」
と書いてあったのであって「うんこを流すな」とそのまま明確には書いていない。
そして常識で考えればこういう表現は「汚物とトイレットペーパー以外」を意味する。
一般に便所でのこういった注意は汚物のことを当然と考えて省略している
論理としてだけただ見れば間違いだが
この社会で生活していくにはその程度の知識は必要不可欠であろう。
34デフォルトの名無しさん:04/09/13 11:32:56
暗黙の了解ってやつ?
X1,X2,X3,…,X7
の…をX4,X5,X6
という風に認識するのも暗黙の了解。
35マイク ◆yrBrqfF1Ew :04/09/13 11:38:41
Perlで言うなら
@numbers = 1..100;
の .. だろうな。
36デフォルトの名無しさん:04/09/13 11:41:16
>>35
それはちゃんとした定義があるだろう
細かいことになるけど
37デフォルトの名無しさん:04/09/13 11:50:46
>>32
俺も使えると思った。
38デフォルトの名無しさん:04/09/13 11:54:00
Fortranでいうところのi〜nか
39デフォルトの名無しさん:04/09/13 14:25:21
>>37
しかし、うんこしてたら店員に見られるトイレもいやだ。
40デフォルトの名無しさん:04/09/13 19:26:18
>>20
日本だと数学から逃げられるからダメすぎですよね。
他の国はどこも数学必須でしょ。

まあ、俺も逃げましたが。(だめじゃん)
41デフォルトの名無しさん:04/09/13 20:27:14
前スレと流れが変わってしまわれた。
42デフォルトの名無しさん:04/09/13 22:27:11
..
これはウンコだったんだね
43デフォルトの名無しさん:04/09/14 02:35:41
文系にも当然、ちゃんとできる人はいるんだけどさ、
何も出来ない奴はとりあえず文系に進むって言うのが問題なんだと思う。
ちゃんとした文系の人がかわいそう。

まあ、そんなことこのスレ的にはどうでもいいしさ、
誰か俺と数学を語り合おうぜ。
44デフォルトの名無しさん:04/09/14 03:08:45
>>43
あなたが自分のことを俺とよぶメガネの似合う髪がさらさらのきれいなお姉さんであれば、考えんでもない
45デフォルトの名無しさん:04/09/14 10:42:52
俺女はやだなあ。
46デフォルトの名無しさん: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で「ガウスの消去法」で検索したら一発で出たぞ。
検索くらいしる。
ttp://www.fuka.info.waseda.ac.jp/~kozo/suuchi/simple_equation/simple_equation_1.html
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
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
8379:04/10/15 17:57:12
回答が出ないようなら出すけど、
もう少し待った方がいい?

間違いなく擬似乱数なんかではないよ。
8479:04/10/15 18:05:02
ちょっとヒント。

今は全て一桁の数だけど、
そのうち2桁や3桁の数も出てくる筈。
85デフォルトの名無しさん:04/10/15 19:28:59
初めての数字が出現する位置から、2進数?ってところまで来たけど、そこから判らん。
8679: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行目までしか確かめてません
8979: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
http://www.amazon.co.jp/exec/obidos/ASIN/4526036323/
これですね。
他にも何かありましたら、推薦お願いします。(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
普通は平均。
どっちでも単に定数倍になっただけだからあんまりその後読み進めていくうえで支障はなさそう。
142140: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
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デフォルトの名無しさん:2005/03/25(金) 09:25:38
おまえ氏ねよぼけ
164デフォルトの名無しさん:2005/03/28(月) 06:03:35
数学はこつこつやってるんだが
俺の脳のスタックが足りねえこと痛感よ
165デフォルトの名無しさん:2005/03/31(木) 08:56:58
最近でた、結城の本買った奴いる?
166デフォルトの名無しさん:2005/04/11(月) 19:27:12
atan2って、atanが有るから要らないように思うのですが?
どうなんでしょう
167デフォルトの名無しさん:2005/04/11(月) 19:34:52
xがゼロかどうかを気にしなくて済む。
sage
168デフォルトの名無しさん:2005/04/11(月) 19:35:26
169デフォルトの名無しさん:2005/04/11(月) 19:36:20
sageと書こうとしたらフォーカスが変なとこにあったorz

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

漏れは10000越えると死ぬ
176デフォルトの名無しさん:2005/04/14(木) 13:33:16
質問なんですが、あるグラフが木であることを判定する方法として
全頂点の入次数が1以下であることを確認するよりも効率的な方法はありますか?
177デフォルトの名無しさん:2005/04/14(木) 15:32:31
>全頂点の入次数が1以下であること
の意味が判らないけど、これで十分条件になるの?
A→B, B→C, C→A みたいな循環構造が木と判定されない?
178デフォルトの名無しさん:2005/04/27(水) 19:42:54
おい、wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
なんか言えよ雑魚
179デフォルトの名無しさん:2005/04/28(木) 01:01:10
180デフォルトの名無しさん:2005/04/28(木) 03:17:27
たぶん誰もわからないだろうけど、ツェラーの公式で
なぜ曜日が求まるのか、詳しく教えていただけませんか・・・?
181デフォルトの名無しさん:2005/04/28(木) 03:25:56
わざわざ回答をしてくれる人を遠ざけるような枕をつける理由がわからない。
とりあえずぐぐってみて一番正確かつ詳しく説明してそうなページを探し、
その上でどこがわからないかを文章にしてみたら?
182デフォルトの名無しさん:2005/04/28(木) 05:14:03
183デフォルトの名無しさん: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]
184デフォルトの名無しさん: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日の曜日は求められる
185デフォルトの名無しさん: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
これは、上述の数列とよく似ているが一つ横にずれている(残念)
186デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/04/28(木) 06:58:30
いい時間つぶしになってしまった
しかしこれであってるのだろうか?
188マイク ◆yrBrqfF1Ew :2005/04/28(木) 15:56:08
MITも楽勝そうなこのスレの神々しい方々に質問ですぅ
nが自然数でn^2+1が素数になる数がいくつあるのか中卒の僕に優しく教えてくださいペコリー
189デフォルトの名無しさん:2005/04/28(木) 18:57:37
>>188
http://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0
ここの「素数に関連する未解決の問題」の欄を見るといい。
190デフォルトの名無しさん:2005/04/28(木) 20:55:41
>>187
やるな・・・
191デフォルトの名無しさん:2005/04/29(金) 13:33:40
やってはいけなかったか…
192デフォルトの名無しさん:2005/05/04(水) 01:36:31
通りすがりの者だが
>>25>>29>>33のやり取りにはワロタ
193デフォルトの名無しさん:2005/05/04(水) 02:14:14
線形代数、大事ですよね・・・・・・・・・
194デフォルトの名無しさん:2005/05/04(水) 02:43:37
ウンコがしたくなり、とある建物のトイレをかり、便器に座ってふと横を見たら
「トイレットペーパー以外の物は詰まりの原因になりますので流さないでください」
と書いてあったが、俺はウンコは流しても問題ないよなと思った
だから俺はウンコをし、尻を拭いたペーパーも流してしまった
そしたらトイレが詰まってしまい、怖いお兄さんが飛んできて後始末をしながら
「トイレットペーパー以外流さないで下さいって書いてあるだろ」と言ってきた
結局殴られる変わりに、一万円払って何とか逃げ出しました
以上、ぼったくりトイレは怖いと思い知った一日でした
195デフォルトの名無しさん:2005/05/11(水) 15:41:21
ウンコは持ち帰りましょう
196デフォルトの名無しさん:2005/05/30(月) 13:26:46
>>189
> >>188
> http://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0
> ここの「素数に関連する未解決の問題」の欄を見るといい。

のぞいてみたら、紛らわしい記述があった。

>素数は無限に存在する。
>
> * エウクレイデスによる証明
>
> 背理法による。

エウクレイデス(ユークリッド)のは背理法ではないよ。


197デフォルトの名無しさん:2005/05/30(月) 17:15:51
ユークリッドの証明は背理法だよ。
何故、背理法ではないと思うの?
198デフォルトの名無しさん:2005/05/30(月) 17:35:05
背理、背理、振れ背理法
199デフォルトの名無しさん:2005/05/30(月) 17:45:11
たぶん、エラトステネスとエウクレイデスの混同。
200デフォルトの名無しさん:2005/05/30(月) 20:55:23
素数が有限しかなかったとしたら何か問題でも?
201デフォルトの名無しさん:2005/05/30(月) 21:27:48
エラトステネスの呪い
202デフォルトの名無しさん:2005/05/31(火) 04:39:00
>>200

矛盾が生じる。
203デフォルトの名無しさん:2005/05/31(火) 05:11:54
一見背理法に見える証明でも、
実は単なる対偶法、ということはよくあるけどね
204デフォルトの名無しさん:2005/05/31(火) 08:16:12
矛盾とは?
205デフォルトの名無しさん:2005/05/31(火) 13:42:44
素数が有限なら、最大の素数Pってのが(いくつか知らんが)
あるわけで、2からPまでの全部の積に1を加えた数を考えて
みよう。これは明らかにPより大きい数だが、Pを整除するには?
206デフォルトの名無しさん:2005/05/31(火) 17:21:16
>>205
1以外ではできない あれ、これは素数ではないか
→すると仮定に矛盾する。
207デフォルトの名無しさん:2005/05/31(火) 17:48:36
>>197
君は原論第9巻の20を読んだことはないということだ。そこには
「素数の個数はいかなる定められた素数の個数よりも多い」とある。
208デフォルトの名無しさん:2005/05/31(火) 18:13:33
URL:http://www.asahi-net.or.jp/~FV6N-TNSK/gates/column245.html
メール:[email protected]
>先週はフィリピンで旧日本兵の方が発見されたとかいう未確認情報も
>流れて結構話題になっていたりしていますが、それにしてもフィリピンと
>言えば前の戦争で50万人も日本人が死んでいるんですよね。
>しかもこれ、ほとんどが飢え死にだそうで。話題になっている第三十師団も
>二週間分の食料しか持たずにジャングルを50日間行軍して6.7割の人が
>餓死したのだそうですが(インパール作戦みたいなものですね)、
>いやはやなんと馬鹿みたいな戦争をしたものです。
>しかも結局何も得るものも無かったわけですから、死んだ兵士はまさに犬死に
>としか言いようがありませんね。まったく二度と戦争なんて馬鹿げたことはしないで
>欲しいものです。とりあえず日本には九条があるので大丈夫かとは思いますけれどね。
209デフォルトの名無しさん:2005/05/31(火) 18:53:02
>>208
ここに貼ってどうする
政治経済方面に貼りまくるんだ
210デフォルトの名無しさん:2005/05/31(火) 20:12:29
>>205 2からPまでの全部の*素数の*積+1
だね。
211デフォルトの名無しさん:2005/05/31(火) 20:13:01
あ、整数全部でももkか。
212デフォルトの名無しさん:2005/06/01(水) 04:14:30
2からPまでの積+1がPを整除するって?
213デフォルトの名無しさん:2005/06/02(木) 05:35:26
>>207
原論は昔読んだ事があるんだが・・・
ごめん、あなたの方が正しい気がしてきた。もう一度勉強しなおしてくる。
214デフォルトの名無しさん:2005/06/06(月) 09:52:30
PARIつかえ
215デフォルトの名無しさん:2005/06/06(月) 09:57:55
ユークリッド(Euclid)による素数の無限性の証明の
話がでてるけど余談

エルデシュ(Erdoes) はこの証明を
"The BOOK" すなわち彼が信仰し存在することを
前提としている「究極のエレガントな証明集」の
代表例といっているそうだ
216デフォルトの名無しさん:2005/06/06(月) 10:03:28
また余談

この証明,何かだまされたような気がする人がいるのは
背理法,もっというと排中律を暗黙の仮定としているからだろう.
実際にかつて,排中律を使わずに数学を構成しよう,
という立場の人があらわれた.

より詳しい話は数学の歴史の本を参照してください.
217デフォルトの名無しさん:2005/06/06(月) 16:02:55
普通に高校数学やった人ならわかるっしょ。
218デフォルトの名無しさん:2005/06/06(月) 20:05:18
背理法を使わずに証明できない
つまり廃中立を認めない立場では
素数は有限しかないことないのか
219デフォルトの名無しさん:2005/06/06(月) 20:48:03
>218
背理法使わずに証明できるよ
220デフォルトの名無しさん:2005/06/06(月) 21:19:05
うちの大学の計算機科学の演習が
ひたすら直観主義論理で算術を構成してくっていうやつで
その最後の問題が素数の非有限性だったな
俺は証明できなかったけど
221デフォルトの名無しさん:2005/06/06(月) 23:22:03
数学的帰納法も騙されている漢字瓦斯
てゆーかあれで証明なのかどうか理解できにくい
222デフォルトの名無しさん:2005/06/06(月) 23:56:45
>>221
あれは自然数の公理のうちに入ってる
223デフォルトの名無しさん:2005/06/07(火) 22:46:31
>>222
それを公理に加えちまうってのが、
いかにも後付け的でインチキくせーってことでしょ。
224デフォルトの名無しさん:2005/06/07(火) 23:32:50
>>223
まあ、無限集合を定義するのにどの道必要だし。
225デフォルトの名無しさん:2005/06/08(水) 11:36:09
無限集合は、「自身の内部との一対一対応がある集合」として定義できるよ。
226デフォルトの名無しさん:2005/06/08(水) 21:57:09
>>225
それはつまり、「実数全体からなる集合は、
自然数全体からなる集合と1対1対応が取れる」
ということですか?
227デフォルトの名無しさん:2005/06/08(水) 22:15:03
「任意の内部」ではなくて「ある内部」でしょ
228デフォルトの名無しさん:2005/06/08(水) 22:24:40
おお。濃度の話になっている。
流石にスレ違いのような
229デフォルトの名無しさん:2005/06/09(木) 09:13:05
>>226
それはウソ
実数は可算ではないことが証明できる
有名な Cantor の対角線論法
230デフォルトの名無しさん:2005/06/09(木) 09:17:40
公開問題:

可算の濃度と実数の濃度に間の
濃度を持つ集合は存在するか?
231デフォルトの名無しさん:2005/06/09(木) 10:48:21
>>230
それは「どっちでもいい」で解決したはず
232デフォルトの名無しさん:2005/06/09(木) 14:27:31
>230
 上に同じ
233デフォルトの名無しさん:2005/06/10(金) 00:02:39
>>231-232
正確には、ZFC公理系の範囲では否定も肯定もできない。
もうちょっと公理を足せば否定も肯定もできる。
234デフォルトの名無しさん:2005/06/14(火) 10:17:37
公開問題:

ZF公理系の無矛盾性を証明せよ
235デフォルトの名無しさん:2005/06/14(火) 20:52:41
236デフォルトの名無しさん:2005/06/15(水) 00:34:45
(1)無矛盾でないと仮定する。
(2)仮定により矛盾が導かれる。
(3)故に仮定(1)は否定される。
237デフォルトの名無しさん:2005/07/16(土) 12:47:12
保守
238デフォルトの名無しさん:2005/08/15(月) 13:33:36
何か質問ある? と保守
239デフォルトの名無しさん:2005/08/20(土) 13:56:07
微分方程式って
まさに再帰アルゴリズムだよね。
240デフォルトの名無しさん:2005/08/20(土) 13:59:47
存在することよりも存在しないことを示すほうが難しいんだから。
背理法
241デフォルトの名無しさん:2005/08/20(土) 14:26:53
悪魔の証明
242デフォルトの名無しさん:2005/08/20(土) 14:44:34
●緊急告知

Googleの「日本海」の表記が韓国からの抗議により「東海」に変更

↓↓↓詳しくはこちら↓↓↓

【日本海】(;^ω^)VIP vs VANKlt;`∀´*gt;part8【海戦】
http://ex11.2ch.net/test/read.cgi/news4vip/1124499103/l50


今日の17時、20時、23時に 何 か を 「 撃 ち 」 ま す 。


抗議メール等、ご協力お願いいたします。
       ~~
       ↑
       重要
243デフォルトの名無しさん:2005/08/20(土) 16:06:16
>>11
大学に入れば勝ち
それだけで
仕事で使えもしないのに
おおいばりできるからな
244デフォルトの名無しさん:2005/08/23(火) 09:45:03
>>243
違うだろ
それでやっと「スタートライン」だろ
245デフォルトの名無しさん:2005/08/24(水) 00:58:46
コンピュータの数学 グレアム著
http://www.amazon.co.jp/exec/obidos/ASIN/4320026683/

一応、既出ではないよね?

コンピュータの名著100にも選ばれた超定番。
スタンフォード大学で使われてる教科書だけど、
ハノイの塔とかイメージしやすいところから始まって高度なところまで
自然に導いてくれるから、思ったほど敷居は高くない。
日本の教科書みたいにトップダウン式の記述ではなくかなり親切に書かれてるから、
腰をすえて読めばきっと満足できるはず。

値段的にアレだけど…。





246デフォルトの名無しさん:2005/08/24(水) 09:43:17
>>245
URL長すぎ
もっと短くしる
247デフォルトの名無しさん:2005/08/24(水) 12:35:21
amazonのURLのexec/obidosの部分は略記が可能で、

http://www.amazon.co.jp/o/ASIN/4320026683

と出来る。

まだ長い?
248デフォルトの名無しさん:2005/08/24(水) 12:48:08
249デフォルトの名無しさん:2005/08/24(水) 16:24:06
スキームもいらんな。
www.amazon.co.jp/o/ASIN/4320026683
250デフォルトの名無しさん:2005/08/24(水) 16:29:12
いっそ
">>245"
251デフォルトの名無しさん:2005/08/24(水) 22:57:50

252デフォルトの名無しさん:2005/08/25(木) 10:14:14
>>245
> コンピュータの数学 グレアム著

この本はマジでいいよ
値段がアレだけど

Knuth の例の The Art... から
おいしいとこだけもってきて
きれいに系統だてたかんじ

TeX による組版のできもいい
数式は普通はイタリックを使うのが慣例だけど
別の書体を使ってるのがおもしろい

そもそもイタリックを使うのは普通の文章の
ローマンと区別するためのもので
区別させつけば数式がイタリックである必然性はない
253デフォルトの名無しさん:2005/08/25(木) 16:13:28
値段もアレだが、大きさもアレだよな。
俺は洋書で買って、すぐ単元ごとに切り分けてしまったよ。

定評あるコンピュータ本って豪華な装丁だったり、
ページ数が膨大だったりするから、ホントはいつでも気軽に参照したいのに
(気持ち的に)アクセスが重いってことがある。

自分の血肉とするためには、本の体裁など気にせず
とことん自分仕様に改良するのがよい。
同じ本の違うページを同時に開いて見れるしね。
254デフォルトの名無しさん:2005/08/26(金) 21:52:02
>>253
わかった!
さっそく切り刻んでくる!
255デフォルトの名無しさん:2005/08/26(金) 23:03:01
でも、古本に売れなくなるぞ
256デフォルトの名無しさん:2005/08/30(火) 01:26:45
豪華装丁本をバラすのはなかなか勇気がいりますなぁ…。
257デフォルトの名無しさん:2005/08/30(火) 09:44:39
もう後戻りは出来ない
258デフォルトの名無しさん:2005/08/30(火) 13:08:36
21 名前:名無しさん@6周年[] 投稿日:2005/08/30(火) 10:31:13 ID:oAGcvdqV0
>>6
イタリア語で85000(8500だったかな・・)は
「 オッタッタチンコミーレ !」
259デフォルトの名無しさん:2005/08/30(火) 22:30:49
ヤコビ法
http://www.geocities.jp/supermisosan/jacobi.html
b配列に代入されている初期値の意味は何ですか?
260デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/08/31(水) 01:42:08
>>260
すばらしいぃ!!
疑問が晴れました。ありがとうございます。
262デフォルトの名無しさん:2005/09/13(火) 01:54:25
結城さんの「プログラマの数学」は、
>>245 の「コンピュータの数学」グレアム著、
の初歩を紹介した感じの内容だね。
なんつーか、この人わかりやすい比喩を考えるのがうまい。

www.amazon.co.jp/o/ASIN/4797329734/
263デフォルトの名無しさん:2005/10/02(日) 01:33:08
伝熱解析に関して
非定常の差分方程式を解くプログラムをCで作りたいのですが
おすすめの参考書とかありますか?

Tm+1 + Tm-1 + 2Tm / 凅^2 = 1/α δTp/δt
の方程式です
264デフォルトの名無しさん:2005/10/05(水) 11:38:18
数値解析+差分方程式 で google したら?
265デフォルトの名無しさん:2005/10/05(水) 11:56:16
ワイルは晩年、直感主義数学を主張してたらしい
本当に基礎的な証明でも膨大な時間をかけて講義してたらしい
266デフォルトの名無しさん:2005/10/05(水) 12:11:37
>>263
そのレベルなら、俺が師匠の手伝いしておごってもらった時に書いた本でも作ったな
てか、初歩の数値解析関係で、差分方程式のサンプルにまず100%含まれてる
後は、境界条件と制約条件をどうするかだけしかないな
267デフォルトの名無しさん:2005/10/09(日) 02:17:46
263です
例で書いた数式1次元ですね。すいません
んー、3次元の非定常のプログラムがなかなかなくて・・・
参考書はほとんど二次元で終わってまして
268デフォルトの名無しさん:2005/10/12(水) 17:21:19
楕円方程式で、
x^2/a^2 + y^2/b^2 = 1とネットで調べると出てくるのですが、
円の中心(本来はそういわないかもしれない)が(0,0)で
ない場合の式は、この式じゃないような気がするんですが。
269デフォルトの名無しさん:2005/10/12(水) 17:26:54
それは標準形という奴だからでは?
270デフォルトの名無しさん:2005/10/12(水) 17:34:17
つまり、その式は原点が中心の円を縦・横に引き伸ばした場合の式

さら平行移動させたり、回転させたりすると、当然複雑になるけど、複雑にしてもメリットないでしょ?

実際に楕円描く時はその式では不便で、sin/cosの媒介変数型使うだろうし
・・・・いや、実際に楕円描く場合はベジェ曲線で近似するだろうな
271デフォルトの名無しさん:2005/10/12(水) 18:28:16
>>268
応用が効かない言い方をするならば、
中心(c,d)なら(x-c)^2/a^2+(y-d)/b^2=1と考えていい。
272デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/10/12(水) 21:49:37
だから応用の効かないと言ったんだが
274デフォルトの名無しさん:2005/10/15(土) 20:36:14
天文物理をやっていると焦点と離心率で楕円を書きたくなる罠。
275デフォルトの名無しさん:2005/10/16(日) 22:27:04
紐と画鋲と鉛筆で描くみたいな感じ。
276デフォルトの名無しさん:2005/10/19(水) 23:05:17
>>268
一応言っておくと「楕円方程式」と「楕円の方程式」は別物ですよ
ここで言ってるのは前者ですね
277デフォルトの名無しさん:2005/10/19(水) 23:06:43
違った後者だ
278デフォルトの名無しさん:2005/10/21(金) 20:14:16
いや、実は前者。俺の言うことを信じろ。
279デフォルトの名無しさん:2005/10/21(金) 23:53:52
皆だまされるな!正しくはもちろん後者だ。
280デフォルトの名無しさん:2005/10/22(土) 00:56:25
俺の言うことだけが本物だ。信じろ。
前者に決まっとる。
281デフォルトの名無しさん:2005/10/22(土) 03:32:24
本当の事言うと。
どっちもどっちw
282デフォルトの名無しさん:2005/10/24(月) 13:41:54
真実は闇の中…。
283デフォルトの名無しさん:2005/10/24(月) 21:16:45
問:>>276-282のなかで嘘つきを断定せよ。
参考:>>268
284デフォルトの名無しさん:2005/10/26(水) 14:03:53
今だから真実を告白したい…>>283こそが嘘つき。
285デフォルトの名無しさん:2005/10/26(水) 23:53:36
>>284
嘘つきになる要素が・・・
286デフォルトの名無しさん:2005/10/27(木) 13:49:13
俺こそが嘘つき。
287デフォルトの名無しさん:2005/10/27(木) 14:31:05
この中に1人、明らかな矛盾を述べたものが居るっ!!!
288デフォルトの名無しさん:2005/10/27(木) 15:00:16
>>287 お前やろ?
289デフォルトの名無しさん:2005/10/27(木) 22:38:31
ヴルルル、自分は絶対嘘なんかついてますねん。
290デフォルトの名無しさん:2005/10/28(金) 00:58:51
バカっていったやつがバカ
291デフォルトの名無しさん:2005/10/28(金) 01:04:29
>>289 お前やー!!
292291:2005/10/28(金) 01:05:14
…決め台詞で割り込まれた orz
293デフォルトの名無しさん:2005/10/28(金) 01:10:03
おまえら落ち着け…
素数を生成するコードを書いて落ち着くんだ…
294デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/10/28(金) 10:58:22
やれやれだぜ…
296デフォルトの名無しさん:2005/11/04(金) 02:06:55
だぜ、って懐かしいよな。
297デフォルトの名無しさん:2005/11/04(金) 22:23:21
>>296
「だぜ」に突っ込むか・・・。
「やれやれだぜ」自体が漫画の台詞。
ジョジョ。
298デフォルトの名無しさん:2005/11/04(金) 23:27:22
「だぜ」って「学校に行こう」に出てたヤシだろ?
299判定:2005/11/08(火) 14:02:29
>>297-298
どっちも知る人ぞ知るってな話題だが>>298の方がよりマイナーと思われ。
300& ◆BSGaog1Z0Q :2005/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デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/11/16(水) 22:10:39
>http://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0 

> 素数は無限に存在する。

> エウクレイデスによる証明 
> 背理法による。 
> 素数が有限個しかないと仮定し、それらを次のようにおく。 
>  
> pi, i <= n 
> ただし n は定数。 

> q = p1p2p3...pn + 1

> を考えよう。q は合成数であるか素数であるかのいずれかである。 
> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである。その一方で q は pi のいずれで割っても 1 があまり、矛盾する。 
> 素数だとすると、これは pi のいずれとも異なるから素数が有限個しかないことに反する。 
> Q.E.D. 

この証明変だよね。
303デフォルトの名無しさん:2005/11/16(水) 22:18:18
>>302
どこで引っかかった?何が変?
304デフォルトの名無しさん:2005/11/16(水) 22:22:32
「素数は無限に存在する」ことの証明だから、
「qが合成数」も「素数が有限」も否定していいんだよ。
305302:2005/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デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/11/16(水) 22:41:27
>>305
この推論は「素数が有限個しかない」という偽の前提があるから、反例を持ち出してもしょうがない。
> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである。
これは、「合成数は有限個の素数の積で表される」という定理と「素数はpiしかない」からの帰結。
308302:2005/11/16(水) 22:49:50
素数が有限個しかないとは思ってませんが、

> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである

そうでない場合もあるとは思いませんか?
そして、その場合についても論ずるべきでは?
309デフォルトの名無しさん:2005/11/16(水) 22:57:11
>>308
だから、>>307に書いたように、
> q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである
は「素数がpiしかない」という仮定の下で証明できる。
証明できるからには、これが偽である可能性を検討する必要はない。
310302:2005/11/16(水) 23:37:43
では、エウクレイデスによる証明は、  

>「合成数は有限個の素数の積で表される」という定理

を前提としているわけですか?
311デフォルトの名無しさん:2005/11/16(水) 23:45:05
>>310
群論か環論の本を読んでくださいな、素元、既約元のあたりです。あとできれば背理法についてもね。
312デフォルトの名無しさん:2005/11/16(水) 23:57:48
>>310
細かい違いはあるかも知れない(例えば、その定理の代わりに「合成数は素因数を持つ」でも十分)けど、
基本的にはその通りだと思う。
313302:2005/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デフォルトの名無しさん:2005/11/17(木) 00:19:56
おまいらプログラマらしく素因数分解のアルゴリズムでも考えよう
128bit暗号を解読できるくらいのを
315デフォルトの名無しさん:2005/11/17(木) 00:31:12
>>313
ちょっとおかしいところ(「piを超える素数」じゃなくて「pi以外の素因数」というべき)があるけど、大筋としてはそれでもいい。
でも、そう書き換えたところで推論の構造はほとんど変わっていないし、
「合成数は素因数をもつ」ことに依存しているのも変わらない。
316302:2005/11/17(木) 00:46:27
そうですか。
自分なりに納得できて助かりました。
ありがとうございました。
317デフォルトの名無しさん:2005/11/17(木) 01:16:31
代数学か。懐かしいな。
318デフォルトの名無しさん:2005/11/17(木) 11:36:57
>>311
いや、真っ先に背理法を理解すべきでは?
319デフォルトの名無しさん:2005/11/17(木) 12:27:31
大きくなれよ
320デフォルトの名無しさん:2005/11/17(木) 13:05:04
背理 背理 振れ 背理法〜
321302:2005/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デフォルトの名無しさん:2005/11/17(木) 16:08:50
2進数で表すと分かるかも。doubleの内部ビット表現を調べてみな。
323デフォルトの名無しさん:2005/11/17(木) 17:01:31
>>321
浮動小数点表現の仮数部が 52 ビットのとき、精度は 15.6 桁。
…って、計算機の初歩の初歩だろうに。
324302:2005/11/17(木) 17:11:45
>>322
レスありがとうございます。

2進数の表し方がわからなかったので、
16進数で見てますが、所々おかしなところがあり、
手直ししています。

>>323
そうでしたか、出直してきます。
325デフォルトの名無しさん:2005/11/17(木) 21:07:29
SA(シミュレーテッド・アニーリング)法で
巡回セールスマン問題解くプログラム作ってるんですけど
このスレでいいっすか?
それとも数学板に行ったほうがいいですかね?

http://www.watanabe.nuie.nagoya-u.ac.jp/member/jien/lectures/tokuron/toku5.pdf
↑でとりあえず理屈はわかったんだけど
摂動行列の決め方がわからん。

ていうか
あるルート候補から次のステップのルート候補作るときに
全部シャッフルしたらさすがに効率悪そうだし
隣同士入れ替えただけだともろ局所解に引っかかりそうだし。

なんか巡回セールスマン向けのうまい方法
(あるルートXnからX(n+1)を作るアルゴリズム)
だれかしらないですか?
326デフォルトの名無しさん:2005/11/17(木) 22:09:18
>>325
アニーリング関数が適当なら、その隣同士とかでやったとして
局所的なくぼ地にはまってしまうような場合であっても
少ない確率ではあるけどそのくぼ地を乗りこえることかできるから
結局それなりにうまくいくんじゃないのかな
327デフォルトの名無しさん:2005/11/18(金) 00:37:31
>>321
つ[long long]
328デフォルトの名無しさん:2005/11/19(土) 09:22:25
>321
つ[多倍長演算]
329デフォルトの名無しさん:2005/11/19(土) 10:35:17
読みって「たばいちょう」?
330デフォルトの名無しさん:2005/11/19(土) 11:18:12
>>329
OK!
331デフォルトの名無しさん:2005/11/19(土) 11:26:32
束井町の塩山では今年も岩塩の収穫の時期になりました
332デフォルトの名無しさん:2005/11/19(土) 11:29:02
えっ?どこっ?なに?誤爆?束胃腸・・・?
333デフォルトの名無しさん:2005/11/19(土) 13:23:14
>>330
サンクス。
変換しても出てこないので違うのかなと思っていた。
334デフォルトの名無しさん:2005/11/19(土) 13:51:31
>>333
かな漢字変換辞書が全ての技術語を網羅しているわけがないだろう。
それともあれか、藻前は「へんかんできないからそんな字ない」とか言っちゃう小学生か?
335デフォルトの名無しさん:2005/11/19(土) 19:32:31
つーか他の読みをしようにもたばいちょうとしか読めん
336デフォルトの名無しさん:2005/11/19(土) 20:10:17
>>334
そんなにキツく言わんでも・・。
337デフォルトの名無しさん:2005/11/20(日) 22:49:35
今 1 から N までの N 個の異なる自然数からなる順序付きタプルを入力に受け,
そのタプルが大きさ N の全順列中において辞書順で何番目かを返すアルゴリズムを
実装したいんですが,どういうアルゴリズムが考えられますか?
例えば, {1, 2, 0} を与えたら 4 を返すような感じのアルゴリズムです.
338デフォルトの名無しさん:2005/11/20(日) 22:53:59
タプルって何だっけ?
339デフォルトの名無しさん:2005/11/20(日) 23:01:25
>>338
tuple
【名】 組、《コ》タプル
340デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/11/20(日) 23:10:03
Nがわかったら、順列を順に生成する関数に渡せば良いんじゃね?(N,{0,1,2}を渡す)
で、マッチングをとる。
342デフォルトの名無しさん:2005/11/20(日) 23:17:15
あっ、340 の {2, 3, 1, 0} の例、最初は 3! じゃなくて 2×3! =12、
最後の結果も18だわ。

>>341
それだと順列生成自体が糞重たいし、コーディング結構難しくない?
343デフォルトの名無しさん:2005/11/21(月) 00:32:41
魔法陣って4×4で出来ますか?
344デフォルトの名無しさん:2005/11/21(月) 01:58:19
できます
345デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/11/21(月) 15:45:08
>>337
素直に説明を読むと、

「1からNまでのN個の順列組み合わせを辞書式順序で並べたとき
各組合わせは何番目?」

という問だと思うのだが、いきなり組の要素に0があったりするのはなぜ?
347337:2005/11/21(月) 18:58:04
>>340
素直にやるなら,前から順に読んでいって現れた数字を記録しないとならないですよね.
前から順に読んで現れた数字より大きい数字を全てデクリメントしていくやり方も
あるのかな?参考になります.

>>345
これって 340 さんの考え方じゃなくてむしろ 341 さんの考え方ですよね?

>>346
すいません.最初,説明を「0 から N-1」と書いてて後で直したんですが
例を書き直すのを忘れてました.337 の正しい例は {2, 3, 1} です.
348デフォルトの名無しさん:2005/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)、残った列に対し*に戻る。
349340:2005/11/22(火) 12:02:43
>>348
それ見てて思ったけど、
(3)(階乗計算)とか(4)の計算に掛かる時間を考えると、
>>345 のコードよりも計算量大きくなるかも。
>>345 だと標準ライブラリの機能そのまま使っててコード量的にも少ないし。

順列生成のアルゴリズムって、>>345 の結果見てる感じ、
バブルソートを1ステップずつやるようなものなのね。
350デフォルトの名無しさん:2005/11/22(火) 16:31:37
似たような問題で、よく出るのが、

 1 から N までの N 個の異なる自然数による順序付タブル をランダムに出力せよ
351デフォルトの名無しさん:2005/11/22(火) 18:36:00
タブル
352337:2005/11/23(水) 22:03:52
>>349
345 さんのコードだと平均・最悪で O(N!) な一方で
348 さんのだと平均・最悪で(階乗計算も含めて) O(N^2) ですから,
特別な事情がなければ 348 さんのを選択するのが良いと思います.
というか 348 さんのアルゴリズムで実装できました.ありがとうございました.
353デフォルトの名無しさん:2005/11/28(月) 23:10:17
新スレたてました!

フーリエ変換が趣味です。
http://hobby8.2ch.net/test/read.cgi/hobby/1133005088/
354デフォルトの名無しさん:2005/11/29(火) 19:35:47
『任意の微分方程式を与えられたとき、それを解くプログラムを記述せよ。ただし、す
べての方程式を解くことは困難なので、そのプログラムで解ける範囲を指定し記述せよ。』
この問題のアルゴリズムと、ソースを書いてくれませんか?
ここで悩んでいるので是非とも力を貸してください!!お願いします。
355デフォルトの名無しさん:2005/11/29(火) 19:36:39
師ね
356デフォルトの名無しさん:2005/11/29(火) 19:36:55
×力を貸してください
○答え教えろ
357デフォルトの名無しさん:2005/11/29(火) 20:08:28
>すべての方程式を解くことは困難なので、そのプログラムで解ける範囲を指定し記述せよ。』
とりあえずオイラー法を用意して、それで解ける範囲を明示しておけばレポート通るんじゃね?
358デフォルトの名無しさん:2005/11/30(水) 01:23:23
あからさまに宿題をそのまま出されるとな・・・
359デフォルトの名無しさん:2005/12/07(水) 23:46:24
http://www-ise2.ise.eng.osaka-u.ac.jp/~iwanaga/study/csharp/st_function.html
上記のサイトで、Sinをテイラー展開で求めているようですが、

sin(0.00) = NaN (非数値)
sin(0.01) = NaN (非数値)
sin(0.02) = NaN (非数値)
    ・
    ・

となってしまいます。どこが間違っているのでしょうか?
360デフォルトの名無しさん:2005/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デフォルトの名無しさん:2005/12/08(木) 00:16:08
っつーかおまいら、2ch にさらす暇あったら作者に報告入れろって。
362359:2005/12/08(木) 00:39:53
>>360
なるほど! 数学関連の話で、何が合っていてどこから手をつけていいものか
困り果てているところでした。非常にお早いレス感服いたします。
ありがとうございました。

>>361
すみません。いくつか間違いがみられ、一応メールアドレスを探してみた
のですがわかりやすい位置になかったので、すぐに断念してしまいました。
363デフォルトの名無しさん:2005/12/08(木) 00:42:21
i=100から順に計算した方が精度が上がると思う
364デフォルトの名無しさん:2005/12/08(木) 01:32:54
数学的に正しくてもプログラム的にどうなのかは別問題なのす
365340:2005/12/08(木) 11:29:34
>>362
トップページたどれって。
全ページに連絡先入れといた方がいいのか?

>>363
それいいだすとさ、
π/2 の範囲に収まるように mod 2π とか三角関数の公式使って変換して、
sin と cos のどちらか選んで計算するとか、凝りだすときりない。
餅は餅屋と言う奴で、そういうのは数値計算屋さんにお任せしないと。
366デフォルトの名無しさん:2005/12/08(木) 22:43:03
>>365
ウェブページの作り方的な話なら、
全ページにaddress要素は入れるのが基本
address要素内には連絡先として通常メールアドレスが入る
367デフォルトの名無しさん:2005/12/08(木) 23:13:51
>>366
それ、確かに推奨はされてるけど、
ボットにアドレス収集されるのが嫌で、実際やってる人いなくない?
368デフォルトの名無しさん:2005/12/08(木) 23:25:27
>>367
俺はやってるよ
あるいは自働収集が嫌って言って
画像を使ったり余計な文字をはさんだりしてる人もいる

要は形式上の問題じゃなくて、
>>362みたいな状況にならないようにっていうのが
目的なんだし。
369 【凶】 【308円】 :2006/01/01(日) 07:54:11
あけましておめでとう。 求む 質問・疑問 
370 【だん吉】 !otoshidama:2006/01/01(日) 08:40:35
さっきやったら大凶が出たぞ!
371デフォルトの名無しさん:2006/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デフォルトの名無しさん:2006/01/09(月) 00:49:45
>>371
そりゃ、8と9に割ればいいじゃん。
373デフォルトの名無しさん:2006/01/09(月) 00:54:24
>>372
しかしその場合併合(マージ)しようとするとどんな風になるのでしょうか
グーグル先生のイメージ検索はエレメントの個数が偶数ばかりのもので・・
勉強してきます(´・ω・`)
374デフォルトの名無しさん:2006/01/09(月) 00:56:37
どんな感じってソートするだけだろ。
375デフォルトの名無しさん:2006/01/09(月) 03:02:59
>>373
べつに偶数のときとかわらん。
違う数に分割されたからといって
コードの何処も変える必要なんかない。

そんな必要があったら
そもそもマージソートじゃない
376デフォルトの名無しさん:2006/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)))
と分割すればいい。
てか図解すると並列に見えるけど、実際の処理は再帰的に行われるから、
部分的に階層が深くなっても問題ない。

ttp://oku.edu.mie-u.ac.jp/~okumura/algo/archive/algo.lzh
の mergsort.c 読めば解るよ。
377デフォルトの名無しさん:2006/01/09(月) 13:56:17
>>373
つーか、聞く前に一度自分で実際にやってみ。
マージって全然個数の違う2つの列相手にもできるから。
例えば極端な話 1, 16 とかで分けてもマージできる。
378マイク ◆yrBrqfF1Ew :2006/01/23(月) 00:20:53
シュレーディンガーの猫というのは簡単に言うとあれだろ
堀江由衣の処女
379デフォルトの名無しさん:2006/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デフォルトの名無しさん:2006/01/30(月) 23:54:04
原点(0,0)を中心とした半径Rの円がある
中心点から角度θの軸を考え、横2W縦2Hの長方形の中心がこの軸を移動するとして
長方形の頂点が円周上にくる点の座標は?
381380:2006/01/30(月) 23:55:32
>>380書き忘れ
長方形は円の内側にあるものとする
382デフォルトの名無しさん:2006/01/31(火) 00:41:23
>380-381
人にモノ聞く態度じゃねぇな。
出直して来い。
383デフォルトの名無しさん:2006/01/31(火) 09:44:41
それになんか問の内容も何がいいたいかよーわからん。
もしかして日本語が不自由な方なんでわ?
384デフォルトの名無しさん:2006/01/31(火) 10:41:19
ここは宿題スレじゃないんじゃね?
385デフォルトの名無しさん:2006/01/31(火) 18:07:46
正方形じゃねーのかな・・・
386デフォルトの名無しさん:2006/01/31(火) 18:42:49
プログラムじゃなくて普通に算数(三角比を使うにしても数学ってほどじゃない)だなぁ。とりあえず解いたんで書く。
r=-(Wcosθ+Hsinθ)+√(R^2-(Wsinθ-Hcosθ)^2) として
(rcosθ+W, rsinθ+H) …(1)
θの範囲は0≦θ<π/2だけどね。他の範囲は(1)式にある符号が変化するだけのはず。
387デフォルトの名無しさん:2006/02/01(水) 08:22:33
>>386
それだと、 W = H = 0 の時にしか、長方形の頂点が円周上にこないんじゃない?
「点の座標」ってのが長方形の中心だとしても頂点だとしても。

多分やつは問題を理解できてないんだろうなあ。
2Dゲーム作ってて、円形フィールドからはみ出さないようにしたい、と推測したがどうか。
388デフォルトの名無しさん:2006/02/01(水) 17:20:04
>>387
それだと浮動小数点でやってる場合、
点の座標を求めて=で判別したらイタイ目見そうだ。
(丁度等しくならなかった時に判定をスリ抜ける。)
不等式で「内側」の度合い評価できる基準を見つけないと。
389デフォルトの名無しさん:2006/02/01(水) 17:29:09
2Dゲームの判定に使う程度なら
たぶん長方形の外接円で判定してごまかすのが楽なんじゃないかなぁ。
中心点同士の距離と半径だけで判定できる。
2乗ノルムでやれば平方根もいらないし。

もし精密にやりたければ上記の方法で簡易判定して明らかに接触しない事例を除いた上で
拙速するかもしれないケースだけ長方形を構成する線分が交差するかどうかを判定すれば
いいのかな。
390デフォルトの名無しさん:2006/02/01(水) 17:31:22
で、この場合長方形の軌道は無視して一般化できて
軌道は具体的に長方形の位置を計算する以外は無関係だね。
391マイク ◆yrBrqfF1Ew :2006/02/04(土) 00:33:27
log(2)(x-1) + log(1/2)(3-x) <= 0 //logの真ん中の()は底
を満たすxの値の範囲は
a < x <= b

このaとbと導かれる過程がわからん。
包茎じゃなくて東京六大学に在学中か卒業した人だけ答えてくださーい。
392デフォルトの名無しさん:2006/02/04(土) 11:10:14
ヒント: a<x の部分は真数条件から
393デフォルトの名無しさん:2006/02/05(日) 13:36:53
                           ___    _
   | ̄|  />  _           _   /   _|   | |  />
   |  |//   \ \   __   / /   \ \.     |  |//
   |    \     \ \/ \/ /       〉 ヽ.    |   \
   |  |\ \     \ /\ /    | ̄ ̄   ノ     |  |\ \
 /::::/'"   ̄ヾi    /  ̄ ̄ \  /::::/'" ̄ ̄ヾi   /   ̄   ヽ
 |:::::::| ,,,,,_  ,,,,,,|   |  ^   ^  |  |:::::::| ,,,,,_  ,,,,,,|  |  ^    ^  |
 |r-==( 。);( 。)   | >ノ(、_, )ヽ、.|   |r-==( 。);( 。)   | >ノ(、_, )ヽ、.|
 ( ヽ  :::__)..:: }    ! ! -=ニ=- ノ !  ( ヽ  :::__)..:: }   ! ! -=ニ=- ノ !
  ヽ  ー== ;      \ `ニニ´ /   ヽ  ー== ;    \ `ニニ´ /
   \___ !        ̄ ̄       \___ !        ̄ ̄ ̄
394デフォルトの名無しさん:2006/02/06(月) 04:30:36
東京六大学ってスポーツリーグだろ?
あんなかでまともな偏差値誇ってんのは
東京 慶應 早稲田 だけだろ
あとの三つは……やめた。
395デフォルトの名無しさん:2006/02/06(月) 11:34:15
>391
名大出のしがない漏れは
頑張って答えようとしたりせずにニヤニヤしてれば好いわけね?
396デフォルトの名無しさん:2006/02/06(月) 19:59:06
包茎云々は法政のことかいのう・・・
397デフォルトの名無しさん:2006/02/07(火) 22:59:21
法経学部?

しかし>391ってまるっきり高校レベルじゃないか
398デフォルトの名無しさん:2006/02/08(水) 12:53:00
>>397
シッ! 皆わかっててニヤ(・∀・)ニヤしてるんだから!
399マイク ◆yrBrqfF1Ew :2006/02/08(水) 18:49:12
高卒・大卒なのにセンター試験の問題すら答えられないんだね;)
400デフォルトの名無しさん:2006/02/09(木) 10:40:54
>>399
イヤー、オヂサン参ったな。ナント院卒だが答えられないぞ。
>391が出した問題の最後に示された条件:

> 包茎じゃなくて東京六大学に在学中か卒業した人

を満たすことができないからなー。何せ漏れは重度の冠頭包茎だし、
名古屋生まれの名古屋育ちで大学も院も名古屋大学だからな。
漏れがこの問題に答えるためには
東京6大学(慶応、上智、東京、明治、立教、早稲田)のどっかに入らないと
イカンわけだろ?
いやー回答者の資格に制限がある問題は難しいわ、ホント難しい、
全然答えられそうにないよwww
最近のセンター試験ってこんな答えるのが難しい問題出すの?(・∀・)
401デフォルトの名無しさん:2006/02/09(木) 10:43:17
解らないっつってた本人が捨て台詞。
相変わらず莫迦なコテだな。
402400:2006/02/09(木) 11:08:11
あ、書き忘れてたけど漏れが問題に答えるためには
My包皮も切らないとイカンのかー。やっぱ難しいわ。
漏れ包皮ついてるほうが好きだし、
臆病者だから体の一部切るなんてコワいしなー。
403マイク ◆yrBrqfF1Ew :2006/02/09(木) 17:15:47
>>401
エセ学歴な上にノータリンですか?(▽

>>400
名古屋はもういいよ。
404400:2006/02/09(木) 17:45:26
ま、>>391には皮肉も通じないようなんでマジレスに切り替えるけどね。

思うんだが学歴を今後も問題の条件に入れ続ける気なら
学歴板でも行ったらどうかと思う。
ここはプログラム板の数学スレだから学歴は関係ない。
そしてプログラムに関係ないセンター試験の問題について
受験生向け解説依頼を受け付けるスレでもない。
受験生ならオトナシク受験板でも行ってたほうがいいんじゃない?

大学受験板
http://etc4.2ch.net/kouri/

学歴板
http://tmp6.2ch.net/joke/
405マイク ◆yrBrqfF1Ew :2006/02/09(木) 18:10:56
答えたくなければいいんですよ。
答えなくなければね;)
406デフォルトの名無しさん:2006/02/09(木) 18:16:13
実際答えたくねーし。
407デフォルトの名無しさん:2006/02/09(木) 18:39:45
プログラムに関係ない受験数学の質問する厨な荒しは
今後スルーが相応と思うがどうか?
408デフォルトの名無しさん:2006/02/09(木) 19:39:20
すべて水に流して 心機一転

 ー  再開  ー

409マイク ◆yrBrqfF1Ew :2006/02/09(木) 21:36:08
>今後スルーが相応と思うがどうか?

毎度スルースルーと言ってる割には毎度我慢できなくなってレスしちゃうんだね。
子供?;)
410デフォルトの名無しさん:2006/02/10(金) 00:01:50
ここはム板なんだから、やっぱプログラム的に
近似的に解くべきだなw
411デフォルトの名無しさん:2006/02/10(金) 02:34:30
>>409
えーと、どこで笑えばいいのかな?
412デフォルトの名無しさん:2006/02/10(金) 16:15:10
>>410
じゃぁ、両端を探すために二分探索でもするか?
413デフォルトの名無しさん:2006/03/01(水) 22:02:54
>>411
 m9(^Д^)
じゃなくて
 ;)
を無理して使うとこ
414デフォルトの名無しさん:2006/03/03(金) 14:58:11
自分の趣味としては;)よりは;-)
415デフォルトの名無しさん:2006/03/09(木) 09:58:52
僕的には :-P
とかがかわいくて好きでつ
416デフォルトの名無しさん:2006/03/09(木) 11:39:33
ここは顔文字スレになりました。よろしくね ;-P
417デフォルトの名無しさん:2006/03/09(木) 11:56:57
問題だ
1+1=
418デフォルトの名無しさん:2006/03/09(木) 12:14:22
11
419デフォルトの名無しさん:2006/03/09(木) 12:24:33
10説も提唱するか。
420デフォルトの名無しさん:2006/03/09(木) 12:34:32
Error: '=' の左が左辺値ではありません
421デフォルトの名無しさん:2006/03/09(木) 13:24:56
Error: '=' で式が終わっています
422デフォルトの名無しさん:2006/03/09(木) 23:36:01
Error : 予期せぬ問題が出題されました
423デフォルトの名無しさん:2006/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に対して正負の結果が対称になります。

(続く・・・)
424423:2006/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デフォルトの名無しさん:2006/03/10(金) 00:11:33
0.5足して切り捨てしちゃ駄目?
426423:2006/03/10(金) 01:16:10
>>425
画像処理で使用するため浮動小数点は、できるだけ使用しないようにしています。
ちなみにバージョンA,Bともに四捨五入をするときは
ret = (a / b) + 0.5
 = (a / b) + (1 / 2)
 = (2 * a + b) / (2 * b) ←通分(だったっけ?)
のように0.5を足すようにしています。
427423:2006/03/10(金) 01:32:01
ちょっと言葉足らずだったので補足を・・・

単純に0.5を足して切り捨てると除算結果が負数の場合に問題があるのです。
(たとえば、結果が-2のときは -2.0+0.5 → -1.5 → -1になってしまう)
そのためにバージョンAでは、除算の結果が正負で場合わけをして
+0.5か-0.5を切り分けることにしました。
428デフォルトの名無しさん:2006/03/10(金) 02:46:54
>画像処理で使用するため浮動小数点は、できるだけ使用しないように
そもそもここに間違いがあると思うだけどな
429デフォルトの名無しさん:2006/03/10(金) 11:44:35
>424
方法はそれしかない。可搬性を確保したい場合符号チェックは必然。

挙げられた例題は結果の精度として整数値しか必要でない
(小数点以下0ビットの精度)場合の固定小数点演算と看做すことができる。
固定小数点演算とは例えば小数点以下に2ビットの精度が必要な場合に
3ビット下駄を履かせて1→8、0.5→4とするなどして整数演算によって
一定精度の実数演算を行う方法だ。

その場合結局四捨五入の処理も必要になる。
最下位ビットが0か1かを決めるために剰余を使うのもまさに例題と同じだ。
(固定小数点演算という枠組みで考える理由は精度が異なる場合も
同じ考え方で統一的に考えられるというだけだ。)

そして符号の処理も結局必要になる。
ただ、符号付整数除算のハードウェア仕様としてはAもBもありえて、
ハードウェアの仕様を調べてそれに依存するなら処理を省略できる可能性はある。
通常の整数は2の補数表示をすることで正数に対する処理を転用して
負数を扱っているで0に対して表現が元々対称でない。
だからBバージョンが目当てなら見込みは割とある。
ハードウェアに依存しちゃうけどね。
430デフォルトの名無しさん:2006/03/10(金) 11:58:45
訂正
2ビットの精度が必要な場合→3ビットの精度が必要な場合

精度は悪化するけど2bitの精度が必要な場合に3bit取って
剰余は見ないで最下位ビットだけ見て四捨五入って手はあるけどね。
431423:2006/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デフォルトの名無しさん:2006/03/10(金) 15:50:22
サンプルを少数表記じゃなくて整数比で示してくれないか?
その方が解析しやすい。
433デフォルトの名無しさん:2006/03/10(金) 15:55:04
知ってるかどうか知らないが、
小数点以下の数を10進表記するとそれだけで誤差が含まれる。
だからこの場合、実数に換算しないで考えたほうがよい。
つまり計算させてる事例に関わる整数の比がないと
何が行われているか正確なことはわからない。
LPtoDP()ってことは窓の大きさとディスプレイの解像度が絡むんだろ?
434デフォルトの名無しさん:2006/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デフォルトの名無しさん:2006/03/10(金) 16:27:53
他に
ret = (2 * a + (b^t)) / (2 * b);

として tを 0か-1とする方法もある
でもたぶん
ret = ( a + ((b^t)>>1) ) / b;

あたりでやってんじゃないかな
436423:2006/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方式の四捨五入の実装方法で迷ってるんです。
437423:2006/03/10(金) 18:03:48
追加情報で、ウィンドウ領域とビュー領域の数値は32bit(int型)で設定可能なのですが
MSDNで調べたところウィンドウ領域は32bitを保証してビューポートは27bitしか保証しないと
明記されてます。
残り5bitを小数部とした固定小数点で計算とかをしているんですかね?
438434:2006/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デフォルトの名無しさん:2006/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デフォルトの名無しさん:2006/03/10(金) 19:21:54
素直に floor(val + 0.5) いっとく?
441434:2006/03/10(金) 19:27:10
ああ、そりゃ悪かったな。 しかし多少修正すりゃいいことじゃないか 
単に >>435の符号を入替えて

int div(int x,int y){
int sgn=x^y;
sgn=sgn>>31;
return (x-((-y^sgn)>>1))/y;
}

x/y = div(x,y)
-20/10= -2
-19/10= -2
-18/10= -2
-17/10= -2
-16/10= -2
-15/10= -1 -5/10= 0 5/10= 1 15/10= 2
-14/10= -1 -4/10= 0 6/10= 1 16/10= 2
-13/10= -1 -3/10= 0 7/10= 1 17/10= 2
-12/10= -1 -2/10= 0 8/10= 1 18/10= 2
-11/10= -1 -1/10= 0 9/10= 1 19/10= 2
-10/10= -1 0/10= 0 10/10= 1 20/10= 2
-9/10= -1 1/10= 0 11/10= 1
-8/10= -1 2/10= 0 12/10= 1
-7/10= -1 3/10= 0 13/10= 1
-6/10= -1 4/10= 0 14/10= 1

これでいいんだろ?
442434:2006/03/10(金) 19:32:15
たぶん、
ホントは四捨五入でret = (2 * a + (b^t)) / (2 * b) を使いたかったけど2つある2倍が嫌なんで
ret = ( a + ((b^t)>>1) ) / b;  としたら、プラス側が6で変化したんで
ret = ( a - ((-b^t)>>1) ) / b; として、まあマイナス側に-6で変化したっていいやで 計算量優先にしたんだろ
443434:2006/03/10(金) 19:59:13
いや、もしかして
abs(x) の代わりに (x>>31)^x のようなのを使ってて出た誤差かな
444デフォルトの名無しさん:2006/03/10(金) 20:05:54
(2*a + 2*a*a*b - b) / (2*b) + 1 - a*a
445デフォルトの名無しさん:2006/03/10(金) 20:28:42
>>423
またおまえか。
446423:2006/03/10(金) 21:07:51
みなさん、ありがとうございます。
とても参考になりました。

特に>>434さんの方法には脱帽しました。
異符号の場合に -1 と XOR して1の補数を用いるなんて思いもつきませんでした。
と言っても、まだ完全には理解できてはいないのですが
先にお礼を言っておきたかったので。

本当にありがとうございました。
447434:2006/03/10(金) 21:28:04
ごめん。 変な方法使うより
#include <stdlib.h> に div という関数がある 除算とあまりを出す関数だ

div_t d=div(x+y/2,y);
if(d.rem<0) d.quot--; で d.quot を使えばいい

条件判断を無くしたいなら d.quot+d.rem>>31 でいい

たぶんコレが正解だろう
448434:2006/03/10(金) 21:30:52
ようするに、結果見ると、変な四捨五入じゃなくて
普通の四捨五入をやりたいって事にやっと気付いた。 すまんな。
449434:2006/03/10(金) 21:40:25
ちなみに試したコード
#include <stdlib.h>

int divd(int x,int y){
div_t d=div(x+y/2,y);
return d.quot+(d.rem>>31);
}

int divd(int x,int y){
div_t d=div(x*2+y,y*2);
return d.quot+(d.rem>>31);
}

結果はどっちも >>441 と y=10では同じになる
450434:2006/03/10(金) 22:11:31
言い訳すると >>427 で 
>単純に0.5を足して切り捨てると除算結果が負数の場合に問題があるのです
に騙されてしまった。

単純に0.5を足して切り捨てるのをやりたかったのだろう。

ただ、X86では除算の結果が負数になる場合は余りも負数になる。
a/b= n余りsなら
a = n*b + s = s+b+(n-1)*b となる修正をすればいい
アセンブラで書けば、
  cdq
  idiv
  sqr edx,#31
  add eax,edx
と4命令
451デフォルトの名無しさん:2006/03/10(金) 22:13:38
>>441は xが正でyが負のときおかしい。

かけ算はいってるけど

int func(int a, int b){
int absa = (a >> 31) ^ a;
return (a + absa*b + (b>>1)) / b - absa;
}
452434:2006/03/10(金) 22:18:43
>>451
そうだね。他に y=1の時も >>441は変になるだろう >>449なら大丈夫な筈だ
453434:2006/03/10(金) 22:21:39
アセンブラの sqr は sarのタイプミスだ >>950

アセンブラだと4行なのに
使わないと除算とmodを別に計算するか div 関数を使う必要があるのが面倒な所
div関数だと結果も構造体渡しだからメモリアクセスが入って遅くなる
454デフォルトの名無しさん:2006/03/10(金) 22:27:09
今一状況がわかんないんだけど、divの定義見た?
あんなの使う気にならないんだけど。
455434:2006/03/10(金) 22:34:07
>>454
だったらインラインアセンブラでやるといいよ。
cだけで書くなら

x+=y/2;
int r=x/y;
if( (x % y)<0) r--;
return r;
456434:2006/03/10(金) 22:54:48
>>451

原理としては、 余りが負数にならないように巧くオフセットを加えてるわけだよね
巧い方法だけど、 a b が大きい時にオーバフローの問題が起きるね。

abs*a ではなくて
aよりも少しだけ大きい bの倍数 を計算させた方がいいのでは?

この場合 >>436 のように座標計算に使うのだから、 マッピングモード設定 時に予め計算させておけばいい
457434:2006/03/10(金) 22:56:56
ああボケてるな マッピングモード設定 時にはaが判らないのだから予め計算出来る筈がない
458デフォルトの名無しさん:2006/03/10(金) 23:12:33
学校の宿題なのですが、
廊下にたっていて、向かい側の壁にはたくさんの開くドア又は開かないドアA,B,C。。。。が無限にあって、
それを開くかどうか確認したい。

スタートはAとーAの間にいる。
。。。|D|C|B|A|−A|−B|ーC|−D|。。。っとドアが続く

最初に地点から一番近い、開くドアを見つけたいが、動く距離をxとして、
距離の総和がO(x)ペースになるように探したい。
例えば、A,−A,B,−B,C,ーCの順番で探していくと、
動く距離が、1、2、3、4、5,...nとなり、距離の総和は1/2*(n)*(n-1)となり、
O(X^2)のペースになるから駄目である。

っていう問題なのですが、何か良い探し法、アルゴリズムありますかね?
459434:2006/03/10(金) 23:13:40
aよりも少しだけ大きい bの倍数 だけど

( abs(a/b)+1)*b でどうだろ?
除算が遅いなら | b|をシフトしていって |a| を超えた所でもいいか
460434:2006/03/10(金) 23:21:43
>>458

で、開いてるか開いていないかの確率はどの程度なの?
というか確率を仮定して

右方に N1内で調べてみてなければ右側にN2個調べて 見つかる確率を求めてみたら?

右側で M番目に開けば左側でM番目まで調べ調べればいいでしょ
461デフォルトの名無しさん:2006/03/10(金) 23:29:11
確率は問題には確定されてないです。

それも考えたのですが、例えば、3つずつの固まりで調べていくとして、
C,B,A,-C,-B,-A,
F,E,D,−F,−E,−D
距離を考えていくと、
(3+1+1)+(3+1+1)+
(6+1+1)+(9+1+1)+、、、
となって、総和はどうなるのでしょう。。。
462デフォルトの名無しさん:2006/03/10(金) 23:40:17
初期位置より右側を線形探索形に (-A,-B,-C,...) するようにして
初期位置より左側を A , C , E と2個おきに移動 して末端 n で(奇数個偶数個で微調整か?)
.... F D B と戻ってくれば O(x) っぽくならない?
463434:2006/03/10(金) 23:47:52
だいたいこういうのは2倍づつ調べるのを増やすんだろうけどなあ
464デフォルトの名無しさん:2006/03/10(金) 23:51:11
>>458
左の方を一つ探す「A」
右の方を二つ探す「-A, -B」
左の方を四つ探す「B, C, D, E」
右の方を八つ探す「-C, -D, -E, -F, -G, -H, -I, -J」

この要領でいけないかな。
465デフォルトの名無しさん:2006/03/10(金) 23:55:52
>>458
>A,−A,B,−B,C,ーCの順番で探していくと、
>動く距離が、1、2、3、4、5,...nとなり、距離の総和は1/2*(n)*(n-1)となり、
>O(X^2)のペースになるから駄目である。
「調べないけど移動してる」に オーダーのコストかかってる?
466デフォルトの名無しさん:2006/03/11(土) 00:06:37
>>464
そうすると、kブロックに区切って、
(1)+(1+1)+(3+1+1+1)+(7+1+1+1+1+1+1+1)+(15+1+1+1+1+1+...)+
= 1+1*2+3*2+7*2+15*2+....+?
467デフォルトの名無しさん:2006/03/11(土) 00:08:01
立ち止まる=調べる、
動く距離=そこで調べるの意味だと思います。
468デフォルトの名無しさん:2006/03/11(土) 00:31:55
>>464で、x番目に調べるまでの距離の総和をf(x)とすると、
f(2^n-1)
= 2*Σ{i=1..(n-1)}(2^i-1)
= 2*((2^n-2)-(n-1))
<= 2*2^n
2^(n-1) <= x <= 2^n-1のとき、
f(x) <= f(2^n-1)
<= 2*2^n
= 4*2^(n-1)
<= 4*x
よってO(x)
469デフォルトの名無しさん:2006/03/11(土) 01:10:36
>>468
なるほど。
助かりました。
ありがとうございました。
470デフォルトの名無しさん:2006/03/14(火) 22:27:00
(0,1)における実数の集合が、可算無限集合ではないことを背理法と対角線論法を使って証明するやつだけど、
いまいち何やってるか分からないんだよね。
分かった気にはなるけど、どうもしっくりこないっつうかなんつうか。
他に証明方法とかあるのかね?
471デフォルトの名無しさん:2006/03/14(火) 22:38:27
>>470
有理数列と実数の部分集合に1対1の対応が作れる
有理数列は自然数→有理数の写像とみなせる
自然数→有理数の写像の濃度は アレフ0^アレフ0 = 2^アレフ0
アレフ0 < 2^アレフ0
(ある集合の濃度が N のとき、その冪集合の濃度は 2^N、
 ある集合とその冪集合の間にはどうやっても全単写が作れない)
なので、可算濃度<実数の濃度
472デフォルトの名無しさん:2006/03/16(木) 13:32:51
冪集合がわからんヒトがいると見た。
473デフォルトの名無しさん:2006/03/18(土) 08:50:19
数学板から誘導されて来ました。
QRを解析するプログラムを作ろうと思っているのですが、
誤り訂正複合のリード・ソロモン符号の複合の仕方が分かりません。

R=(r0,r1,r2,r3...,r25)
R(x)=(r0+r1x+r2x^2+...+r25x^25)
ここにri(i=0〜25)は、GF(2^8)の元とする。

とあり、r0-r25に間違っていないデータ(0-255)を代入しているのですが、次のシンドロームを求める式でシンドロームが0になってくれません。

シンドロームSiを求める式
S0=R(1)=r0+r1+r2....+r25
S1=R(a)=r0+r1a+r2a^2....+r25a^25

データをr0-r25に代入して、それらをGF(2^8)の法100011101(a^8+a^4+a^3+a^2+1)で割っているのですが0になりません。

もう数日煮詰まっています。お願いします。何方かご教授して下さい。

474デフォルトの名無しさん:2006/03/18(土) 09:42:13
>>473
誰かのコードを参考にするといいよ
例:
http://isw3.kankyo-u.ac.jp/project/2004/project/1013063.pdf
475デフォルトの名無しさん:2006/03/18(土) 11:04:44
>>474さん、ありがとうございます。
ありがたく拝見させてもらいましたが、残念ながら書き込みの処理しか載っていませんでした。
(書き忘れて申し訳ございませんが、473で書いた部分はQRを読み取る部分の処理です)

他にもあるかもと思って「誤り訂正 QR」などで検索を掛けてみましたが、書き込みに関する部分ばかりで、
読み取り解析に関するサイトは見つかりませんでした。

JISの企画書もシンドロームを求めるとしか書いてありませんし、もう、完全に行き詰っています。
どんな些細な事でも結構ですので、アドバイスを頂けないでしょうか。
お願いします。
476デフォルトの名無しさん:2006/03/18(土) 11:27:53
>>475

その部分のコード晒してみて、
+ は XORの事とか  掛算は足算の事とか、そこらへんは判ってるんだよね?
477デフォルトの名無しさん:2006/03/18(土) 11:37:40
>>475
じゃあココのは見たの? オレは中身はみてないけど
http://sourceforge.jp/projects/qrcode/
478デフォルトの名無しさん:2006/03/18(土) 12:37:08
>>476さん、ありがとうございます。
+は足し算で、掛け算は掛け算で計算していたので、直してみましたが、やはり0になってくれません。
コードはこのようになっています。

//求められたデータ語
int[]Data={
32, 65, 205, 69, 41, 220, 46, 128, 236, 42, 159, 74, 221,
244 ,169, 239, 150, 138, 70, 237, 85, 224, 96, 74, 219, 61 };

//a指数→整数
int[] a_int={1,2,4…(以下続いています)};
public void Syndrome(){
//求めるシンドロームの数を決定
int[]S=new int[8];
for(int i=0;i<S.length;i++){
for(int d=0;d<Data.length;d++){
S[i]=S[i]^(Data[d]+a_int[(d*i)%255]);
}
}
}

>>477さん、
このプログラムは知りませんでした。早速今から落として見て見たいと思います。
ありがとうございます。
479デフォルトの名無しさん:2006/03/18(土) 13:24:07
>>478 やっぱり計算式が違うよ >>474のcalculate.javaをよく見てみて
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
481デフォルトの名無しさん:2006/03/19(日) 23:37:58
ラジアンをぶつかった壁に対して面対称で
XだけYだけ90°ひっくり返すにはどうすればいいの?
482デフォルトの名無しさん:2006/03/19(日) 23:56:28
いや言ってる意味が良くわかりませんから
483デフォルトの名無しさん:2006/03/20(月) 00:24:24
ビリヤードか
484デフォルトの名無しさん:2006/03/20(月) 00:45:38
vy = -vy;
vx = vx + 90/180*PI
485デフォルトの名無しさん:2006/03/20(月) 11:03:21
>>483 ビリヤードなら90度というのがどこから来るのか・・・・
486デフォルトの名無しさん:2006/03/20(月) 16:05:35
必ず90度で跳ね返るPONGでも作ってみるか
487デフォルトの名無しさん:2006/03/20(月) 16:42:10
その場合、速度はどうなるのん?
488デフォルトの名無しさん:2006/03/20(月) 17:22:36
必ず180で反射するコーナーリフレクターは実在するけど
必ず90度ってどうやるんだ?
489デフォルトの名無しさん:2006/03/20(月) 17:24:03
三角関数?簡単なブロック崩しだったらそんなの使わんぞ
つーか、玉の軌道をX軸かY軸で反転すれば問題なし。
490デフォルトの名無しさん:2006/03/20(月) 18:44:58
さて、ここで唐突に「三角関数」とか出てきたわけだが
491デフォルトの名無しさん:2006/03/20(月) 18:52:43
「プログラマが今まで「これはすげえ」と思ったゲーム」
の149からの流れがここに?
http://pc8.2ch.net/test/read.cgi/prog/1134791216/149-
492デフォルトの名無しさん:2006/03/20(月) 19:24:06
ttp://www.dango-itimi.com/blog/archives/2005/11/1.html
斜面への衝突判定と反射1
493デフォルトの名無しさん:2006/03/23(木) 07:46:12
学校の宿題なのですが・・・。

HはHASH関数で、p は(p-1)/2も素数であるような素数。
aは、1<a<p-1も満たす整数。
g=a^2(mod p)
H(x,y,z,t)=g^(xy+zt) (mod p)
このとき、Hはone-way関数であるが、collision-free関数ではないことを示せ。

なのですが、どなたか分かる方、助けてください。
494デフォルトの名無しさん:2006/03/23(木) 12:28:39
定義は知らんがアバウトに考えて、
剰余が絡んでる段階で多対一関数だから1方向だろうし
collision-freeではなさそうだわな。

証明は2つの値が実際に1個の値になる例を計算すればいいんじゃね?
495494:2006/03/24(金) 16:59:01
エエカゲンに書いたのに誰も突っ込まない…。



ほ、放置プレイ?
496デフォルトの名無しさん:2006/03/24(金) 18:30:11
定義がないのでなんともはや
497デフォルトの名無しさん:2006/03/28(火) 08:18:12
sin(x)/x

Q1  って関数に名前を付けたいけど適切な名前は?

Q2  浮動小数点なので計算方法は単純に
     abs(x)<0.0001 の時は1-x*x/6 でなければ そのまま計算でいいよね?
498デフォルトの名無しさん:2006/03/28(火) 08:53:02
キャラの座標は
左上と真ん中
どちらのポイントを保持して使うべきですか
499デフォルトの名無しさん:2006/03/28(火) 08:55:22
>>497
sine_x_per_x()
500デフォルトの名無しさん:2006/03/28(火) 09:01:48
>>498
いまどきどこでもいい。
処理によって必要な座標は違う。例えばサイドビューのジャンプアクションなら足元座標も使う。
必要な座標を計算するメソッドがあればそれでよい。

数学関係ない。
501デフォルトの名無しさん:2006/03/28(火) 12:19:04
>>497
それは一般的にsinc関数と呼ばれている。
502497:2006/03/28(火) 12:41:21
>>501 ありがとう
503デフォルトの名無しさん:2006/03/28(火) 17:19:04
>>498
RPGの座標には、マップ上の座標と表示する座標があるが、
マップ上の座標で保存する。
表示する時には、表示する座標に変換して表示する。
504デフォルトの名無しさん:2006/03/28(火) 17:58:28
>>503
キャラといえばRPGしか連想できないゲーマーですか?
505デフォルトの名無しさん:2006/03/28(火) 23:55:29
すまん。
でも数ピクセル単位で動かす事になるとおもうから、
その動かせる単位の位置を保存して、
表示する位置に変換するって感じで使えるかも。
506デフォルトの名無しさん:2006/03/29(水) 10:10:24
座標は数学でしょ
507デフォルトの名無しさん:2006/03/29(水) 17:34:46
2Dゲームを作っているのですが、
640×480の画面に32×32の画像をしきつめようとすると、
右端と下端がきれいにそろわず、ちょっとはみだしたりしまいます。
これって例えば何が原因で起こるのでしょうか。
508デフォルトの名無しさん:2006/03/29(水) 17:45:27
■■■■■■■■■■■■■■■■■■■■ どういう状況なの?
■■■■■■■■■■■■■■■■■■■■ 20x15 で普通に敷き詰められるよね?
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
509デフォルトの名無しさん:2006/03/29(水) 18:10:03
>507
まさか浮動小数点演算が介在してたりせんだろうな?
510デフォルトの名無しさん:2006/03/29(水) 18:33:53
>>507
>例えば何が原因で
・計算間違い
・勘違い
・お門違い
511デフォルトの名無しさん:2006/03/29(水) 18:39:10
基地(ry
512デフォルトの名無しさん:2006/03/29(水) 20:09:24
>>507
右端は揃うんじゃマイカ?

マジレスすると、敷き詰める画像のサイズが640と480の公約数である必要がある。
513デフォルトの名無しさん:2006/03/29(水) 20:17:27
どうしても正方形が好きならね。
514デフォルトの名無しさん:2006/03/29(水) 22:22:06
480って32で……あれぇ?うぅー?
515デフォルトの名無しさん:2006/03/29(水) 23:42:36
勘でいうとAdjustWindowRectしてないから
516デフォルトの名無しさん:2006/03/30(木) 09:24:33
テクスチャで貼っててピクセルがずれている悪寒。
517デフォルトの名無しさん:2006/03/31(金) 01:31:23
>>498
>>507
お前さ
いい加減あちこちにマルチポストするの止めろよ
もしくは解決したなら解決したと全てのスレに書いて回れ
518デフォルトの名無しさん:2006/03/31(金) 23:45:54
地球の下側は反対に回っているってどういう意味ですか?
上も下も繋がっているんだから回る方向は同じじゃないの?
519デフォルトの名無しさん:2006/03/32(土) 02:22:08
>>518
オーストラリアの世界地図 でググってみるといいかも
方向という単語の意味の問題だから、ここはスレ違いかも
520デフォルトの名無しさん:2006/03/32(土) 03:18:09
北半球の人間はオーストラリアが下だろと認識している
南半球の人間はロシアが下だろと認識している
521デフォルトの名無しさん:2006/03/32(土) 04:01:57
南半球では西から日が昇るんだよね?
522デフォルトの名無しさん:2006/03/32(土) 11:13:29
右からだよ
523デフォルトの名無しさん:2006/04/02(日) 08:07:38
ラグナロクみたいなオンラインゲームでステータスを表示したり、
所持アイテムを表示したりする、ウィンドウについて。
これって、どうやって実装してるんでしょうか?
ただ単に固定されてるウィンドウをつくるなら、ウィンドウのテクスチャ描いて、
それを張って、座標が決まっているのでそこに文字やらなんやら表示すれば良いと
思うんですけど、
オンラインゲームに存在するウィンドウって、windowsのウィンドウみたいに
マウスでクリックすると自由に動かすことができますよね?
これって、APIで一つ一つ子ウィンドウを作って、そこに表示させてるんでしょうか?
もしくは、他に方法とかあるんでしょうか、助言をよろしくお願いします。
524デフォルトの名無しさん:2006/04/02(日) 08:27:33
525デフォルトの名無しさん:2006/04/02(日) 08:28:25
>>523
つ[DirectX]
後スレ違い。
526デフォルトの名無しさん:2006/04/02(日) 14:00:59
DirectXは直接的にはかんけいないだろ
527デフォルトの名無しさん:2006/04/03(月) 04:30:12
528デフォルトの名無しさん:2006/04/07(金) 13:54:31
>526
「数学と算数」よりは関係あるけどな。
529デフォルトの名無しさん:2006/04/24(月) 11:15:56
>528
そうか?
530デフォルトの名無しさん:2006/04/24(月) 13:10:28
>>528
クリッピングや論理演算は数学の範疇だと思うんだけどな
531デフォルトの名無しさん:2006/04/25(火) 12:28:25
ハァ?
DirectXはスレ違いだし、クリッピングの話なんてどこにも出てないが?
532デフォルトの名無しさん:2006/04/25(火) 14:21:17
DirectX 描画者たち

窓の中の昴〜♪
533ルカ:2006/04/26(水) 16:58:08
sgn←これなんて読むの?だれかがシグネーチャー?って読んでたんだけどそれでオッケイなんですか?
てかこれどういう意味?符号関数ってなんですか・・・
すいませんここはプログラムとかそういうサイトっぽいけどたぶんここしか頼れる所がないので・・・
大学の数学で出てきたんですけどもしよろしければ誰か教えてください(>_<)
534デフォルトの名無しさん:2006/04/26(水) 17:02:02
もうシグネチャーでいいと思うよ。

まあ、マジレスすると、符号関数でぐぐればいくらでも説明出てくる。
535デフォルトの名無しさん:2006/04/26(水) 18:13:04
現在、固有値および固有ベクトルを求めるプログラムを作成しているのですが
固有ベクトルの求め方で質問させていただきたいことがあります。
固有値はハウスホルダー変換と2分法で求めました。
その後、逆反復法を用いようと思っているのですが、
初期ベクトルの決め方と、繰り返し回数がわからず困っています。
どなたか教えていただけないでしょうか?
536デフォルトの名無しさん:2006/04/26(水) 20:23:48
sgnと関数でぐぐるだけでも出てきそうなもんだが試した訳ではない。
537デフォルトの名無しさん:2006/04/27(木) 01:34:48
sgnでググってみたら一番上がFortranの(だと思う)sgn関数の説明だった。
sgnの読み方はともかく、意味は分かるだろう。符号関数とも書いてるから
探しているものという確認も取れるし。

そしてシグネーチャーでオッケイかを知りたければシグネーチャから思いつく
綴りを全部辞書で調べろ。
538デフォルトの名無しさん:2006/04/27(木) 02:01:54
>>535
初期ベクトルは、求めたい固有ベクトルの成分がゼロ、
もしくは、よほどゼロに近くない限りなんでもいいんじゃない?
ランダムなベクトルにするとか。
例え、偶然にも求めたい固有ベクトルの成分がゼロの初期ベクトルを
選んでしまったとしても、なんだかんだで誤差が出てくるので、なんとかなるかも。
収束は遅くなるだろうけど。

繰り返し回数は、求めたい精度に達するまでやればいいと思う。
Aを行列、aを固有値、xを求めた固有ベクトル、として、
(x,Ax)/(x,x)を計算すれば、固有値aの近似値が求まるから、
その精度を、既に求まっている固有値aと比較するとか。
539535:2006/04/27(木) 11:26:58
なるほど、ありがとうございました。
参考にさせていただきます。
540デフォルトの名無しさん:2006/05/03(水) 12:47:46
行列を使って非斉次の連立方程式を解くんだが、
行列の成分の

90%が0
8%が1
2%がその他

という行列を解くには
どんなアルゴリズムを使えば高速に解ける?

こういう行列に限り高速にできるとか
そんなアルゴリズムないかなと思ったんだが。
541デフォルトの名無しさん:2006/05/03(水) 14:35:25
どこが非ゼロなのか、という情報がないとなんともいえない。
非ゼロの位置に特徴が無い場合は、行列をリスト表現して計算するくらいしか。
542デフォルトの名無しさん:2006/05/03(水) 17:01:03
>>541
サンクス
非ゼロの位置に規則性はないわ。
あきらめとく。
543デフォルトの名無しさん:2006/05/03(水) 18:30:42
"sparse matrix"でググれば英語ばかりだが参考になりそうなサイトが出てくる
544デフォルトの名無しさん:2006/05/05(金) 01:27:02
1:30〜

たけしのコマネチ大学数学科
http://live22x.2ch.net/test/read.cgi/livecx/1146759594/
545デフォルトの名無しさん:2006/05/07(日) 17:26:16
>542
非零が疎な行列だと反復法系のアルゴリズムが案外早いぞ。
546デフォルトの名無しさん:2006/05/23(火) 08:07:13
朝倉から「コンピュータ代数ハンドブック」、定評のあるModern Computer Algebra 2nd ed.の
待望の翻訳!!、なる案内がきたが、定評と待望についてよろしく。

しかし\31,500とはずいぶんだな。
547デフォルトの名無しさん:2006/06/15(木) 10:42:40
保守
548デフォルトの名無しさん:2006/07/16(日) 09:13:35
保守
549マイク ◆yrBrqfF1Ew :2006/07/19(水) 14:31:54
おい以下の問題がわからないので中卒の俺でもわかるようにPerlのコードをまじえて教えろ。

n個の区間Ii = [ai, bi](i=1,2,...,n)が与えられる時重なりを持つ区間の対を
全て列挙したい。なお[ai, bi]は実数の集合{x∈R | ai <= x <= bi}を表し、
二つの区間IiとIjが重なりを持つとは[ai, bi]∩[aj, bj]が空集合でないことを
意味する。全てのi = 1,2,..,nに対してaiとbiは整数でai<=biを満たし、
また任意のiとj(i != j)に対してai != ajを仮定する。区間のデータは
端の値aiとbiが配列で与えられており2つの数の大小比較や四則演算などの基本操作は
全てO(1)時間で可能とする。

(i) 区間対全てに対してそれぞれ重なりの有無を調べて
該当するものを列挙する方法が要する時間量を述べよ。

(ii) 重なりを持つ区間対の総数をkとする時、そのような区間対を列挙する
O(nlogn+k)時間のアルゴリズムを与えよ。

(iii) 重なりを持つ区間対を列挙するのではなく、その総数kのみを出力する
O(nlogn)時間のアルゴリズムを与えよ。
550デフォルトの名無しさん:2006/07/19(水) 15:07:18
Perl 以外でもいいですか?
551デフォルトの名無しさん:2006/07/19(水) 15:23:21
>550
>549に代わってお願いします。
ぜひC++で(ry
552デフォルトの名無しさん:2006/07/19(水) 15:23:34
>>糞コテ
そういう態度だから何処へ行っても嫌われる。
553デフォルトの名無しさん:2006/07/19(水) 21:59:50
>549
死に晒せヴォケ
554デフォルトの名無しさん:2006/07/20(木) 07:11:30
550 じゃないが

>>551
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2409.cpp

方針は以下:

(1) は自明.
(2) はソートして左から数える.ソートしたおかげで単調性が得られ,
  一度交わらなくなったらそれより先を調べる必要がなくなる.
(3) は (2) でどこまで調べないといけないかを二分探索を行う.
555デフォルトの名無しさん:2006/07/20(木) 08:09:59
拙いPerlですが。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28099

(i) 区間対の個数はO(nn)、重なりの有無の判定はO(1)だから、全体でO(nn)。

(ii) >>554に同じ。

(iii) 与えられた区間の始点と終点を列挙し、ソートし、各点に何個の始点・終点が重なっているか調べる。
区間のネストの数を把握しながらこの列を走査して重なりの総数を得る。
実際のコードでは始点・終点の個数の計算と最後の操作を一つのループで行っている。
556マイク ◆yrBrqfF1Ew :2006/07/20(木) 19:23:08
>>554-555
・・・
2chネラにこんなことを言うのもあれだが
お前らすげーな。
どこの金子勇的風貌の京大院生だ?
557デフォルトの名無しさん:2006/07/20(木) 22:30:46
大学で情報やれば大体やるぞ。
今からでも勉強してみたらどうでい。
558デフォルトの名無しさん:2006/07/30(日) 08:15:10
二次元上の多角形の面積を求めるには外積で一発ですが、
三次元上の多面体の体積を求めるには何か方法はありませんか?
559デフォルトの名無しさん:2006/07/30(日) 10:47:51
O = (0,0,0), A = (ax,ay,az), B = (bx,by,bz), C = (cx,cy,cz)
4面体OABCの体積は
1/6( ax by cz + ay bz cx + az bx cy - az by cx - ax bz cy - ay bx cz )
560デフォルトの名無しさん:2006/07/30(日) 10:49:24
外積っていうより行列式に見える……。外積と行列式って関係あったっけ?
561デフォルトの名無しさん:2006/07/30(日) 11:00:04
そりゃあるさ
562デフォルトの名無しさん:2006/07/30(日) 12:06:07
>>558
外積
563デフォルトの名無しさん:2006/07/30(日) 16:12:50
n次元体積を求めるにはベクトル出して行列式で一発じゃないのか?
564デフォルトの名無しさん:2006/07/30(日) 16:14:36
3次元なら体積は (a×b)・c = det(a b c)だし
565デフォルトの名無しさん:2006/07/30(日) 18:27:31
精度や対応できる形状をどこまでの範囲にするか決めないとな
体積を求めたい多面体が凸でない場合は4面体の和に分割するところが面倒かもよ
凸多面体でも分け方によって誤差が変わってくるからそんなに簡単ではないかもよ
566デフォルトの名無しさん:2006/08/06(日) 16:49:43
おのおのの面に対して、原点とその面でつくられる錐体の符号付体積を足せばいいんでないの?
567デフォルトの名無しさん:2006/08/06(日) 18:06:17
向き付けはどうすんのよ?
568デフォルトの名無しさん:2006/08/06(日) 20:54:07
>566
対象が凸多面体で原点を多面体の内部か表面にとればそれは正しい
569デフォルトの名無しさん:2006/08/06(日) 21:45:34
>>568
符号付き、というのはたぶん
原点から見て裏面が見えてるときはマイナスの体積、ということだろうから
そうすると原点に関して星状であるという条件はいらなくなるよ

Aが星状というのは原点とAの任意の点とを結ぶ線分がAに含まれることね
570デフォルトの名無しさん:2006/08/06(日) 23:55:55
あ、ほんとだ
571デフォルトの名無しさん:2006/08/07(月) 12:48:29
NURBS曲面同士の衝突判定がしたいんだけど
便利なライブラリ or 公式とかある?

もしもなかったら、
衝突判定がしやすい曲面の表現方法教えてもらえませんか。
572デフォルトの名無しさん:2006/08/07(月) 21:29:19
どんなものを表現したいのかね
573デフォルトの名無しさん:2006/08/07(月) 21:41:17
NURBSやベジェのように、制御点を移動することで
形状を簡単に変えることができるものであればいいんですが、
球も表現したかったのでNURBSを考えていました。
574デフォルトの名無しさん:2006/08/08(火) 11:21:05
>>571
NURBS曲面かどうか調べてないが、Newtonとか言うGAME向けの物理演算ライブラリがある
575デフォルトの名無しさん:2006/10/01(日) 18:50:02
当選小計率 (数.数%) = 当選小計 ÷ 販売額 × 100倍%
当選口指数 {数.数} = 当選口数 ÷ 販売口数 × 100万倍
http://sea.advenbbs.net/bbs/yybbs.cgi?mode=res&no=1593&id=loto66
576デフォルトの名無しさん:2006/10/04(水) 20:30:01
中学あたりからの学習要綱を網羅した数学ドリルサイトみたいなのないですか?
577デフォルトの名無しさん:2006/10/12(木) 11:02:11
サンプルコードが理解出来ないレベルなら、素直に諦めて勉強し直した方がいい。
578デフォルトの名無しさん:2006/10/12(木) 11:02:53
ゴバーク
579デフォルトの名無しさん:2006/11/03(金) 10:21:15
正射影について教えてください。

マウス(2次元)座標をゲーム画面(3次元)の座標に
変換したいんだけれど、
やり方がわからないです。

[やりたいこと]
大航海時代Onlineのように、
「キャタクターの行先(目的地)」を「地面をマウスクリックする」ことにより
指定し、その後、キャラクターが動き出す。

ということをやりたいと考えています。
580デフォルトの名無しさん:2006/11/03(金) 10:29:29
>>579
DirectXを使っているならDirectX隔離スレへ。
その他3D表示ライブラリを使っているならそれらのスレへ。
そうでないなら自分で勝手に計算汁。
581579:2006/11/03(金) 10:37:51
>>580
スレ違いスマソ。
DirectX隔離スレ逝ってきます。
582デフォルトの名無しさん:2006/11/23(木) 14:10:24
グレゴリウスの定義を用いて入力した日が何曜日であるか、を表示するプログラムのアルゴリズムってどんな感じになるかわかりますか?

ちなみに
・グレゴリウスの定義

・西暦1年1月1日は月曜日
・1年365日だが、閏年は366日
・4または400で割り切れる年は閏年
・100で割り切れるのは閏年ではない

もしわかった方いましたらお願いします
583デフォルトの名無しさん:2006/11/23(木) 14:15:04
>>582
C++の擬似コードだと、こんな感じかなぁ・・・

main(){Youbi 曜日; カレンダーを見る(新聞の日付, &曜日);
if (時計の時間<新聞配達時間) 曜日.進める;
return 曜日;}
584デフォルトの名無しさん:2006/11/23(木) 15:01:22
>>582
普通はAPIを使う。
こんな所で質問してる奴が組んだ物は怖くて信用おけないから。

関係無いけど、ANSI C準拠のtime()関数系の1970/01/01 00:00:00からの通算秒で
有効桁31bitの場合は、全部閏年で換算しておk。
585デフォルトの名無しさん:2006/11/23(木) 15:06:49
int zeller(int year, int month, int day)
{
 if (month < 3) {
  year--; month += 12;
 }
 return (year + year / 4 - year / 100 + year / 400 + (13 * month + 8) / 5 + day) % 7;
}
586デフォルトの名無しさん:2006/12/10(日) 12:20:07
ttp://bal4u.dip.jp/mt/program/archives/2005/11/f_millerrabinex.html
にあるprime-test()で多倍長整数の場合、最初に判定を間違える数って何?
587デフォルトの名無しさん:2006/12/10(日) 13:01:52
>>582
マジレスすると西暦1年1月1日にはまだグレゴリオ暦は発明されていなかった罠。
588デフォルトの名無しさん:2006/12/10(日) 15:35:33
>>587
遡及的に定義できる。
589デフォルトの名無しさん:2006/12/10(日) 17:39:40
>>586
ミラーラビンテストでぐぐったら強擬素数ってのが出てきた。
あとは頑張れ。
590デフォルトの名無しさん:2006/12/10(日) 20:48:11
>>586 底を何にするかで変わるから、一般的にパッと見つける方法はない。なので一つ一つ調べなさい。
>>589 強擬素数はフェルマーテスト
591デフォルトの名無しさん:2006/12/11(月) 02:24:03
フェルマーテストで誤判定される数は、擬素数とかカーマイケル数。
適当いったらだめなんじゃね。
592デフォルトの名無しさん:2006/12/17(日) 00:24:50
すいません、スレ違いかも知れませんが
他に適当なスレが見つからなくて。

私は会社の事務員なのですが、
手間のかかる手作業がありまして、パソコンにやらせたいのです。
職場の人員のスキル的に見て、自分でやるしかない状況です。
エクセルのVBAで何度かプログラムを組んだことのあるレベルです。
以下が問題の概要です。

1から100までの整数の並びがある。
そのうちランダムに20個程度の数が欠番となっている。
この状態から、残った数を並べ替え、
隣り合う数同士の差の絶対値が全体でなるべく等しくなるように、
つまり等間隔に並ぶようにしたい。

ここ一ヶ月くらい悩んでみましたが、アイディアが浮かびません。
何か既存のアルゴリズムで、応用できそうなものを紹介してもらえませんか。
593デフォルトの名無しさん:2006/12/17(日) 00:31:57
>>592
判りにくいな。例えば、1, 2, 90, 91があったら1, 90, 2, 91に並べ替えるってことか?
#前者は隣同士の差が1, 88, 1で、後者は89, -88, 89だから後者の方が差の絶対値はほぼ均等になる。
594デフォルトの名無しさん:2006/12/17(日) 00:39:09
>>592
総当りで調べるとかかなぁ。
「隣同士の差」の分散辺りを評価基準にして、全部の組み合わせ試して一番分散の小さいのを選ぶ。
595592:2006/12/17(日) 00:52:03
>>593
わかりにくくてすみません。
実例を出すべきでした。
まさに、その後者のように並べたいのです。
今は人間がエクセル上で手作業であれこれと
数値を入れ替えし、納得いく結果になるまで
3日はかかってしまいます。

>>594
分散、とは統計学の用語ですか。
調べてみます。
596デフォルトの名無しさん:2006/12/17(日) 06:08:03
80の総当りだと約10^119通り、3日じゃ終わらん。

単純に、小さい値と大きい値で2つに分けて、ソート後交互に配置じゃだめなん?
597デフォルトの名無しさん:2006/12/17(日) 08:18:01
インターリーブ決定みたいなもんかな。
>596でよさそうだけど。
598デフォルトの名無しさん:2006/12/17(日) 12:29:10
たとえば
 1, 22, 23, 24, 25, 26, ..., 99, 100
というデータに対して>>596をすると
 1, 61, 22, 62, 23, 63, 24, 64, ..., 59, 99, 60, 100
となって、「隣同士の差」のレンジは20にもなってしまう

しかしたとえば
 1, 22, 42, 23, 43, 24, 44, 25, 45, ..., 39, 59, 40, 60, 41, 61,
 81, 100, 80, 99, 79, 98, 78, 97, ..., 64, 84, 63, 83, 62, 82
というほうほうならレンジは2
599デフォルトの名無しさん:2006/12/17(日) 16:18:54
>596
それならソートしただけのデータでもインジャネ?

相対的な距離に関する最適解は総当りじゃないと求まらないんじゃない?
しかも「分散の小さい物」という条件だから足切りも出来ない。
600デフォルトの名無しさん:2006/12/17(日) 22:37:12
判定関数を>>598のいうようなレンジとかにすれば枝切りもできるようになるね
601デフォルトの名無しさん:2006/12/21(木) 21:47:49
RSA暗号を実装しようとしてて、2048ビットの鍵長の元に暗号化・復号を行っています。
整数乗算についてなんですが、2048ビット程度だと、fftかまして乗算しても恩恵はない。
と聞きました。実際のところはどうなんでしょうか?どなたか検証サイトなどご存知ではありませんか?
602デフォルトの名無しさん:2006/12/22(金) 01:05:13
FFTの計算量評価の式から実際に求めるしかないね。
乗算が加算よりどれだけ遅いかも評価に入れなきゃいけないだろうし。
603デフォルトの名無しさん:2006/12/22(金) 01:45:31
FFTの時間は実装レベル次第だから、実際に組んで比較するのが一番。
604デフォルトの名無しさん:2006/12/22(金) 12:31:04
>>601
RSA の乗算+剰余演算の場合、FFT による方法じゃなくて、
Montgomery multiplication っていう高速化手法があるよ。

検証したことはないけど、2048 ビット程度では FFT の効果はない
あるいは逆効果ってのはそうだと思う。
せめて1万ワードくらいの長さはないと。
605デフォルトの名無しさん:2006/12/22(金) 12:37:35
ああ、あと、ワード長が2のべきになってる場合、
上位・下位半分ずつ、再帰的に計算することで
乗算回数減らす方法もある。
下位桁の乗算結果使って、上位桁の乗算をサボる。

昔、RSA のプログラムの最適化の仕事したことあるけど、
「単純に畳み込みで乗算 & 引き放し法的な剰余」を
「再帰乗算 & Montgomery 乗算法」に変えたら
鍵長256bitでも動作速度を250倍以上速くできた。
606デフォルトの名無しさん:2006/12/22(金) 12:41:24
補足:
速度250倍達成は、あと、
バイト単位で多倍長整数演算してたのを、
1ワード32ビット単位に変えたのも含めてだわ。
607デフォルトの名無しさん:2006/12/27(水) 13:26:09
おながいします(´・ω・`)

CADのプログラムですが、CADの掲示板で質問してるけど、3次元の幾何計算の話なので、あまり回答が返ってきません。
誰か助けてぇえええ!!

http://www.mura.sh/bbs/wwwbbs.cgi?print+200612/06120169.txt
608デフォルトの名無しさん:2006/12/27(水) 13:52:38
回答した人に失礼な話だ
609デフォルトの名無しさん:2006/12/27(水) 15:42:41
>608
そうはいってもあそこはCADユーザーの掲示板で、
プログラム関係はほとんどレスがつかないんですよ。(´・ω・`)
餅は餅屋ということで、こっちにも質問してみる。
610デフォルトの名無しさん:2006/12/27(水) 16:54:00
>607,609
マルチポストうぜぇよ。
見たら解答ちゃんと出てんじゃねぇか。
それを理解出来ないお前の頭までは救えねぇよヴォケ。
611デフォルトの名無しさん:2006/12/27(水) 16:58:17
>610
横のソリッドがX軸方向に伸びてるならいい。
しかしそれ以外の方向ならお手上げなんだけど。
612デフォルトの名無しさん:2006/12/27(水) 22:31:43
知らないがそれなら全体に回転行列かけて
回転してX軸に来るようにしたらいいんじゃね
613デフォルトの名無しさん:2007/01/06(土) 04:41:04
保守アゲ
614デフォルトの名無しさん:2007/01/06(土) 18:10:16
二次元のピーク検出のやり方を教えて下さい。

例えば天気図の気圧の図があったとして、
高気圧が何個あって、どの座標に中心があるかを調べたい
というような問題です。
ピークがない場合やたくさんある場合があります。

こういう計算はどういうジャンルの学問になるんでしょうか。
615デフォルトの名無しさん:2007/01/06(土) 21:05:18
山登り法
616デフォルトの名無しさん:2007/01/06(土) 22:14:53
>>615
いいヒントをありがとうございました。
「山登り法」というキーワードでいろいろ探せそうです。
617デフォルトの名無しさん:2007/01/07(日) 22:14:23
多次元の最大値、最小値問題か
618デフォルトの名無しさん:2007/01/07(日) 23:02:49
最大最小というより極値やね
619デフォルトの名無しさん:2007/01/09(火) 11:29:24
z = f(x, y)

∂z
----
∂x


∂z
----
∂y
620デフォルトの名無しさん:2007/01/09(火) 11:36:15
621デフォルトの名無しさん:2007/01/19(金) 14:01:03
リードソロモン符号でこんなことってできますか?
例えば1MB固定のデータファイルが n個あります。
これに任意の m個のエラー訂正用のファイルを作ります(エラー訂正というより、補完をしたい)。
たとえば、n=8、m=2 で、全部で 10個のファイルを作ります。
この 10個のファイルのうち、どれか n個だけ揃えば元の n個のファイルを復元できる、
みたいなことをやりたいのです。

ここで、n や m の取り方に、なにか制限はあったりするでしょうか?
例えば n は偶数じゃないといけないとか、m は 2のn乗じゃないといけないとか、
そういうなんらかの制限です。
できれば n も m も、その都度自由に設定したいのです。
あと、元データを復元するために必要なファイルの数は、n個だけで充分なのでしょうか。
それとも、n個よりも少し多く必要だったりするでしょうか。

今こんなことをやりたいがためにリードソロモン符号についての勉強を始めたのですが、
今結論だけを端的に知りたいです。
あるいは、他の符号化についての候補などあったら知りたいです。
よろしくです。
622デフォルトの名無しさん:2007/01/19(金) 15:31:54
おれは学生時代、数学をきちんと勉強してなかったので後悔してる…
やっぱりプログラム、コンピュータの基盤となるのは数学だから
数学的な知識があるとないじゃ、雲泥の差だという事を、つくづく思い知らされたよ。
とりあえず、ちょっとでもスキルアップ出来る様に、勉強し直そうと思うよ…
623デフォルトの名無しさん:2007/01/19(金) 16:56:36
最近、分数の割り算をググった事は秘密だ orz
624デフォルトの名無しさん:2007/01/19(金) 17:04:45
>>623
最近は分数が出来ない文系の大学生も多いらしいからねぇ。
書く言うおれも、中学レベルの数学が既にあやしい…orz
625デフォルトの名無しさん:2007/01/19(金) 17:49:25
>624
にほんごもあやしいようだね
626デフォルトの名無しさん:2007/01/19(金) 19:49:50
>>621
Luigi Rizzo氏のHPにReed-Solomon符号を使ったデータ復元プログラムのソースが置いてあったような...
確か、制限はn+m<2^8 またはn+m<2^16。
復元もn+m個中n個を受信すれば大丈夫だったはず。検索して調べてみてください。
627624:2007/01/19(金) 21:30:15
>>625
全てを基本からやり直す必要がありそうだ…orz
628621:2007/01/20(土) 12:46:41
>>626
情報ありがとうございます。
検索の結果それっぽいページにたどり着いたものの、いかんせん英語が不得手でして・・・
実装例は自分が行き詰ったときに見ることにして、とりあえずやりたいことはできるのだろうということはわかりました。
n+m<2^8 とか n+m<2^16 とかの制限は、多項式の係数を何ビットで計算するかによるのでしょうね。
8bit で計算すればエンディアンの問題が無くて都合が良さそうですが、できるだけ多ビットで計算した方が計算回数が
少なくて高速になりそうですね。
# 実は 8bit しか念頭に置いていませんでしたが、実験として 32bit くらいでやってみようかと思いました
629デフォルトの名無しさん:2007/01/21(日) 23:08:41
当方受験生なのですが、数学出来ません。物理できません。化学の計算できません。
国語や英語はできます。論理性はある方だとは思います。理系の教科は勉強し
ても全然伸びませんでした。理系の科目が出来ないのは、恐らく、数学的思考が出来ていない
為だと思われます。
やってるうちに色々自分の欠点に気づき、その欠点を克服したいと思っています。
プログラミングが数学のスキルアップによいと聞き、それが欠点の克服に繋がると、
思い、やってみたいのですが、なにから始めたら良いでしょうか?
何か他にもアドバイスがあったら教えて下さいませ。
630デフォルトの名無しさん:2007/01/21(日) 23:20:09
LOGO でタートルグラフィックでもやってみてはどうだろう
631デフォルトの名無しさん:2007/01/22(月) 07:54:17
>>629
今受験生ってことは、もう残り1,2ヶ月?
プログラミングに費やす時間あったら、他のことにまわしたほうがいいぞ
長い目で見ればプログラミングに手を出すのも悪いことではないけど、一朝一夕ではどうかなぁ
632デフォルトの名無しさん:2007/01/22(月) 08:05:35
プログラミング自体は文系のひとでもかなり出来るひとはいる

文系か理系かで分けるんじゃなくて
論理的に考えられるかどうかが重要
それが出来ないと何やってもだめ
633デフォルトの名無しさん:2007/01/22(月) 08:17:07
現代のプログラミングは数学のスキルアップにはならない
何を作ろうとしてもライブラリ。
六法全書以上に分厚い資料との格闘。 記憶力や事務処理能力の方が要求される分野かもね

上で出たLOGOやpascalレベルなら別だろうけど、実用プログラミングはね
634デフォルトの名無しさん:2007/01/22(月) 09:46:34
Mathematicaとかならともかく
現代とかどうとか関係なくそもそもプログラミングと数学は全然別物だと思うが
635629:2007/01/22(月) 15:01:04
今年は無理なんで、来年受けようと思っています。

このスレの上の方でBASiC等が数学のスキルアップに良い。と書かれてますが、
実際どうなんでしょう?
英語は外人と喋ったり、チャット・メールをして上達しています。
数学も、こんな感じで実用面からアプローチすれば上達するかな?
と、思っています。

>>630  一度調べてみます。有難う御座います。
636デフォルトの名無しさん:2007/01/22(月) 15:17:21
プログラマと数学者との関係をほかのもので例えるとしたら、作家と言語学者は別物というのが近い感じだと思う。
それにいくら外人と話してしても、日常会話は上達するだろうが、英語学者にはなれないだろう。
これも近い例だと思う。
637デフォルトの名無しさん:2007/01/22(月) 15:17:47
>このスレの上の方でBASiC等が数学のスキルアップに良い。と書かれてますが、
どこのこと?
>>135ならセンター試験のプログラムの問題の話だが。

>数学も、こんな感じで実用面からアプローチすれば上達するかな?
プログラミング(の大部分)は高校数学の応用ではない。
確かに数学とプログラミングは関連しているし、考え方も共通性がない訳じゃないけど、
受験勉強としてやるには効率が悪すぎると思う。
現代国語の対策として小説の書き方を勉強するようなものじゃなかろうか。
638デフォルトの名無しさん:2007/01/22(月) 23:20:20
今年のセンター試験のプログラミングは難化したな
片手間でやろうとした奴はそうとう焦っただろ

二分法がどういうものか分かってないと話にならない
まあ数値計算の章では普通に教科書にも出てるから
本当にやってる人ならなんでもなかったのだろうけど

統計の問題もそうだけど今年は「冷やかしお断り」っていう
センターの意図がすごい感じられたよ
639デフォルトの名無しさん:2007/01/22(月) 23:28:19
へー
640629:2007/01/23(火) 00:02:36
LOGOやpascalを肯定してる人も居ますが、これはどうなんでしょう?
やはり地道にがんばるのがいいんでしょうか?
何とかして数学的思考を出来る様にならなきゃいけないんですが・・・
641デフォルトの名無しさん:2007/01/23(火) 00:13:28
今の世の中、数学のためにコンピュータがあるのではなく、
コンピュータのために数学を学ばせているような気がする。
642デフォルトの名無しさん:2007/01/23(火) 00:13:44

「数学的思考」についてお前の思うところを述べよ


643629:2007/01/23(火) 00:34:40
数学的思考とは、物事を順序立てて考える事であり、具体的な文字を使わず、抽象的な文字を用いる
思考です。又、余計な言葉は入れず必要な事だけを述べて行く・書き下して
行く様にする思考です。
644629:2007/01/23(火) 00:36:24
この思考が出来ない事が、数学・物理・化学の計算を出来なくしている大きな要因
だと思っています。
645デフォルトの名無しさん:2007/01/23(火) 01:50:51
具体的なものを使わず、じゃない。
数字や記号や式を具体的なものとして捉える力のほうが大事。
俺の持論だけど。
646デフォルトの名無しさん:2007/01/23(火) 02:41:21
F = ma

なんのことか分からん罠
647デフォルトの名無しさん:2007/01/23(火) 06:25:56
>>643
おまいさんは 脚の総本数 = 4 * 亀の個体数 + 2 * 鶴の個体数 から遣り直した方がいい。
648デフォルトの名無しさん:2007/01/23(火) 07:19:32
ツルとカメと、あわせて8ひきいます。
足の数はぜんぶで、26本。
ツルは何匹、カメは何匹?
649デフォルトの名無しさん:2007/01/23(火) 07:21:05
650デフォルトの名無しさん:2007/01/23(火) 07:30:39
http://pc10.2ch.net/test/read.cgi/tech/1169300052/10

【 課題 】プログラミング演習
1)N桁の数字を各桁毎に分解し、その数字の並びの組み合わせで得られる
最大の数から最小の数を引くという演算を、結果が収束または循環するまで繰り返す。

例:
a)1111 のとき 1111 - 1111 = 0 収束
b)2006 のとき 6200 - 0026 = 6174 さらに 7641 - 1467 = 6174 収束

2)上の演算をN桁で構成される全ての数字について行い、
その桁数における収束パターンの一覧を結果として表示する。

例:
N = 4 のとき 1000 〜 9999 までの数字で確認

3)Nを1〜10程度まで可変にしてそれぞれの結果を出力。

【 形態 】Javaアプリケーション
【 GUI  】Swing(CUIでも可)
【 Ver  】1.5以上
【 期限 】月曜17:00
【 補足 】
できれば数字の組み合わせが重複するケースや
計算の途中で既知の値(系列)に到達した場合は
それ以降の計算を省略する等して高速化を図ること
651デフォルトの名無しさん:2007/01/23(火) 23:26:57
>629
受験数学が駄目なのか、微積分とか代数幾何とかの
教科書レベルの基本的概念を掴むところから駄目なのか

想定している大学のレベルはどれくらいか

たとえば、物理の物体の運動を数式の暗記ではなくて、
微積分の概念を用いて理解するなら数値積分の結果を
グラフにしたりするのがよくあるパターンかと思うが、
それならプログラミングなんてする必要はなく、excelで
も十分な罠。
652デフォルトの名無しさん:2007/01/24(水) 02:21:07
>>650
でかい配列作って計算結果の一覧表を作ればおk
653629:2007/01/24(水) 22:15:45
>>650 これは私宛てでしょうか?これはいったい何なんでしょうか?

>>651  受験数学は駄目ですね。これは基本概念が掴めていない所為だと
思います。志望は阪大・大阪市立の医学部です。
excelですか。一度調べてみます。有難う御座います。
654デフォルトの名無しさん:2007/01/25(木) 10:38:57
>629
>論理性はある方だとは思います。
>数学的思考が出来ていない
矛盾してないか?
655デフォルトの名無しさん:2007/01/26(金) 03:07:02
国語における論理(≒常識的論理)と、数学やプログラムのそれとは、
若干のズレがあるからな。

たとえば、「明日の花見は、雨ならば中止します。」と幹事が言ったとして、
「では晴れたらどうするんですか?」なんて質問をしたら、馬鹿呼ばわりされること必至。
(日常会話の「ならば」は、必要十分条件を意図して使われていることが多い。)

数学(プログラム)的には、この質問は至極自然かつ妥当なものなのだが。
656デフォルトの名無しさん:2007/01/26(金) 10:25:47
>653
基本概念が掴めていなければ,応用もできんわな
そんなヤツに医者になってほしくない・・・
657デフォルトの名無しさん:2007/01/26(金) 11:03:26
>>655
でも、その国語と数学のずれを認識できない奴のことを、
はたして論理性があるといえるのか?
658デフォルトの名無しさん:2007/01/26(金) 22:47:39
それを論理の違いとして捉えているところがすでにダメダメだろ
「数学では論理を正確にするが,日常ではルーズにする」とかな

そうじゃなくて言葉の意味が違うだけ
力学で言う「仕事」が普通に言う「仕事」と違うっていうようなもの
659629:2007/01/26(金) 23:54:56
>>654 いえ、私は、

数学的思考とは、物事を順序立てて考える事であり、具体的な文字を使わず、
抽象的な文字を用いる 思考です。又、余計な言葉は入れず必要な事だけを述べて行く・書き下して
行く様にする思考です。

こう言いました。
この私が呼んでる数学的思考という能力が劣っていても、論理性が高いという事は
ありえます。
先ず、具体的な文字を使わず、抽象的な文字を使う。という事と論理性とは
なんの関係もありません。(まぁ、厳密に調べて言ったら、多少なりとも関係
しているでしょうが)
次に、余計なことを述べず必要な物だけを述べる。と言うのも、関係有りません。
別に不必要な物を付け足しても、論理的な展開はでき、論理力が高いという事はあります。
最後に、物事を順序立てて考える。と言うことですが、これは正直よく反論出来ません。
別に物事を順序だてて考えなくても、論理力が高いと言う事はある。脳みそは複雑でバラバラな
事でも統合的に処理できている。というぐらいしか言えません。

また、頭の良い人から論理性が高い。と言われますし、実際国語の点数も良いです。
なので、私の論理性が高くない、と言う事はあまり考えるべきでないと思います。


660629:2007/01/27(土) 00:04:12
>>655 国語における論理(≒常識的論理)と、数学やプログラムの論理は別に
考えているつもりです。

>>657 >>658 何処でどう私の事を、その国語と数学のずれを認識できない奴と、
思ったのですか?
もし、論理性の欠如から来る、ミスなら気をつけて下さい。
話がいらん、何も有益が無い方向に曲がってしまいます。

661デフォルトの名無しさん:2007/01/27(土) 00:11:08
論理がどうこうよりも、急がば回れで、小中学生レベルの算数・数学の問題を解きまくったほうが、計算はできるようになると思う。
662デフォルトの名無しさん:2007/01/27(土) 01:18:26
数板かどっかに行って欲しいなあ。
本人は論理的なつもりなのかも知らんが、誤った前提を元に論理も糞も無いだろうに。
663629:2007/01/27(土) 02:19:15
>>662 うだうだ文句垂れるだけならサルでも出来る。

>>661 演算は出来ます。というか誰も演算できないなんて言ってません。

まぁ、大体このスレでの有益な意見は出たので、これで失礼します。
一部の人が怒りっぽく、荒れてきましたし。
私が言ってないことを言ったかの様に述べたり、確定してない事を確
定してると思い込むのは、恐らく、頭脳から来る頭の悪さでは無く、
人格の欠陥から来る頭の悪さでしょう。

人格の欠陥から来る頭の悪さは大概自己愛の欠落からきています。
自己が自分や他人(特に両親)から肯定されていないんですよ。
一度両親の元へ行って、愛を与えて貰いに行くのがいいと思います。
もしくは、両親との不仲を直し、互いに愛し合う関係になったほうが
良いです。それで、もしかしたら直ると思いますよ。ではノシ
664デフォルトの名無しさん:2007/01/27(土) 02:30:09
怒りっぽくなったり荒れたりしてるのは、お前さんだけのように見えるが。

論理性があって計算もできる奴が、どうして
>数学出来ません。物理できません。化学の計算できません。
なんてなるのかが不思議でしょうがない。
665デフォルトの名無しさん:2007/01/27(土) 03:07:16
663見りゃ分かるとおり、コイツは勝手に論理飛躍した上で他人の人格欠陥を指摘するタイプだ。
どこも論理的じゃないから、不思議でもなんでもない。
666デフォルトの名無しさん:2007/01/27(土) 10:23:34
>659
「数学的思考=抽象化」ということか
オレは「数学的思考=論理的思考」だと思ってたんだが
そもそも,抽象化は考える前の「単純作業」だと思ってたし
その辺,みんなはどうよ?

>別に物事を順序だてて考えなくても、論理力が高いと言う事はある
これはさすがに違うんじゃねえか?

もう見てないのかな
667デフォルトの名無しさん:2007/01/27(土) 10:26:52
自分の考えが否定されたり,お望みの回答が得られなかったら人格攻撃をするなんてのは
アレな人の典型のようにも思える
668デフォルトの名無しさん:2007/01/27(土) 13:53:01
>>666
呼びたいのか?w
俺はもう帰ってきて欲しくないが
669デフォルトの名無しさん:2007/01/27(土) 15:25:34
>>659
日本語の勉強を、中学校辺りから遣り直してください。
仮令国語の点数がよくても、このような文章としてなっていないものを書いているようではお郷が知れます。
670デフォルトの名無しさん:2007/01/27(土) 15:30:12
>>668
大丈夫、この手の香具師は自意識過剰だから自分の話が出ないか気になって必ずヲチしている。
プライドが充分に低いか高いかしなければ二度と書き込まないでくれるはずなのだが……
671デフォルトの名無しさん:2007/01/27(土) 17:05:37
最初は普通の受験生かと思ってたのに、こんな奴だったのかよw
672デフォルトの名無しさん:2007/01/27(土) 21:17:51
それが論理的かどうかは別だけど、
物事をシンプルにまとめる力がないと、プログラムでは苦労するだろうな、
と、経験的に思う。
673629:2007/01/27(土) 21:19:32
呼ばれたんで出て来ました!w
>>670さんは中々鋭いですね。私はナルシストです。

では本題に、

>>666  実際、多くの受験生が苦手としている科目が数学と物理です。
これは人が抽象的な思考をするのが苦手だからだと思います。
より具体的に説明された方が理解しやすいのは経験からも判ると思います。
ので、抽象化を'単なる'単純作業と捕らえるのは違うと思います。
しかし、出来る人からすると、単なる単純作業なんでしょうね。

>別に物事を順序だてて考えなくても、論理力が高いと言う事はある
これはさすがに違うんじゃねえか?

これについては、一例を出しますと、

ある繋がった1〜10迄の事があるとします。順序だてて考えて行くとは、
1.2.3.4.5.6.7.8.9.10と一から十迄規則的に考えて行く思考法の事です。

一方の私がそうでなくてもいける、と言ったのは、
2.5.1.4.6.3.7.9.10.8.と不規則ながらもこれを頭の中で正確に関連づける思考法が
人には出来るという事です。不規則な順序で進めても、それらを正確に関連づけて
最終的に上手く統合出来る。そしてそれは確固とした論理性であり論理力である。
と言うことが言いたかった訳です。
674デフォルトの名無しさん:2007/01/27(土) 22:01:54
>>673
>670によると、プライドが高いか低いかどっちかだそうだけどどっち?
675デフォルトの名無しさん:2007/01/27(土) 22:05:17
>多くの受験生が苦手としている科目が数学と物理です。
これは非常に簡単な理由がある。
こららは所謂理数系と言われる教科なのに、教えている教師は
所謂文系と言う数学物理を苦手とする傾向のある連中が多いからだ。
676デフォルトの名無しさん:2007/01/27(土) 22:17:17
>>673
×ナルシスト
○ナルシシスト
677デフォルトの名無しさん:2007/01/27(土) 22:52:52
高校数学物理で抽象化して捉える能力が重要だと思ったことはないなぁ
大学以降は抽象化されたものを扱う機会が増えたが、どちらかというとそういう考え方は苦手だった。
そんな自分でも高校のときは数学や物理には苦労しなかったので、
受験レベルの内容に抽象的な思考はそれほど必要ないと考えている。

>>629には数学や物理ができない原因が本当に抽象的な思考の部分にあるのかを考えてみてほしいな。
あと元々はプログラミングが役に立つかという話だったけど、
プログラミングに手を出したコストに対して得られる対価が小さいかなと思う。
もっと楽にスキルを上げる方法はありそう。
少しでも興味を持ったのなら、受験は抜きにして趣味でやってみるのもいいかもしれない。
嫌だったら辞めればいいだけの話だし。
678デフォルトの名無しさん:2007/01/27(土) 22:57:28
青チャートやれよ
それが終わったら赤に行け
679661:2007/01/27(土) 23:40:15
>>663
そうか、すまん。
お前が論理性があるというので、学校の数学から論理性を取り除いて残るものと言ったら計算しか思いつかなかった。
それだけのことだ。
680デフォルトの名無しさん:2007/01/28(日) 11:10:15
ナルシス
→ナルシシズム、ナルシシスト

ナルス
→ナルシズム、ナルシスト
http://ja.wikipedia.org/wiki/%E3%83%8A%E3%83%AB%E3%82%B9
お前同郷かw 頑張れよw

抽象化じゃなくて一般化という用語を使えばもっと楽だろうに。
〜ist の用法を一般化したらナルシシストになりそうなことは想像できるだろう。
ナルシスを知らなければしょうがないが。
681デフォルトの名無しさん:2007/01/28(日) 14:02:55
誤用とはいえ広く浸透してる言葉の揚げ足取っても仕方ないやね
682デフォルトの名無しさん:2007/01/28(日) 15:52:17
-istの一般的用法だと、人名の後ろにはistでなくてianをつけないか?

○machiavellian
×machiavellist
683デフォルトの名無しさん:2007/01/28(日) 15:56:56
暮らし安心ナルシアン
684デフォルトの名無しさん:2007/01/30(火) 05:08:18
大学の時に数値計算法の本をたくさん勉強した。
かなり役に立った。特に微積に関してはかなり深く勉強できたと思う。


でも今はCOBOLのプログラマだ・・・orz
全く数値計算法なんて役に立たねえっす。
685629:2007/01/31(水) 05:51:03
数値計算法の本って具体的にどんなですか?
良かったら教えてくださいまし。
686デフォルトの名無しさん:2007/01/31(水) 10:30:54
最小二乗法ライブラリはどこにありまつか?
687デフォルトの名無しさん:2007/01/31(水) 11:03:43
688686:2007/01/31(水) 11:13:39
サンクス>>687

LAPACKでググったら、直線のサンプルもすぐ見つかりました。
ttp://www.sip.eee.yamaguchi-u.ac.jp/kou/lapack.html

実際にやりたいのは真円のフィッティングだから、もうちょっと調査しないと。
689デフォルトの名無しさん:2007/01/31(水) 11:33:59
円だと最小2乗では普通にやったら直線のように解けないよ。
数値解を繰り返しで求めるか

ttp://www.tensyo.com/urame/prog/linealgo.htm
中心からの距離の2乗の誤差の2乗で代用すれば解けるそうだ
690デフォルトの名無しさん:2007/01/31(水) 11:40:36
>>685
ニューメリカルレシピ・イン・シー
691686:2007/01/31(水) 11:42:04
あ、そうですか。では、そのやり方でやります。

やりたいのは4点(真円になるか”?”)から円の中心と半径を決めたいです。

>中心からの距離の2乗の誤差の2乗で代用

ちょっと難?






関係ないけど今回の場合、
ttp://okwave.jp/qa1812202.html
は参考にならないような気がしました。
692デフォルトの名無しさん:2007/01/31(水) 12:02:12
円は3点で求まる。  >>689にも ”3点を通る円” で公式が書かれているね

4点なら最小2乗を使うほどにはデータ量が多くない。

4点から3点を取り出しては公式で中心を求めて
4つ求まった中心の平均を出したらどうだろ?

その中心から4点への平均距離を求めて、それを半径の代用としたら?
693デフォルトの名無しさん:2007/01/31(水) 12:09:42
>>中心からの距離の2乗の誤差の2乗で代用
>ちょっと難?

これはデータの特性にもよるだろな。 使った感じでは十分だよ。
もっとも画像からのデータでデータ量は十分あったが

何より式一発で求まるのは非常にありがたい
694691:2007/01/31(水) 12:19:57
>>693
ごめんなさい、書き方が悪かったです。
そのやり方が悪いという意味じゃなくて、文章難しくて、
その文章どおりにするには何をどうすれば良いのか考えなきゃという意味です。

>>692
その通りやってみたんですが、トンデモない円が出来て(3点だと上手く行く)。。。

どういう算数でやろう?
最小二乗法は?
「中心からの距離の2乗の誤差の2乗で代用」ってどういう意味? ← 今ここ
といった感じです。
695デフォルトの名無しさん:2007/01/31(水) 12:22:31
>>692の方法でとんでもない円になるようなデータなら
最小2乗を使ってもとんでもない結果しか出ないよ

これがデータ100点あって1個だけ飛び離れてるような状態ならマシだけどさ
696691:2007/01/31(水) 12:29:27
>>695
その通りなんですが、
未知データの解析なので、
「最小二乗法を使っても円にならない」ならそれもひとつの結論、
みたいな。
697デフォルトの名無しさん:2007/01/31(水) 13:38:16
何も考えずにたった4点で最小二乗法をやるのは馬鹿げてる。
もし論文なんかで出したら一笑されるぞ。

少数観測点からデータを復元する話は GPS などの位置計測で
よくある話で、そういう場合にまともな推定をしようとすれば
観測点の状態が分かってることが必要になる。
たとえば、真の値からのずれがある確率分布に従うと仮定を
置けば、最尤推定などによって最もそれっぽい場所が出る。

正規分布に従うと仮定してよい場合は最尤推定は最小自乗法に
一致するため、多くの GPS ではこの仮定を(知ってか知らずか)置いている。
多量のデータで最小自乗法が有効なのは、中心極限定理によって
分布が正規分布に漸近するため。
698691:2007/01/31(水) 13:40:21
あ、このページ
>★最小2乗法による円弧推定
ってそのまんまのタイトルがあった。

3点から円を求めるのもこのページから見つけたのに気付かなかったOTL
699691:2007/01/31(水) 13:43:33
>>697
>何も考えずにたった4点で最小二乗法をやるのは馬鹿げてる。
>もし論文なんかで出したら一笑されるぞ。

了解、納得でつ。

必ずしも円になるのか分からないデータの解析なので、
逆にデータ解析結果から観測点が円にならないという結論を出しますが。

ある部分は円、ある部分は円にならず従って応力受けてる、みたいな。
700デフォルトの名無しさん:2007/01/31(水) 13:48:36
>逆にデータ解析結果から観測点が円にならないという結論を出しますが。
これはいえない。最小自乗法では円にならなくても、ほかの方法では
円になる場合があるかもしれない。
701699:2007/01/31(水) 13:57:36
>>700
じゃあ、ほかの方法教えて。


ところで、
>★最小2乗法による円弧推定
を読んだら、
>この3つの方程式を解けば良い.
で終わってる。

解かないといけないのか。
702デフォルトの名無しさん:2007/01/31(水) 14:12:46
>>701
上で述べられていた任意の三点の中心の平均や重心は有力。
また、697 で述べたように、最尤推定はひとつの別の方法。
ほかにも最小自乗や最尤推定を部分に含むが、適当な
ペナルティ関数を設定して最小化問題として解く手もある。

最尤推定やペナルティ法は、円になるかどうか分からないものの
判定なら、おそらく最小自乗を用いるよりも良い結果が得られる。
(最小自乗では、一直線上のデータは半径が(ほぼ)無限大の円と
 判断されるが、通常の応用ではそれを弾きたいことが多い)
703701:2007/01/31(水) 14:33:09
>最尤推定やペナルティ法は

これらはライブラリにもなってなさそうだね。

実装難しそう...
704701:2007/01/31(水) 18:42:23
>2a( X*X/N -XX)+ 2b(X*Y/N -XY) =X(XX+YY)/N-XXX-XYY ----1)
>2a( X*Y/N -XY)+ 2b(Y*Y/N -YY) =Y(YY+XX)/N-YYY-XXY ----2)
>r*r=(XX+YY-2.0(a*X+b*Y) )/N+a*a+b*b; ----3)
>この3つの方程式を解けば良い.


やっぱこれ何度読んでも分からないんだけど、
4点をどうやって代入するわけでしょうか?

解答が目の前にありながら使いこなせないorz
705デフォルトの名無しさん:2007/02/01(木) 12:41:01
>>704
X → 肺i XX → 肺i*xi XXX → 肺i*xi*xi
Y → 輩i YY → 輩i*yi YYY → 輩i*yi*yi
以下略
の意じゃね? xi, yi が配列要素で直線上にない3点が最低限必要と。
706デフォルトの名無しさん:2007/02/05(月) 17:23:56
>>704
後は、1) 2)式から a,b2変数の連立一次方程式を解けば中心が求まるでしょ?
それを3)に代入すれば半径も求まる
707デフォルトの名無しさん:2007/02/14(水) 10:09:26
たぶん、質問者の目的には、

 4点中 3点で求まる円から、 残った1点までの円からの距離2乗(|中心からの距離-半径|)を出して
 それを4つ加算した結果、
またはそれを半径で割って正規化したもの

でいいんじゃないのか?


708デフォルトの名無しさん:2007/02/28(水) 21:55:01
保守アゲと質問募集
709デフォルトの名無しさん:2007/03/25(日) 15:02:16
幅 W、高さ H の楕円上に N個の点を等間隔に打とうと思いました。

for(i = 0; i < N; i++) {
 int x = cx + sin(i * 2 * PI / N) * (W / 2);
 int y = cy + cos(i * 2 * PI / N) * (H / 2);
 plot(x, y);
}

ところがというか当然というか、これだと W = H の円の時にしか点が等間隔になりません。
どうしたら良いでしょうか?
知っていなくてはいけない公式などありましたら教えてくださいませ。
710デフォルトの名無しさん:2007/03/25(日) 15:24:58
少し上のほうにあった,放物線を速さ一定で進むというのと同じ話だよ
711デフォルトの名無しさん:2007/03/25(日) 15:26:04
あれ,と思ったけどそれは他スレか
712デフォルトの名無しさん:2007/03/25(日) 15:44:51
楕円の円周の長さは 楕円積分という厄介な分野で
それを等間隔に分割というのは、その厄介な問題に挑戦するという事になる

数式では基本的に解けないから、数値積分で頑張るしかないよ
713デフォルトの名無しさん:2007/03/25(日) 15:46:43
W > H > 0になるようにして
int x = cx + W * cos(i * 2 * PI / N);
int y = cy + H * sin(i * 2 * PI / N);
でどうでっしゃろ?

714713:2007/03/25(日) 15:47:20
あ、無理だったごめん
715デフォルトの名無しさん:2007/03/25(日) 16:06:21
楕円関数の近似式をkの値を適当に決めたルックアップテーブルみたいな形で用意しとけばいいんじゃね?
それつかって円周を求めた(ここではLとおく)として
始点(仮に中心からx軸方向に幅/2移動した点としよう)から
円周にそってl ( = n×L, nは適当な実数)分移動したときの座標(x,y)ってのは楽に求まるの?
精度気にしないのならこれでいけると思うんだけど、どうでしょうか?
716デフォルトの名無しさん:2007/03/25(日) 16:20:25
近似でいいのなら、
Nの個数を30倍くらいに増やし一度テーブルを作成して
補間で、近似値を求めるのが一番簡単だろう
717デフォルトの名無しさん:2007/03/25(日) 16:40:25
もう少し詳しく。
そのテーブルの中味と、
何のデータを元にして、
何の式で補間するか書いてください
お願いします(-∧-)
718709:2007/03/25(日) 16:51:16
ありゃ、思いのほか厄介な問題だったんですね・・・
>>715 円周に沿って l の座標を求める方法がよくわからないです。すみません。
>>716 で言う方法かはわかりませんが、自分ならこうやりますがどうでしょう?

 1. 30N の全ての点の座標を求たテーブルを作る
 2. 隣り合う点との距離を三平方の定理で求めることを全ての点について行い、円周の近時値を計算する
 3. 円周を N等分した長さを求め、これを当初の N個の頂点間の距離 d とする
 4. 30N のテーブル中の頂点の中から、それぞれの点の円周上の位置(始点からの距離)に近いものを選んで点を打つ
719デフォルトの名無しさん:2007/03/25(日) 16:53:40
補間は、とりあえず線形補間とすれば、
テーブルの中身:

double ax[N*30];
double ay[N*30];
double aL[N*30];
double L=0;

ax[i] = cx + W * cos(i * 2 * PI / N);
ay[i] = cy + H * sin(i * 2 * PI / N);
if( i != 0 ) L+= hypot(cx-ocx , cy-ocy);
aL[i]=L;
ocx=cx;
ocy=cy;


のテーブルを作るでしょ?
Lを周長の代用として、

c= L*i/N で aL[k]<=c && aL[k+1]<c になる k を見つけて比例で分割して

w = ((c-aL[k]) /(aL[k+1]-aL[k]) + k) :2*Pi/N

を角度にするという感じ


720デフォルトの名無しさん:2007/03/25(日) 17:04:31
>>718
>円周に沿って l の座標を求める方法
楕円積分の逆関数だから、楕円関数使って求まる気がする。
もちろん、楕円関数の値は数値的に計算するものだけど。
721719:2007/03/25(日) 17:13:07
ゴメンミス テーブルは aL だけでいい。

double aL[N*30];
double L=0;
for( i=0;i<30*N;i++}{
ax  = cx + W * cos(i * 2 * PI / N);
ay  = cy + H * sin(i * 2 * PI / N);
if( i != 0 ) L+= hypot(ax-oax , ay-oay);
aL[i]=L;
oax=ax;
oay=ay;
}

次のループは
for( i=0;i<N;i++}{
で while(aL[k]>c) k++;

722719:2007/03/25(日) 17:16:37
ありゃ、元の式は 違うのか、 上の
 ax = cx + sin(i * 2 * PI / N) * (W / 2);
 ay = cy + cos(i * 2 * PI / N) * (H / 2);
に訂正、

続き、

w = ((c-aL[k]) /(aL[k+1]-aL[k]) + k)*2*PI/N;
int x = cx + sin(w) * (W / 2);
int y = cy + cos(w) * (H / 2);
plot(x, y);
}
723709:2007/03/25(日) 17:30:02
>>722
丁寧にどうもありがとうございます。
よくわかりました。

>>720
まずは楕円積分というのを勉強しなくてはいけなそうです。
おいおいスキルアップしたいと思います。

>>710
よろしければそのスレを教えてもらえないでしょうか。
放物線を速さ一定で進むってのも興味あります。
724デフォルトの名無しさん:2007/03/25(日) 17:44:59
楕円の周長なら
ttp://www.tensyo.com/urame/prog/ALGO.HTM
の後ろの方に計算方法が書いてあったけど
コレは今回の問題には応用できないな
725しょう:2007/03/25(日) 20:12:39
ある学校の生徒数は 1年生が全体の三分の一であり、2年生と 3年生の生徒数の比は5:6である。1年生の生徒数をa人、2年生の生徒数をb人とするとき、bをaの式で表せ。   この問題誰か解いてください
726デフォルトの名無しさん:2007/03/25(日) 20:19:03
プログラミング関係ないな。
宿題は他をあたりなさい。
727デフォルトの名無しさん:2007/03/25(日) 20:22:52
1) a*3=b+c
2) b*6=c*5

1' a*3*5=b*5+c*5
a*3*5=b*5+b*6=b*11


b=a*3*5/11
728デフォルトの名無しさん:2007/03/25(日) 20:23:34
うわーなんてむずかしいもんだいなんだー
729しょう:2007/03/25(日) 20:27:12
解らないですか?
730デフォルトの名無しさん:2007/03/25(日) 20:28:17
ヒントください
せめて何学年まであるか、一学年何クラスかぐらいはわからないと・・・
731しょう:2007/03/25(日) 20:31:33
高校受験の問題です。問題用紙のままカキコしました。
732デフォルトの名無しさん:2007/03/25(日) 20:34:09
……('д`)帰れリア厨
733デフォルトの名無しさん:2007/03/25(日) 20:41:40
SPI並の難しさだな
中学生じゃ解けないよ
大学入って掃き出し法を習うまでとっておきなさい
734デフォルトの名無しさん:2007/03/25(日) 21:04:47
厨房でも溶けるだろ
>727間違ってる
1)a*2=b+c
だな。
で、2)はb:c=5:6から出した式ですね
あとは連立方程式
735デフォルトの名無しさん:2007/03/25(日) 21:31:43
このスレの上の方で文系は数学から逃げ〜とか言ってたけど
俺数学選択で早稲田受かったよ
736デフォルトの名無しさん:2007/03/25(日) 21:38:14
おめでと(^O^)/
737デフォルトの名無しさん:2007/03/25(日) 21:42:19
ありがと(^0^)/
まぁ政経だけどねwショボいけど
738デフォルトの名無しさん:2007/03/25(日) 22:12:11
理系で数学から逃げた俺は退学して工場労働者やってるお(^o^)
739デフォルトの名無しさん:2007/03/26(月) 00:05:29
740デフォルトの名無しさん:2007/03/26(月) 00:10:22
>>734
それを言うなら、 a = (a + b + c) * 1/3 だろ。実際のところ、3学年しかないという前提はどこにもないわけだが。
741デフォルトの名無しさん:2007/03/26(月) 00:26:09
>>723
楕円の周長計算、
「使えるだけでいい」という姿勢なら
単に数値計算ライブラリからソースコピればいける気が。
742デフォルトの名無しさん:2007/03/27(火) 01:25:31
743デフォルトの名無しさん:2007/03/27(火) 02:01:51
>>742はコチラへ移動しました
★☆YouTubeのCMを連続動画に☆★
//ame.x0.com/main/070327015730.html
http://ame.x0.com/main/070327015730.html
744デフォルトの名無しさん:2007/03/28(水) 11:26:38
円と曲線がどれだけズレてるかの面積?みたいなものはどうやって計算すればよいですか?
745デフォルトの名無しさん:2007/03/28(水) 11:31:26
曲線が定義済なら、数値積分すればいいじゃない
746デフォルトの名無しさん:2007/03/28(水) 11:37:36
あ、曲線は自由曲線(ドットというか。。。)です。
747デフォルトの名無しさん:2007/03/28(水) 11:43:15
50レスほど戻れば、似たような話をしているよ
>>689のリンク先のページは見た?
748デフォルトの名無しさん:2007/03/28(水) 13:40:09
>>746
その離散点使って、数値積分的なことすれば?
Σ(点から直線への距離 × 傾き)
みたいなのを。
749デフォルトの名無しさん:2007/03/28(水) 19:00:37
曲率の分散とか?
750デフォルトの名無しさん:2007/03/28(水) 23:08:36
>>746
>あ、曲線は自由曲線(ドットというか。。。)です。 

ドットを数えろ。
751デフォルトの名無しさん:2007/03/29(木) 08:38:46
ラジャ>>750
752デフォルトの名無しさん:2007/03/29(木) 08:57:37
円と離散点群がどれだけズレているかなら、
案1、 (点と中心との距離-半径)^2 の平均 ÷ 半径^2
案2、 ( 点と中心との距離^2 - 半径^2 )^2 の平均 ÷ 半径^4

あたりだろう。
753デフォルトの名無しさん:2007/03/29(木) 14:03:24
「ズレている」がきちんと定義されんとなんとも。
基準円よりも広いところで円をなす点たちと
基準円上のある点にのみ集中する点たちで
どっちが「円からズレている」かは一概には言えない。
754デフォルトの名無しさん:2007/03/29(木) 14:22:10
そこで残差の二乗の総和ですよ
755デフォルトの名無しさん:2007/03/29(木) 15:48:26
何が「そこで」なの?

残差自乗みたいな簡単な尺度では「(概形が)円からズレてない」
みたいな位相的な構造はとても捕まえられないはずだけども。
756デフォルトの名無しさん:2007/03/29(木) 16:07:10
>>753 それは、 ズレを最小にする円があるかどうかの問題になるんじゃないのか?

指定された円とのズレという量があればそれを最小にする半径、中心も求められるわけで・・・

それとも何か素晴らしいアイデアをお持ちで?
757デフォルトの名無しさん:2007/03/29(木) 16:33:07
>>756
だから「ズレている」を定義してくれと言ってるんだけどな。
一点に集中してても「ズレてない」とするなら残差自乗で十分だし、
そうでないならより輪郭線抽出などの手法が要るかもしれない。
758デフォルトの名無しさん:2007/03/29(木) 16:37:32
欠点はあるが 簡単な定義は>>752くらいしか無いだろう?

もう少しややこしくするなら、点同士がどれだけ中心からの角度で分散しているかの数値を入れるかい?
759デフォルトの名無しさん:2007/03/29(木) 16:44:25
なんとなく想像だけど、手書きの丸と円のずれ具合を定量化したいんじゃないのかな?
だとすれば>750で充分だと思うのだけど。
#目的も判らずに数学的な意味を見出そうとしても虚しいばかりだ。
760デフォルトの名無しさん:2007/03/29(木) 16:52:34
ドットを数えるってどうやるの?
761ラジアンの比較で躓いてます:2007/03/29(木) 16:57:43
別スレで http://pc11.2ch.net/test/read.cgi/tech/1175129517/9 の質問をして、最終的にこちらに誘導されてきました。
質問の回答として、以下のコードを教えてもらいました。

v1 … p1→p2 のベクトル
v2 … p2→p3 のベクトル

struct point { double x, y; };
bool isJustLeft(point v1, piont v2)
{
double corssProd = v1.x * v2.y - v1.y * v2.x; //外積
double norm1 = v1.x * v1.x + v1.y * v1.y; // |v1|^2
double norm2 = v2.x * v2.x + v2.y * v2.y; // |v2|^2

if( corssProd < 0.0 ) return false; // 時計回りはダメ
if( crossProd * crossProd == norm1 * norm2 ) return true; // 直角判定
return false;
}


でも、ベクトルの外積って通常3次元のベクトルを返しますよね。上記だと

> double corssProd = v1.x * v2.y - v1.y * v2.x; //外積

とスカラー値を返しているのですが、今一つやっている意味が判りません。

http://yuki.to/math_cgi/prybbs.html?log=3&mode=res&no=36824

ぐぐったらこんな掲示板見つけたけど、回答者の答えがイマイチ判りません。
コードを通して、ベクトルを理解したいのですが、誰か教えてもらえませんか?
762デフォルトの名無しさん:2007/03/29(木) 17:08:28
v1,v2の外積の結果は、その2つに直角な方向ですが、
v1,v2が平面上なのでZ成分のみとなります。 だから省略したのでしょう
763デフォルトの名無しさん:2007/03/29(木) 17:24:43
外積の定義って曖昧というか、人によって違うというか。

1つは、>>762 の言うように、3次元ベクトルの外積の考え方を使って、
(x1, y1, 0) × (x2, y2, 0) = (0, 0, x1 y2 - x2 y1) の z 成分のみを取ったもの。

もう1つは、n 次元のベクトルは、n - 1 本あれば、それらに垂直なベクトルが決まるので、
n - 1 本のベクトル → 1 本の n 次元ベクトルを求める演算を外積と呼ぶ。
こっちの流儀だち、2次元ベクトルの外積は1本→1本の演算になって、
「積」というとちょっと微妙。

まあ、x1 y2 - x2 y1 は、外積の値というか、
符号付面積、あるいは行列式よね。
3次元ベクトルの外積は、その絶対値が符号付面積になってるから、
その類推で、2次元ベクトル2本の貼る平行四辺形の符号付面積を外積と呼ぶのかも。
764ラジアンの比較で躓いてます:2007/03/29(木) 17:36:19
>762
なるほど・・・時計回りだとZ値が下方向
反時計回りだと上方向になる性質を利用して、
Z値だけで判断すればいいという事ですね!!
765ラジアンの比較で躓いてます:2007/03/29(木) 17:39:31
もうひとつ質問ですが、ここは何をやっているのでしょうか?

double norm1 = v1.x * v1.x + v1.y * v1.y; // |v1|^2
double norm2 = v2.x * v2.x + v2.y * v2.y; // |v2|^2
766デフォルトの名無しさん:2007/03/29(木) 17:47:02
>>765
え、えっと、変数名もnormだし、コメントもnormだし、normを計算しているんじゃないかなあ。
767デフォルトの名無しさん:2007/03/29(木) 17:53:54
直角であるかどうかは 内積x1*x2+y1*y2 が0になる事
(v1.x * v2.y - v1.y * v2.x)^2 -(v1.x * v1.x + v1.y * v1.y)*( v2.x * v2.x + v2.y * v2.y)
を変形してくと・・・・
って内積計算した方が計算量少ないかもしれないが
まあ、折角 外積計算したからって所じゃないのかな
768ラジアンの比較で躓いてます:2007/03/29(木) 18:03:57
>766
一瞬正規化?とか思っちゃいましたが、「ノルム」でしたか・・・orz
769デフォルトの名無しさん:2007/03/29(木) 18:19:33
>「ノルム」

って日本語の数学では何だっけ?
770デフォルトの名無しさん:2007/03/29(木) 18:27:37
世の中には日本語の数学と英語の数学があるらしい。
771デフォルトの名無しさん:2007/03/29(木) 18:37:01
定まった和訳は無く、日本語をあててる本も特に知らないなあ。
参考までに、中国語では「范数」と書くそうな。
772デフォルトの名無しさん:2007/03/29(木) 18:41:31
>>769
ノルムはノルムじゃない?
数学用語としてじゃなくて、一般には基準とか模範って訳すけど。

ノルムに似たので(というか、絶対値の一般化)付値ってのがあるけど、
それは英語でも valuation。
773デフォルトの名無しさん:2007/03/30(金) 08:56:16
則(のり)じゃなかったか?

片方を90度回転したベクトルで内積をとっても、時計回り判定はできる。
90度回転操作を (x, y) → (-y, x) とすると、外積とコメントされた式と同じになる。
好きな方で解釈するといい。
774デフォルトの名無しさん:2007/03/30(金) 09:20:27
内積外積を使わなくてもこれは解ける
片方のベクトルが水平(y成分が0)になるように回転変換し、
もう一方のベクトルのx成分が0なら垂直で y成分の符号を見ればいい
でも、それが内積と外積になっちゃうんだけどね
775デフォルトの名無しさん:2007/03/30(金) 11:56:04
プログラミングの学習を先にはじめて、その必要に迫られて
その都度、数学の教養を身に着ける順序でも遅くなくねえ?

問題集をひたすら解くだけの抽象的な数学の本ばかり読んで
いると、生きることの意味がわからなくなってくるよ。
776デフォルトの名無しさん:2007/03/30(金) 11:57:48
既出でしたら、ごめんなさい

半径10センチの球表面の座標(XYZ)をファイルに出力したいと考えております
点の間隔は0.1センチぐらいでいいかな、と

ファイルに落とす部分は、わかっているんですが
座標を算出するアルゴリズムが、さっぱりわからなくて

お分かりになる方、御教授いただけると助かります
777デフォルトの名無しさん:2007/03/30(金) 12:20:47
>>755
それが許されればな。

>>756
3次元空間なら
x^2 + y^2 + z^2 = 半径^2
を満す実数だったと。
ざっぱになら x と y で for ループ回しながら z の値を算出すすとか。

もしくは 三次元空間の極座標
x = 半径 * sin(th1) * sin(th2)
y = 半径 * sin(th1) * cos(th2)
z = 半径 * cos(th1)
解説: http://hp.vector.co.jp/authors/VA030421/fdd06.htm
で角度(th1, th2)でループまわすことも考えられる。

角度で回すのなら、球面三角法
http://ja.wikipedia.org/wiki/%E7%90%83%E9%9D%A2%E4%B8%89%E8%A7%92%E6%B3%95
も見おくべし。
778776:2007/03/30(金) 12:56:17
>>>777

ありがとうございます。できたっぽいです
たすかりました
779デフォルトの名無しさん:2007/03/30(金) 20:41:06
そのような極座標だと、目の細かい場所と粗い場所ができないか
できてもさしつかえないならいいけど、もしさしつかえあるなら
ユニバーサルメルカトル図法みたいな雰囲気で局所座標系を
とったりするとよさそうな気が
780デフォルトの名無しさん:2007/03/31(土) 01:53:29
等間隔にするならジオデシックスフィア(日本語でなんて言うのか知らん)の頂点として出すとか
781デフォルトの名無しさん:2007/03/31(土) 02:39:25
まあ、やっぱり極付近ほど密になるけど、↓みたいなのはある。
http://www.cubido.at/Blog/tabid/176/EntryID/86/Default.aspx

ジオデシックドームの頂点求めるんだたら↓これ?
http://www2.tokai.or.jp/tomo-kun/readmeJ.html
782デフォルトの名無しさん:2007/03/31(土) 04:54:50
正20面体に重心細分を繰り返して得られる多面体とかではどうかね
783デフォルトの名無しさん:2007/04/11(水) 11:07:50
自由な曲線(ベジェ曲線か、折れ線の点列)を円弧のあつまりで近似したいんですが、
ヒントはないでしょうか?
784デフォルトの名無しさん:2007/04/11(水) 11:16:08
円弧は半径が決まっているの? つまりフライスのようなので削るというような場合?

単純に円弧で近似したいのがどういう状況か判らないのだけど
曲線の場合は、微分が一致するように接続してゆけばいいのだけど
円弧の場合は2点と半径で求まってしまうので、
どうやっても接続点が尖がってしまう
785デフォルトの名無しさん:2007/04/12(木) 00:12:15
円弧と線分ならどうにかそれっぽくなるかも
786デフォルトの名無しさん:2007/04/12(木) 08:40:07
円弧の半径に制限無かったら、無限小の円弧になるだけだろ。
787デフォルトの名無しさん:2007/04/13(金) 04:39:53
無限小の円弧の集合では曲線は近似できないのでは。
788784:2007/04/13(金) 06:06:45
まてよ。
接続点で中心の方向が一致すればいいと解けば
接続点が尖らないように出来るか 
789デフォルトの名無しさん:2007/04/13(金) 06:16:25
>>788
 )

 )


こういうこと?
790デフォルトの名無しさん:2007/04/13(金) 13:54:27
円弧も極小の長さで繋いでゆけばどんな曲線でも表現出来るし、
直線も半径を限りなく大きな値にすれば可能っぽいね。
適当に曲線から3点抽出して、3点を通る円を求めればいいんじゃね?
必要精度に達していなければ間隔を短くし、足りてれば長くして情報量を落とせばいけそう。
791デフォルトの名無しさん:2007/04/13(金) 20:32:08
半径無限大に飛ばせば曲率ゼロだしな。
792デフォルトの名無しさん:2007/04/14(土) 00:14:38
よくあるフォームの座標系を
0|
―+―――→x
 |
 |
 ↓
y
を、
  y
  ↑
  |
  |
―+―――→x
 0 |
に変換する行列教えてください。
793デフォルトの名無しさん:2007/04/14(土) 00:26:24
1, 0; 0, -1
794デフォルトの名無しさん:2007/04/14(土) 15:36:47
>「network.standard-url.escape-utf8」を「false」にしてください。
>about:configで「network.standard-url.encode-utf8」を「true」にします。

上記の設定で、無事、日本語になりました。

気になるのは、IE7では、『"』⇒『"』でしたが、
http://forum.mozilla.gr.jp/?mode=new&no=0&X='国際化'
http://forum.mozilla.gr.jp/?mode=new&no=0&X="国際化"

FireFox2では、『"』⇒『%22』になっていました、少々オシイです。
http://forum.mozilla.gr.jp/?mode=new&no=0&X='国際化'
http://forum.mozilla.gr.jp/?mode=new&no=0&X=%22国際化%22

『%22』を『"』に戻す作業が残ってしまいます。
共通化としてOpera9の国際化URL設定も分かると良いと思います。
795デフォルトの名無しさん:2007/04/18(水) 10:03:30
数学的要素が少ないプログラムの分野は何ですか?
ゲームプログラムは数学的要素満載だと思うのですが。
796デフォルトの名無しさん:2007/04/18(水) 10:46:25
事務web系
797デフォルトの名無しさん:2007/04/18(水) 13:57:03
>>795
どんな分野であっても、スレタイが読める程度の日本語力は必要。
798デフォルトの名無しさん:2007/04/18(水) 21:51:26
>>796
事務web系って何ですか?
799デフォルトの名無しさん:2007/04/18(水) 22:46:08
全国の支社から出退勤のデータを収集して給与を計算するとか
ネット通販の注文を受け付けて倉庫に発送を指示するとか
800デフォルトの名無しさん:2007/04/19(木) 02:44:55
そういうのって地味だから長く働けそうですね。
801デフォルトの名無しさん:2007/04/19(木) 02:48:30
追記

出来るだけ長く働ける分野が良いんです
802デフォルトの名無しさん:2007/04/19(木) 11:29:46
息子が大学に行く直前まで働ける職種でおk?
803デフォルトの名無しさん:2007/04/19(木) 11:38:45
数学、算数はプログラムに必要か?
http://pc11.2ch.net/test/read.cgi/tech/1171457185/
を汚した奴だろ?

あちこち汚してゆくような奴が奴隷の待遇の上下を聞いたって嫌われるだけだろうに
804デフォルトの名無しさん:2007/04/19(木) 23:48:04
就職先探すのとかは完全にすれ違い。帰れ。
805デフォルトの名無しさん:2007/04/21(土) 06:19:39
>>802
あなたの息子を舐め舐めしますよ
806デフォルトの名無しさん:2007/04/21(土) 09:01:30
 これから数学の勉強始めてみようと思ってるんだが、プログラミングに役立つ
勉強方法が知りたい。大学受験レベルの数学問題をひたすら解くのがいいのか、
公式を理解しつつ大学レベルの数学を勉強するのがいいのか。

どんな風にすればいいか教えてください。。。。。
807デフォルトの名無しさん:2007/04/21(土) 09:31:49
大学レベルの数学もいろいろあって、いまのあなたの
プログラミング・数学の能力と、役立てようとしている
方面によって勉強すべきものは変わる。

目的に近いところを読んでから、不足してそうな部分を
適宜補うってのが順当なごく普通の勉強の仕方。

どんなのがやりたいか言ってくれれば本などは紹介するよ。


因みに受験レベルの数学は単純計算すら覚束ないなら
仕方が無いけれど、そうでなければやる必要なしと思う。
808デフォルトの名無しさん:2007/04/21(土) 16:00:13
> プログラミングに役立つ勉強方法が知りたい。
これは例えるなら「スポーツに役立つ練習方法を知りたい」と言ってるようなもの。
スポーツの種目によって練習方法が違うように、プログラミングの分野によって役立つ
数学の分野も違う。

# プログラミングで飯を食っていきたいなら、数学より簿記でもやった方が潰しがきくような気がしないでもない。
809806:2007/04/22(日) 13:35:06
>>807-808
レスサンクス。

プログラミングはCの基本的な文法を理解している程度で、数学に関しては
高校レベルもサパーリな状況です。

簿記の知識って業務系だとそんなに役に立つのか。。。。
それなら一応日商の簿記一級を持ってるんで、この知識を生かして業務系に
進んだほうがいいのかなと思ってるんだが、
「生涯現役でプログラマなんだぜ?」
な漏れとしては組込み系や制御系のほうがいいのかなと考えたり、、、
今現在はどの分野にいこうか迷ってるところです。

どうやらプログラミングに必要な数学は各分野ごとにまちまちで、漏れの
やりたいこと自体もまだ定まってないので、とりあえず高校レベルの数学を
勉強する。そしてその時の勉強法としては大学受験を目指す感じのやり方
じゃなく、基本的な公式を理解する程度でよいってことでFA?
810デフォルトの名無しさん:2007/04/22(日) 21:45:37
人に分からないことは全く問題ないけど、
全部頼るのは良くない。
自分で決める、たぶんそれが一番大事だ。
811デフォルトの名無しさん:2007/04/22(日) 22:39:13
>人に分からないことは全く問題ないけど、
日本語でOK。
812デフォルトの名無しさん:2007/04/24(火) 00:45:08
進路相談は完全に板違いなんでとっとと消えろな
毎年毎年現れる上に、人によって状況が違うし、いちいち答えてたらキリが無い
813全知全能者:2007/04/25(水) 05:10:58
いつの世も物を言うのは「力」だ。

原始時代は「筋力」
江戸時代は「家柄」
そして現代は「金」

現代社会では金を持っている人間が強い。
革新的なパラダイムの転換が無い限りこの価値観は変わらない。
814デフォルトの名無しさん:2007/04/25(水) 15:49:14
そして、この先は『人柄』が力となる。
815デフォルトの名無しさん:2007/04/29(日) 00:22:43
ピクセルのフェード計算についての質問をさせてください。
実行したいのは以下の式です。

// dst[0 〜 255]: 転送先ピクセルの色要素)
// src[0 〜 255]: 転送元ピクセルの色要素)
// rate[0 〜 255]; srcの比率 )
// (すべてbyte型です)
//
フェード式
 = (dst * (255 - rate) + src * rate) >> 8;
 ~= dst + (((src - dst) * rate) >> 8);
  (~= はニアリーイコールです)

これを実現するために以下のような計算方法がよく使われています。

1) short tmp = (short)src - (short)dst; //< 符号付き2バイト数に拡張します
2) tmp = (short)(tmp * rate); //< 演算結果の下位2バイトを結果として受け取ります
3) tmp = (word)tmp >> 8; //< 無符号型としてシフト()
4) byte result = (byte)(dst + (byte)tmp); //< tmpの下位1バイトのみを足し込みます

これだけ見ると変に複雑に見えますが、
実は計算にはmmxを使っていて4要素まとめて演算します。
そこで、1要素につき2バイトの範囲内で
(src - dst){-255 〜 255} * rate{0 〜 255}
の符号付き乗算をしないといけないため、このようなことになっています。
816815:2007/04/29(日) 00:24:22
>>815の続きです^^

例えば、src=0, dst=255, rate=255の場合、
結果としては0が期待されますが、実際に計算してみると
1) tmp = -255 = 0xff01
2) tmp = (short)(0xff01 * 0xff) = (short)0xfff01ff = 0x01ff
3) tmp = 0x01
4) result = (byte)(0xff + 0x01) = 0x00
となり正しい結果が得られます。

また、src=200, dst=225, rate=200の場合は、
204程度が望まれますが、実際に計算してみると
1) tmp = -25 = 0xffe7
2) tmp = (short)(0xffe7 * 0xc8) = (short)0xc7ec78 = 0xec78
3) tmp = 0xec
4) result = (byte)(0xe1 + 0xec) = 0xcd = 205
とほぼ正しい結果が得られます。

上の式は有名なライブラリで使われている式でもあり、
正しいことはほとんど保証されているのですが、
これがなぜ正しいのか証明できる方はいませんか?
少なくとも自分には理解できないです。
文献でもいいです。よろしくお願いします。
817デフォルトの名無しさん:2007/04/29(日) 00:48:54
>>815

どうしてもなにも、定義そのままの計算式じゃん。

> 1) short tmp = (short)src - (short)dst; //< 符号付き2バイト数に拡張します

(src-dst) は、-255〜+255 なので、short に納まる。

> 2) tmp = (short)(tmp * rate); //< 演算結果の下位2バイトを結果として受け取ります

(src-dst)*rate は、-65280〜+65280 なので、2の補数で17ビット必要→shortだと1bit足りない→後述

> 3) tmp = (word)tmp >> 8; //< 無符号型としてシフト()

((src-dst)*rate)>>8 は -255〜+255なので、2の補数で9ビット必要だが、2)の時点で9ビット目の情報は落ちている

> 4) byte result = (byte)(dst + (byte)tmp);

ここで、8ビット整数で計算するのだから、上記3)の所で、結果は8ビットあれば十分。9ビット目の値は要らない。

8ビットで演算するのに「-1(0xff)を足す」のも「255(0xff)を足す」のも、まったく同じ結果になることに気付けばOK。
3)の結果で、-255 が出てきたのを、+1 として処理してもまったく問題ない。
→ -255〜-1 を +1〜+255 で処理しても結果は同じ。
818デフォルトの名無しさん:2007/04/29(日) 14:31:47
>>817
おお!
8ビットまで精度を保証すればうまくいくってことね^^
どうもありがとう
819デフォルトの名無しさん:2007/04/29(日) 18:19:52
数学の知識はそりゃあった方が良いと思うけど、
一番大事なのは物事を合理的に考える事が出来るか。
820デフォルトの名無しさん:2007/04/29(日) 19:08:45
合理的に考えれば2chで質問するほど無駄なことは無い訳だが
821デフォルトの名無しさん:2007/04/29(日) 19:46:50
自由な曲線(ベジェ曲線か、折れ線の点列)を円弧のあつまりで近似したいんですが、
ヒントはないでしょうか? と、質問した者です。

点列が1個の円や直線にフィットするかどうかは、最小二乗法などで、
解決できると思います。
したがって、どういう風なグループで円弧や直線にすると、さらに最小になるか、
という問題になるような気がするのですが、そういう問題には、どのような考え方で臨めばよいでしょうか。


822デフォルトの名無しさん:2007/04/29(日) 20:18:42
やりたい事が判らないから困ってしまうのだけど、
円は3点で決まるから、3点毎に円弧を描いても、近似と言い張れば近似になる。
823デフォルトの名無しさん:2007/04/29(日) 20:40:03
4点あるときにどの3点を選んで円弧にするかっていう話?
824デフォルトの名無しさん:2007/04/30(月) 01:30:11
円弧だけじゃなくて、適宜直線も使いたいってことかい?
825デフォルトの名無しさん:2007/05/02(水) 18:06:14
たとえば、N点(3000点とか)からなる折れ線の図形があったとして、人間は図をかけば、適度にこの部分は円弧だろうとか、直線だろうとか、あてはめることができます。
それを、精度をあたえることで、コンピュータに計算で円弧+直線に解かせられないでしょうかね。
826デフォルトの名無しさん:2007/05/02(水) 18:27:41
使う円弧の数に制限が無いのなら、>>822の方法で指定点での誤差ゼロで描ける

使う円弧の数を減らしたいという要求があるなら
単純に端から3点でフィッティングして、次の点が誤差の範囲内ならと処理してもいいし
最小2乗円を求めては、誤差の範囲が収まるならとやってもいいとおもう

ただし、誤差だけでは、つなぎ目がガクガクに見えるという事になる
だから、それが嫌なら、点との誤差が幾ら以内で、接続が滑らかであるというような条件を追加しないといけない
827デフォルトの名無しさん:2007/05/02(水) 19:42:29
>>825
用途を書いてくれればもう少し具体的なアドバイスが出てくると思われ
828デフォルトの名無しさん:2007/05/02(水) 20:19:07
>>825
滑らかじゃなくていいなら既に色々レスついてるからそれ参照。誤差ゼロ。
滑らかである必要があるなら、確かに精度(許容誤差)を与える必要はあるだろう。
滑らかって何とか言うならもっと勉強しなさい。
829デフォルトの名無しさん:2007/05/04(金) 00:50:19
ペゾルドにかいてなかったっけ?
830デフォルトの名無しさん:2007/05/15(火) 23:20:02
ttp://www.emit.jp/prog/prog_div.html
の高速除算なのですが、
どうしてこれで正しく計算できるのか分かる方いませんか?

あと、割られる数が負数のときでも上手くいくような
つまり
X / D = Q (Qは整数)
のときに
-X / D = -Q
となるような高速除算の方法を知っている方はいますか?
831デフォルトの名無しさん:2007/05/16(水) 01:13:49
830のリンク先はなーんか誤差が出そうなやり方だなー。
定数除算なら、誤差項を1ビット誤差以下に抑えればいいから、こういうことは出来るけど。


32bit同士の乗算がオーバーフローせずに使える場合。
X/3 = [X/3 + 2n/(3*2^32)] (∵ 2n/(3*2^32) < 1bit )
= [ (2^32 + 2)/3 * (n/2^32) ]
= 1431655766 * n / 2^32
= 1431655766 * n >> 32
832デフォルトの名無しさん:2007/05/16(水) 01:16:49
あ、途中でXがnになっちまった……。
nが負なら最後に1足してくんなまし。
833デフォルトの名無しさん:2007/05/16(水) 07:36:56
>>830
Web上にある情報を、どれも正しいと思うな
Q=trunc(X/D +0.5) と計算したい筈なのに

m = 2*n-------------------1)
R = (2^m - 1) / D ---------2)
Q = (R * X + 2^n) >> m ------3)  から>>m を2のベキに変更して
Q = (R * X + 2^n)/2^m   Rに代入して
Q = ((2^m - 1) / D * X + 2^n)/2^m
Q = (2^m - 1) /2^m * X/ D + 2^(n-m)
   ~~~~~~~~~~~~~~~~      ~~~~~~~
(2^m-1)/2^m は1ではない
2^(n-m) は 0.5 ではない

これは単に使いたかった範囲で巧くいっただけだろ
834デフォルトの名無しさん:2007/05/16(水) 11:48:36
>>831,832
ありがとうございます。
一応、プログラムを組んで実験してみたのですが、
違う結果しか得られませんでした。
自分の理解が足りていないのかもしれません。
チェック用プログラムをアップしますので、確認していただければ幸いです。
http://kissho.xii.jp/1/src/1jyou6388.lzh

>>833
整数における割り算なので、やりたいのは四捨五入ではなく切り捨て、
つまりQ=trunc(X/D) です。
あと、使える値の範囲も>>830のページ上に書いてありますよ。
835デフォルトの名無しさん:2007/05/16(水) 16:28:10
>>834
831に書いた方法は、
R=(2^32 + F)/Dのとき、F=D-1では、多くのDで誤差が出る。
大事なのはRが割り切れることと、F/2^32が1bitより小さい正の値になること。
これが満たされない場合は、
R=(2^33+F)/Dとか、R=(2^34+T)/D-2^32なんかを使う必要がある。
(おまけに最後の例は最後に2^32分の補正が必要)
以上のようにR の決定がそんなに単純じゃないんだー。
だから定数除算って書いた。
っていうかハッカーのたのしみって本を買えばこういうことが書いてある。
興味あるならオススメ。
836デフォルトの名無しさん:2007/05/16(水) 17:04:05
>>830
http://swox.com/~tege/divcnst-pldi94.pdf

> Division by Invariant Integers using Multiplication
>
> 4 Unsigned division
> 5 Signed division, quotient rounded towards 0
> 6 Signed division, quotient rounded towards -∞
837デフォルトの名無しさん:2007/05/16(水) 18:06:56
ターゲットのチップにも寄るだろうけど、Intel系でって話なら普通に割り算命令使った方が速いんじゃね?
838デフォルトの名無しさん:2007/05/16(水) 18:13:07
>>837
実測してみないとなんともだけど割り算の結果を遅延評価するといいかもね。
839デフォルトの名無しさん:2007/05/16(水) 23:59:10
>>835
そうなんですか^^
ハッカーの教科書は持っていたのですがこんな話題があるとは知りませんでした。
ちょっと研究してみようと思います。

>>836
そのページを見てみたのですが、正確にやるのは結構大変なんですね^^
よく使う定数の除算のみを最適化して
あとはテーブルなりなんなりで処理することにしました。

>>837
http://pc11.2ch.net/test/read.cgi/tech/1168399966/99-
↑を見て欲しいのですが、x86のdiv命令は
おそらくもっとも効率化がめざましい命令の一種です。
最新の石ならばそのままが一番速いと思うのですが、
昔のCPUを考慮するとなかなかそういうわけにもいきません。
840デフォルトの名無しさん:2007/05/17(木) 00:08:18
>>839
この手の高速化は高級言語で記述してもコンパイラが糞なら無意味だし、そもそも可読性が落ちるので歓迎されない。
そうなるとアセンブラでの記述に限定されるわけだが、肝心のターゲットが書かれていないので議論するだけ無駄。
というかそもそもこのスレ向きの話題じゃない。
841デフォルトの名無しさん:2007/05/17(木) 00:55:37
なんでいまさら昔のPCのことを考慮する必要があるんだ
842デフォルトの名無しさん:2007/05/17(木) 01:26:26
>>840
その理屈で行くとハッカーのたのしみや>>836の内容は
まったく無意味ってことになりますね。
もちろんそんなことはなくて、
ビット演算やコンピュータ用数学(?)にはある程度の普遍性があります。
だから、ターゲットが明確に決まっていなくてもある程度は意味はあります。
(一応、特定アーキテクチャ専用の話題は避けたつもりなのですが、
div命令のレイテンシの話題はたしかにスレ違いですね^^)

>>841
ここでいう「昔のCPU」とは、Pentium4やAthlonXPクラスの
(多分)今一番普及しているCPUのことです。
さすがに考慮しないわけにはいかないです^^
843デフォルトの名無しさん:2007/05/17(木) 06:19:35
>>842
アセンブラ系スレなら有意義なんだろうが、それ以外の場所じゃ完全に無意味。
>ビット演算やコンピュータ用数学(?)にはある程度の普遍性があります。
これもない。現にシフト命令が異様に遅いコアが存在する。
5年10年前なら確かにその言い分は通用したが、複雑化したx86系CPUで
除算命令のような数クロックを稼ごうという時にターゲットも指定しないなんてありえないだろ?
844デフォルトの名無しさん:2007/05/17(木) 07:11:01
>>843
> アセンブラ系スレなら有意義なんだろうが、それ以外の場所じゃ完全に無意味。

んなことない。定数除算→乗算の最適化をやってくれない環境はあるし、自分
が仕事で使った RISC とかは加減シフトが実効 1 サイクル、乗算が 2 サイク
ルに対して除算命令は 33 サイクル(中で何やってるかわかるな。しかも除算
命令実行中に割り込みが入ると割り込み終了後に再度除算命令を実行し直す)。

> 現にシフト命令が異様に遅いコアが存在する。

後学のために教えてくれ。
845デフォルトの名無しさん:2007/05/17(木) 07:46:16
>>844
だから、それはアセンブラ系のスレでやってくれということでしょ
846デフォルトの名無しさん:2007/05/17(木) 08:04:05
負数での符号については423から、同じような事一度やってるからな。
速度だけの問題なら他でやって欲しい所。
847デフォルトの名無しさん:2007/05/17(木) 09:09:48
>>843
自分がもともと質問していたことは、除算→乗算+シフトの変換方法です。
(このスレのおかげで定数除算の最適化という分野があることを知りましたし、
特定の除算の最適化もできそうな感じです。
その点は本当に感謝しています)

確かに石によって演算速度の違いがあることは事実なのですが、
そういったこともふまえて、対象となるCPUをつらつら挙げて
CPU別の最適化方法をここで聞いた方がよかったのですか?
もちろん、自分的には大歓迎なのですが^^

>>846
収穫もあったことですし、自分はそろそろ去りたいと思います^^
848デフォルトの名無しさん:2007/05/17(木) 10:32:12
>CPU別の最適化方法をここで聞いた方がよかったのですか?
最適化スレもあればアセンブラスレもあるのに?
849デフォルトの名無しさん:2007/05/17(木) 10:51:11
特定のMPUの話じゃなければ充分メタな話出来るだろ…。
そういう命令セットの定義とかも数学の範疇じゃないのか?
850デフォルトの名無しさん:2007/05/17(木) 11:24:26
>>848
>CPU別の最適化方法をここで聞いた方がよかったのですか?
>>843
>除算命令のような数クロックを稼ごうという時にターゲットも指定しないなんてありえないだろ?
に対するレスです。
当然、自分の考えは>>848さんと同じで「それはスレ違いでしょ?」です。

>>849
命令セットの定義が数学の範疇だというのははじめて聞きました。
そうなのかもしれないのですが、
自分は特定アーキテクチャの最適化の話はここでするべきでは無いと考えたのです。
851デフォルトの名無しさん:2007/05/17(木) 11:45:33
何がやりたいから判らなくなってるが、ようするに、
R>0 Xは正負のint 範囲で

Q=trunc(X/D) を
Q= (int)(((long)X*(long)R + k) >> (long)m )

で計算したいが 適切な R と m を求むって事だろ?
852デフォルトの名無しさん:2007/05/17(木) 11:45:45
使える命令とその計算コストを厳密に定義した上で最適な計算を
求める問題ってのは、特に並列計算の分野で見ることがある研究だね。
実際のCPUくらいのコストモデルでやるのはかなり大変だと思うけれど
853デフォルトの名無しさん:2007/05/17(木) 11:46:45
ウザ…スレ違いだって言われてんだから素直に移動しろや。
少なくともここはアセンブラの話題振るスレじゃねえことくらいは理解してんだろ?
854デフォルトの名無しさん:2007/05/17(木) 21:17:53
離散的数の演算は数学だ。
ただ、その実装手段が大抵の場合アセンブラしかないだけ。
CPUの除算が遅いとか言い出したヤツが最初にスレ違い。
855デフォルトの名無しさん:2007/05/17(木) 23:01:21
車のスピード違反みたいだなw
除算は多倍長文字列でやった事あるけど、
別と比べて極端に難しかった。
856デフォルトの名無しさん:2007/05/18(金) 01:50:28
結局実装の話になると思うけどね。
ここがム板である限り。
857デフォルトの名無しさん:2007/05/19(土) 05:32:05
>>855
除算は四則のうち、唯一「トライ&エラー」的要素が必要になってくるからな。
「除法の定理」という、それほど単純ではない性質に則った結果にしなければ
いけないという縛りがその原因だろう。
858デフォルトの名無しさん:2007/05/19(土) 15:26:24
どっちかっつーと数学板向きの話題だな
859デフォルトの名無しさん:2007/05/21(月) 08:21:46
除算を自作でやってみると、0除算がなぜダメなのかが分かる。
860デフォルトの名無しさん:2007/05/21(月) 08:28:33
ニュートン法で除算を解く手順はどうなりますか?
861デフォルトの名無しさん:2007/05/21(月) 08:37:57
http://www.tensyo.com/urame/prog/ALGO.HTM
> a/b
>ニュートン法でcを更新すれば良い結果が得られます
> ニュートン法x-f(x)/f'(x)を適用するのに
> c*b-2^n=0 f(x)=b*x-2^n f'(x)=b とやったのではダメです
> b-2^n/c=0 f(x)=b-2^n/x f'(x)= 2^n/x^2
> x:=x-b*x^2/2^n+x=(x+x-b*x^2/2^n)=x+(x*(1-b*x/2^n));
> c:=c+(c*(2^n-b*c))/2^n と更新します

862デフォルトの名無しさん:2007/05/21(月) 08:44:08
>>859
除算をわざわざ自作しなくても簡単に判ることですが?
それとも、r = p / d を r * d = p に変形することもできないんですか?
863デフォルトの名無しさん:2007/05/21(月) 09:10:47
>>862
それだと
0 / 0 が定義出来てしまいますが?
864デフォルトの名無しさん:2007/05/21(月) 10:23:45
>>863
あんた馬鹿? dが0のときにpが0になるrは、一意には決まらないんですが。
つまり、0 / 0は数学的には解があるってこと。1 / 0とは事情が違う。
865デフォルトの名無しさん:2007/05/21(月) 11:06:44
>858
全くだなw
866デフォルトの名無しさん:2007/05/21(月) 13:17:07
北極の氷が融けて水面が上がるという話があるが、それがありえないのは
アルキメデスの原理を学んでいれば理解出来る筈だ。

実際にグラスに氷を入れて、水をすりきれ一杯にして、水がこぼれない実験をするまでは判らないのだろう

0で割るとどうなるかも、そりゃ数式を弄くれば予想は出来るが
それと、実際に計算させてみての実感とは違うものなのだろう
867デフォルトの名無しさん:2007/05/21(月) 14:43:02
海に浮かんでる氷が溶けても海面上がらないけど、
地面の上に乗ってる氷が溶けると海面上がるよな。

北極って、大陸ではないけど、
小さな島状の部分とか浅瀬もなく、完全に氷が海に浮いてる状態?
868デフォルトの名無しさん:2007/05/21(月) 14:50:03
実際に計算することと、計算過程をプログラミングすることは、違う。

>>867
どこまでを北極というかによって変わるが、基本的に北極海には問題になるほどの陸地はない。
勿論北米北欧ロシアの海岸線を含むわけだが、面積比で言えば問題にならない。
869デフォルトの名無しさん:2007/05/21(月) 15:19:40
問題なのはグリーンランドだよ
映画でアルゴアが言ってた

>>866
グラスに氷とかのすぐできるような実験もしないで
「本に書いてあるからそうなんです」って胸を張るような
中世の暗黒時代さながらの学問態度は取りたくないものだな
馬の歯は何本あるんだっけ
870デフォルトの名無しさん:2007/05/21(月) 15:47:10
http://www2.odn.ne.jp/seimei/essay271.htm

でも、氷河期が終わるんなら、氷床も無くなって当然では?
871デフォルトの名無しさん:2007/05/21(月) 16:23:24
>>866
>アルキメデスの原理を学んでいれば
うみのみずはしょっぱいです。でも、ほっきょくのこおりはしょっぱくないです。
872デフォルトの名無しさん:2007/05/21(月) 16:41:13
北極の氷でも海の水が凍ったものは 塩を含むだろう。
その上に降り積もった部分は違うだろうけど
873デフォルトの名無しさん:2007/05/21(月) 16:43:46
>>872
面白い考え方だな
874デフォルトの名無しさん:2007/05/21(月) 17:09:45
http://www.littlewaves.info/marine/wq_sgravity.htm
塩分濃度が35ppt で 温度15℃の時の比重が1.0263

つまり、塩が溶けると 1.035/1.0263 = 1.0085倍に膨張するといいたいわけ?
875デフォルトの名無しさん:2007/05/21(月) 17:15:29
>>874
つ[浮力]
876デフォルトの名無しさん:2007/05/21(月) 17:15:36
>>872
>海の水が凍ったものは 塩を含む
もしそうなら、半導体価格は今より何倍も高いはずだ。
877デフォルトの名無しさん:2007/05/21(月) 17:16:37
北極の氷はプログラムと関係あんのか?
878デフォルトの名無しさん:2007/05/21(月) 17:17:15
数学とは関係があるかもしれない。
879デフォルトの名無しさん:2007/05/21(月) 17:18:24
>>878
そんなことは聞いてねぇよ、北極の氷はプログラムと関係あんのかって聞いてんだよ
880デフォルトの名無しさん:2007/05/21(月) 17:20:10
>>879
あると思うの? んなことマジで聞いてるの?
881デフォルトの名無しさん:2007/05/21(月) 17:23:48
>>880
雑談でスレ埋めるな、って嫌味も通じない馬鹿か…
882デフォルトの名無しさん:2007/05/21(月) 17:31:33
そんな当たり前のことを承知の上でおちょくっていることにも気付けない?
883デフォルトの名無しさん:2007/05/21(月) 17:32:49
それもまた雑談なのだ。 同じ雑談なら、面白がる方がいいだろ
さて
http://blog.livedoor.jp/yuge15978/archives/8126608.html
のように、真水が凍った氷が溶けて水面が上がのが正しそうに見えるけど
氷が溶けると、塩水の濃度は下がるのだから、濃度が下がる事により容積は下がるので
その効果が打ち消す可能性もあり、やっぱり実験しないと判らない
884デフォルトの名無しさん:2007/05/21(月) 18:35:54
>>876
海氷の塩分濃度は10〜12gだそうだ。 海水の1/3程度だとはいえ、まだ塩分はそれなりにあるみたい
885デフォルトの名無しさん:2007/05/21(月) 18:42:39
>>871
たまに、海水は真水より比重が大きいのだから、
水銀の上で氷が溶ければ水面が上がるように、水面が上がるという人がいる。

でも、これは海水の主成分が水である事を忘れている。
氷が溶ければ真水ではなく、塩水になり、塩水は薄まる。
塩分濃度と比重は変化が小さい時には比例するので、
トータル水面は変わらないのさ。

極端に言えば、海水中の塩分と、水を別けて計算すればいい。
886デフォルトの名無しさん:2007/05/21(月) 20:59:20
ええと、
  氷の比重0.917
  水の比重1.000
海水の比重1.024
海水上に出る氷の容積は、1-0.917/1.024 = 0.104
氷が水になると1-1/1.024 = 0.023

一旦は水面は氷*2.3%だけ持ち上がるよね? その後塩水と混じると水面が下がるわけ?
887デフォルトの名無しさん:2007/05/21(月) 22:48:44
1
888デフォルトの名無しさん:2007/05/21(月) 22:52:39
2
889デフォルトの名無しさん:2007/05/21(月) 22:54:08
3
890デフォルトの名無しさん:2007/05/21(月) 22:56:04
4
891デフォルトの名無しさん:2007/05/21(月) 22:59:28
5
892デフォルトの名無しさん:2007/05/21(月) 23:06:04
6
893デフォルトの名無しさん:2007/05/21(月) 23:16:00
>>876
ヘンリーラウールの法則によると凍った海水には塩が含まれる
894デフォルトの名無しさん:2007/05/22(火) 00:05:39
7
895デフォルトの名無しさん:2007/05/22(火) 00:08:06
8
896デフォルトの名無しさん:2007/05/22(火) 00:17:38
9
897デフォルトの名無しさん:2007/05/22(火) 00:35:25
10
898デフォルトの名無しさん:2007/05/22(火) 00:57:15
11
899デフォルトの名無しさん:2007/05/22(火) 02:43:23
埋めようとしてるのは
はずかしいボケをしたお友達かな?
900デフォルトの名無しさん:2007/05/22(火) 08:17:30
スレ違いよりかはマシなんじゃないの
901デフォルトの名無しさん:2007/05/23(水) 08:18:11
痲疹よりは感染力低いな
902デフォルトの名無しさん:2007/06/02(土) 20:26:08
       __
 /\   /  /
 \ \ /  /______   _____     ___ ___    ___
  .\//  _______/ /__  __/ [][] _| |_| |__ _| |_
 /\ /__/ ______      / /     |    _  | |_  レ'~ ̄|
 \ \  /         /     |  |___      ̄|  | / / /   /| |
  .\/  / / ̄/ / ̄/  /      \__|     |  |  ̄ /_  /  | |_
   / ̄ ̄   ̄   ̄    ̄/              |_|     |__|   \/
 /\ ̄/ / ̄/ / ̄/  / ̄
/  / /   ̄   ̄ ̄   ̄/     
\/   ̄ ̄ ̄ ̄ ̄/  / ̄        2007 Summer @ Shou-nan
          / ̄  /            http://www.2ch.net/sea/
           ̄ ̄
903デフォルトの名無しさん:2007/06/04(月) 19:59:53
このスレ vol3 は必要ですか?
904デフォルトの名無しさん:2007/06/04(月) 21:16:03
次スレの心配は950超えてからでいいよ
905デフォルトの名無しさん:2007/06/07(木) 14:35:14
去年からはじまった totoBIGというクジがあります。
これは 引分、勝ち負け を0,1,2  の3値で表現して、14試合分を ランダム発券するというものです
売り上げの40%が一等原資、10%を2等以下で別けます。
300円でキャリーが無ければ上限3億円 キャリーがあれば6億円が1等賞金の上限です

でいつ買えば得なのか、還元率を求めたいと思いました。

2等以下はまず平均に出るとして 300円中 30円 とし、
1等原資は 売り上げX口として300*X*0.4+CY (CYはキャリー金額)
1等が1口以上出る確率は(1-(1-1/3^14)^X なので

30+(300*X*0.4 +CY)*(1-(1-1/3^14)^X)/X

と求まります。
が、上限が6億なので、155円以上の結果は正しくないと思えます。
どういうプログラムを作ればいいでしょう?
906デフォルトの名無しさん:2007/06/07(木) 15:14:24
980超えてからでOK
907デフォルトの名無しさん:2007/06/07(木) 15:56:57
>>905
P = 1/3^14 として
X 中 1個が出る確率* 当選金
X 中 2個が出る確率* 当選金
X 中 3個が出る確率* 当選金
を2項分布で確率を求めて累積したらいいんじゃないの?

もしかして、nCr とかオーバーフローするのかな?
ならポアソン分布で近似すればいいって、これも オーバーフローするか・・・・困ったね
908デフォルトの名無しさん:2007/06/07(木) 16:06:19
電卓で計算させたら、
やっぱりポアソン分布の方がオーバフローし易いみたいだな。

n個中k個の確率は2項分布なら
n!/(k! * (n-k)!)*p^k*(1-p)^(n-k) で、階乗をそのまま計算したらオーバフローするから
kの大きい所まで計算する必要はないから、 for 文で計算すればオーバーフローしないんじゃないかな

と無責任に言ってみる
909デフォルトの名無しさん:2007/06/07(木) 17:26:18
>>905
いつ買っても損をする。
なぜなら賭博とはそういうふうに出来ているから。

totoがダメだったのは、賞金頭割りだから順当な結果の回は1等数千円とかザラ、荒れるとビックリするほど当らない。
BIGはどうなるかわからんけど、totoで客離れちゃったからキャリー期待するのは難しいんじゃないかなぁ。
計算すんのは楽しいけどねw
910905:2007/06/07(木) 18:38:35
>>908
ありがとう。その式で計算させました。 JavaScriptですが
function combination(n, k)
{
var i,c=1;
for(i=1;i<=k;i++){ c=c*(n+1-i)/i;}
return c;
}
function P(n,k)
{
var p0=1.0/Math.pow(3, 14);
if(k==0) return Math.pow( 1-p0 ,n );
return combination(n, k) * Math.pow(p0,k) * Math.pow( 1-p0 ,n-k );

}

function kangen(CY , X)
{
var i;
var gensi=X*300*0.4+CY;
var umax=6E8;
if(CY==0) umax=3E8;//キャリーが無い時は上限3億円
var sum=0;
for(i=1;i<20;i++) { //iが1当の数
var a=Math.min(gensi/i,umax); //1等の配当は原資を当選数で割った金と上限の小さい方
p=P(X,i);
sum += i*a*p;//当選金総額x確率を掛算
if(p<1E-6)break;//計算誤差が6桁以下になれば終わり
}
return 30+sum/X;
}
911905:2007/06/07(木) 18:43:51
計算結果は、
キャリー 100万口 200万口 300万口 400万口 500万口 600万口 700万口 800万口 900万口
  0億円   53円  71円  79円  82円  86円  86円  88円  89円  89円
  1億円   72円  88円  101円  112円  113円  115円  117円  120円  123円
  2億円   90円  105円  117円  119円  119円  121円  123円  126円  127円
  3億円   109円  122円  126円  124円  125円  126円  129円  130円  130円
  4億円   128円  134円  130円  129円  130円  132円  134円  133円  133円
  5億円   144円  137円  135円  134円  136円  138円  136円  136円  136円
  6億円   145円  140円  139円  140円  142円  140円  139円  139円  139円
  7億円   147円  144円  143円  145円  143円  142円  142円  142円  143円
  8億円   149円  147円  148円  147円  145円  144円  144円  145円  144円
  9億円   151円  150円  150円  148円  147円  146円  147円  147円  146円
 10億円   153円  153円  151円  149円  149円  149円  149円  148円  147円
 11億円   155円  153円  152円  151円  150円  151円  150円  149円  148円
 12億円   155円  154円  152円  152円  152円  151円  150円  150円  150円
キャリーが4億でも還元率は50%の 150円ありません。
そして、いくらキャリーが増えてもやっぱり155円から還元率は増えません。
9億くらいキャリーが溜まって、やっと50%の還元率です。

計算があってるとすればヒドイ設計のクジです。
912905:2007/06/07(木) 18:50:06
あ、全体は、 htmlファイルに

<HTML><HEAD>
</HEAD>
<BODY>
/////////////// この間に >>910 のコードを入れる。///////////

var x,y;
document.write('<TABLE BORDER><TR><TD>キャリー');
for(x=100;x<1000;x+=100)document.write('<TD>'+x+'万口' );
for(y=0;y<20;y=y+1)
{
document.write('<TR>');
document.write('<TD ALIGN=RIGHT>'+y+'億円</TD>');
for(x=100;x<1000;x=x+100){
document.write('<TD ALIGN=RIGHT>'+Math.round(kangen(y*1E8,x*1E4))+'</TD>');
}
document.write('</TR>');
}
</SCRIPT>
</BODY>
</HTML>
913デフォルトの名無しさん:2007/06/07(木) 18:50:42
>>911
宝くじって大体そんなもんだよ。
もっとひどいこともある。
競馬は還元率75%らしいけどね。
914905:2007/06/07(木) 19:02:03
ヒドイと思ったのは、キャリーが少ない時に還元率が異常に悪い事です。
宝くじやロトよりも悪いです。

これでは、キャリーが8億超えないと買う気になれず、
だから売れないのでしょう。

14試合ではなく13試合にしておけば、1等の平均賞金は2億程度になりますが
5億キャリーすれば還元率が100%を越える事になり、もっと面白いクジになったでしょうね。
915デフォルトの名無しさん:2007/06/07(木) 20:30:17
>>914 そんな設定のくじは売り手が拒否する
916デフォルトの名無しさん:2007/06/07(木) 20:47:34
還元率なんて50%くらいが当たり前なんじゃ。
微塵でも還元率が100%超えちゃう可能性があるものはギャンブルとしてはちょっとどうかと。
917905:2007/06/07(木) 21:08:52
>>916
還元率が100%超えてる間は、当然みんなブッコムでしょ?
だから、心配は要らない。 というか売れてみんなハッピーだと思うけどな
13試合にすると平均は1億9千万だけど、この効果で売り上げが上がるだろうから
1等6億は逆に出易かったろう。

14試合にしたせいで、>>911のように全然面白くないクジになってしまったかと

だってキャリーが11億無いと、買うのは馬鹿ってクジだもの。
918デフォルトの名無しさん:2007/06/07(木) 21:16:44
作る側が馬鹿を釣るという意図しかもってないってのがよく分かってよかったじゃん
919デフォルトの名無しさん:2007/06/07(木) 21:21:15
くじの価格設定には理論付けが一応あるけど、
そこでは買い手が馬鹿であることを仮定するからねえ。
920デフォルトの名無しさん:2007/06/07(木) 21:28:57
キャリー4〜5億から、サマージャンボあたりと並ぶんじゃない?
そもそもマジでもうけたい人は宝くじなんてしないさ。
921905:2007/06/07(木) 21:37:32
まあ確かにそうだな。 馬鹿を釣りたいって事なんだろけど、
馬鹿でも欲は持ってるから、還元率が宝くじの45%より低いと買わないだろう。
回せる財布は限られてるからね。

で、買われないからキャリーが溜まらないの悪循環。
だから去年末からはじめて、1等がまだ2回しか出ていない惨状。

せめて、完全ランダムじゃなく、全部の組み合わせ 3^14 をシャッフルして
発行する方法にしておけば 480万口に1つは確実に1等が出るから
ずっと早くリミットの155円に達するのに、馬鹿だよね。
922デフォルトの名無しさん:2007/06/07(木) 21:53:46
で、あんたはどうしたいの。文句言いたいだけだったらチラシの裏にでも書いてね。
具体的になんか変えたいならこんなとこに書いてないで適切なところに行ってね。
923デフォルトの名無しさん:2007/06/07(木) 22:18:49
自分の能力を関与する余地の無いギャンブルは、基本的に損するだけなのよ。
まず、胴元が儲けを確保してから残りをどう分配するかっていう事を考えてる訳だから。
計算とかするまでもなく、ね。

BIGだろうがジャンボだろうが確率なんてあって無きがごとしなので、どっちが有利とかないな。
一枚も買わなければ確率0だから、とにかく一口買って、リターンがデカイ方に張るのが賢いやり方。
ジャンボを10枚セットで買う奴とかはどうかしてると思う。

もっとも、一口買う時点でノータリンの貧乏人と言われればそれまでだが。
924905:2007/06/07(木) 22:37:02
まあ、そりゃ既に1億くらい資産持ってるなら別だろうけど
資産200万以下で、貯蓄中なら、収入の2%程度までを 還元率が悪くても
億くらいのリターンのある宝くじに入れるのは悪くないと思うんだ。
コツコツ貯めるだけだと老後の資金でせいっぱい、生きてるだけでせいっぱいだもんね。

でも、そういう目的だと、宝くじの3等とか4等っていらないんだよね。
トトBIGは1等に40%集中だから、いいかと思ったけど、やっぱりダメだね

925デフォルトの名無しさん:2007/06/07(木) 22:42:10
totoBIGの売り上げが落ちた理由は、還元率どうこうじゃなくて、
14試合中引き分けが5試合以上とか、強いチームが負けまくってるとか、
つまりそういう、「見た瞬間にはずれがわかるくじ」が氾濫しまくってることが原因だと思う。
926905:2007/06/07(木) 22:47:07
そこらへんは、ランダムに発券されてるのを信じるなら問題ないと思うのだけど
まあ、最近は役所仕事は信じられないからアレだけど

それより >>911 の結果を見てしまうと
キャリーが9億以下の時に買う気になれない方が大きいと思うのだが?
300円で5円くらいは損しても許せるが、それ以上は俺は許せんのだけど
927デフォルトの名無しさん:2007/06/07(木) 22:56:57
本当に儲けたい人は宝くじなんて買わない。
株でも貯蓄でもいいけど、還元率が100%を超える金融商品なんてそれこそたくさんある。

じゃあ何でわざわざ宝くじを買うかっていうと、
やっぱり一時であっても夢を見れるからだと思うんだよね。
「もし3億当たったら何買おう?」とか考えるだけでも楽しいしwww

ただ、totoBIGの場合はそれが難しいみたいだね。
そもそも1/3の確率で引き分けが出るなら14試合中4試合が引き分けになるけど、
その時点でほとんどはずれだって分かる。
928905:2007/06/07(木) 23:10:56
>>927 それは金持ってるから言えるんだよ。
俺はこれから貯めるわけだからさ。

でもさ、株も確実に儲かるわけじゃないでしょ?
というか小金で株を景気の良い今買って景気が悪くなって金必要になって売ったら損するわけだしさ、
貯金は、サトウキビ燃料のせいで物価上がってインフレになりそうな今は目減りするだけのようだし
といって、土地は買えるだけ金ないしで、

まあ、ほんと、勉強でもして自分に投資でもするしかないけど
投資しても使い捨てられるだけのような感じだし。
929デフォルトの名無しさん:2007/06/07(木) 23:44:12
スレ違いに気づけ馬鹿
930デフォルトの名無しさん:2007/06/08(金) 01:05:59
>>928
いや、貯める目的ならなら余計に宝くじはやめとけ。
貯蓄なら確実だし、株だって還元率50%は無いから安心しろw
931デフォルトの名無しさん:2007/06/08(金) 03:02:59
この外基地はこのスレで何がしたいの
熊が人間に問いかけている
932デフォルトの名無しさん:2007/06/08(金) 03:17:55
新しいタイプの荒しだなw
プログラムが当たり前に書けるレベルの知能があるなら、完全ランダムの賭博はしないだろ。
そのへんが全く理解出来てない時点で905の程度が知れる。
933デフォルトの名無しさん:2007/06/08(金) 12:49:48
>>911
それで騙されて買う馬鹿がいるんだから
胴元にしてみればすばらしい設計ではないか
934デフォルトの名無しさん:2007/06/11(月) 09:04:43
いくつかの数値を32段階に量子化して表現するときって
(最大値-最小値)/(32-1)で32段階になると思うのですが、
これ、あってますか・・・?
935デフォルトの名無しさん:2007/06/11(月) 09:17:25
あってるかといわれても、そういう定義を選ぶかどうかの問題では?
936デフォルトの名無しさん:2007/06/11(月) 09:22:46
少なくとも31で割るのは間違ってるとは言える
937デフォルトの名無しさん:2007/06/11(月) 09:37:51
0と31を含めるのなら、それで32段階では?
938デフォルトの名無しさん:2007/06/11(月) 14:42:47
32で割ってから1足す方が良いですね
939デフォルトの名無しさん:2007/06/11(月) 15:28:54
ええと 32で割るというのは、何を割るのでしょうか?

入力をXとして
trunc( (X-最小値) / (最大値-最小値)* (32-1)) とやるか
round( (X-最小値) / (最大値-最小値)* 32 ) とやるか という話?

940デフォルトの名無しさん:2007/06/11(月) 15:36:42
量子化後の値域が [0 .. 31] なのか [1 .. 32] なのか [0 .. 32] なのか
941デフォルトの名無しさん:2007/06/11(月) 17:15:56
X[0.0 〜 2.0]の値を取る小数点数をY[0 .. 31]の整数型に量子化することを考える。
普通に考えると、こうなる。
(1) Y = trunc(X * 32 / 2.0) (X が 2.0 を含まない場合)
(2) Z = X * 31 / 2.0, Y = trunc(Z) (X が 2.0 を含む場合)
(3) Z = X * 31 / 2.0, Y = trunc(Z + 0.5) ((2)だとXがきっかり2.0のときしかYが31にならないので少し改良)

X が 2.0 を含まない場合は全く問題ない。
しかしそうで無い場合は、(3)を使っても
0.0 <= Z < 0.5 → Y = 0
0.5 <= Z < 1.5 → Y = 1
30.5 <= Z <= 31.0 → Y = 31 (Zの最大値は31のため)
つまりY=0, 31の場合だけ、とれるZの範囲が半分になってしまう。
この場合の量子化を正確に行うのは少し難しい。

改良案として、
 Z = X * (32 - delta) / 2.0 (deltaは適度に小さい数。Xが整数値ならdelta = 1)
 Y = trunc(Z)
としてYを計算する方法がある。
つまり、0.0 <= X <= 2.0 の値を 0.0 <= Z <= 31.99999... に写像してしまえばいい。

もう一つは、X = 2.0 や Y = 32 の値だけを特別扱いする。
つまり、
 Y = trunc(X * 32 / 2.0)
 if (Y == 32) Y = 31 (Y -= (Y >> 5))
としてしまう方法もある。
942デフォルトの名無しさん:2007/06/13(水) 17:57:43
実数の定義域が
[0, 32)
なんだから

量子化後は
[0, 31]
でいいよ
943デフォルトの名無しさん:2007/06/13(水) 18:23:44
> (X が 2.0 を含まない場合)
それ[0.0 〜 2.0]と書かない
944デフォルトの名無しさん:2007/06/14(木) 01:06:42
X が 2.0 を含まない場合は問題ないが、[0.0 〜 2.0] の場合は問題がある。
って言ってるんじゃないの。
945デフォルトの名無しさん:2007/06/14(木) 02:46:10
どうみても>941が表記わかってないだけだろ。
946デフォルトの名無しさん:2007/06/24(日) 20:14:41
画面の前のわからない僕ちゃんへ、ということでとりあえずWikipediaでいいかな
http://ja.wikipedia.org/wiki/%E5%8C%BA%E9%96%93_%28%E6%95%B0%E5%AD%A6%29
947デフォルトの名無しさん:2007/08/08(水) 07:42:25
保守
948デフォルトの名無しさん:2007/08/12(日) 03:44:24
板違いならすいません。
どうしてもわからないので質問したいのですが
DirectXで3Dのゲームを組んでるのですが、ある点からポリゴン面までの
最短距離をはかりたいのですが、数学的知識があまりなくうまくいきません
なんとか距離をはかる方法はないでしょうか?

ポリゴン面はとりあえず3点で構成されているただの一枚のポリゴンです。
949デフォルトの名無しさん:2007/08/12(日) 07:01:48
>948
ある点=点P、ポリゴン面=僊BCとする
次の3通りの可能性がある
1.面上の何処かが一番近い
  >面の法線ベクトルで点Pを通る直線がポリゴンと交わる時、交わる点が一番近い
2.3辺の線上の何処かが一番近い
  >1を満たさず、各辺と点Pからなる三角形の内角が90度を越えない場合、点Pと該当する辺に垂直に交わる点が一番近い
3.3頂点の何処かが一番近い
  >1と2を満たさない場合、3頂点のうち一番距離が近い頂点が一番近い
950デフォルトの名無しさん:2007/08/12(日) 07:12:19
|(PA×PB)・PC| / |AC・BC|
とかのほうがかえって早いとかは?
951デフォルトの名無しさん:2007/08/12(日) 19:14:06
丁寧なレスありがとうございます。
両方試させて頂きます。
ただ、今のところ面の法線をだして、面上の交点をだそうと試みてるのですが、
なかなか上手くいきません・・
とにかくもう少しがんばってみます
952デフォルトの名無しさん:2007/08/13(月) 05:37:18
なんとか上手いこといきました、ありがとうございました。
953デフォルトの名無しさん:2007/09/11(火) 11:29:54
保守上げ。 970くらいで次スレたてるよていです
954デフォルトの名無しさん:2007/09/12(水) 11:37:52
最近、離散数学のさわりをやって感動した者です。
商業系の高校行って、大学進学したもんで普通科高校でやる数学I-III、A-Cを
まったくやってないんだけど、中学3年の証明でつまずいてたヤツが、新課程の
数学I-III、A-Cを独学するに辺り、最適な参考書、数学攻略本は何があるでしょうか。
955デフォルトの名無しさん:2007/09/12(水) 11:55:15
学校の図書館で、読めそうなのを週に何冊か借りては読んだらいいと思うよ
面白そうなの1冊、単なる小説1冊、ちょっと難しそうなの1冊として
毎週続くようにね。
956デフォルトの名無しさん:2007/09/13(木) 01:03:06
読み物なら数学ガールなんて面白いぞ。
957デフォルトの名無しさん:2007/09/13(木) 01:27:06
>>956
俺もちょうど今日会社で数セミの紹介記事見て面白そうって思ったところだ
アマゾンで買ってみるか
958デフォルトの名無しさん:2007/09/29(土) 05:14:16
なにかと思って調べてみたらPerlの糞本だしてた結城浩か・・・イラネ
959デフォルトの名無しさん:2007/10/10(水) 18:28:53
質問です。

離散データを微分したいのですが、
C/C++系で微分ライブラリって何がありますか?

オイラーみたいな?
960959:2007/10/10(水) 18:35:40
良く知らないのですが、

単純差分が1次、Eulerが2次、Taylorが3次、Runge-Kutteが4次、であってまつか?
961デフォルトの名無しさん:2007/10/10(水) 18:58:15
そんな詳しくもないけど、ルンゲクッタ法とかオイラー法とかって
数値微分じゃなくて、微分方程式の解、要するに求積の方のアルゴリズムじゃない?

微分の方は、離散点のデータしかないとなると、
差分近似するか、適当な関数で補完して微分するかくらいしか思いつかない。
962デフォルトの名無しさん:2007/10/10(水) 22:05:41
963959:2007/10/11(木) 08:36:05
全然わかんないよ(つД`。)ウワアン
964デフォルトの名無しさん:2007/10/11(木) 09:54:37
離散データから微分なんて出来る筈が無いだろ。
fs/4以上含まないとしても、荒い近似しか出来ない。
965デフォルトの名無しさん:2007/10/11(木) 14:04:49
連続の場合に微分、離散の場合は差分って言うんじゃないのか。
959は近似をしたいのか、差分を出したいのか、なんなのか。
966959:2007/10/11(木) 14:25:08
実は2階微分というのが分からなくてオイラーかな?とか色々考えたんですが、

2階微分って、もしかして、2回微分するってことですか?

それで微分とは等間隔の場合、隣の値と差分取るだけで良いのですか?
967デフォルトの名無しさん:2007/10/11(木) 14:30:21
なんというか、数学勉強しなおしたほうが。

>2階微分って、もしかして、2回微分するってことですか?
そう。
何回微分したかは rank、階っていう。

>それで微分とは等間隔の場合、隣の値と差分取るだけで良いのですか?
差分とるだけでいいというか、差分で近似するしか手がない。
サンプリング定理を満たすようなデータ列なら、
補完っていうかローパスフィルタで連続信号にできるから
それ使って数値微分(これも差分近似するだけだけど)で精度はあげれるけど。
968959:2007/10/11(木) 14:32:04
有難うございましたm(。。)m
969デフォルトの名無しさん:2007/10/11(木) 19:51:43
970デフォルトの名無しさん:2007/12/02(日) 00:53:44
3Dプログラミングをやる場合、最低でも必要な数学の知識は何?
971デフォルトの名無しさん:2007/12/02(日) 00:57:38
まず、何が必要なのか自ずとわかる能力は必要だと思う
972デフォルトの名無しさん:2007/12/02(日) 01:06:18
数学と言ってもせいぜい学校数学だろ
973デフォルトの名無しさん:2007/12/02(日) 01:22:29
Matrix
974デフォルトの名無しさん:2007/12/02(日) 01:23:00
>>971
線形代数しか思い浮かばんぜ
975デフォルトの名無しさん:2007/12/02(日) 01:25:31
新スレどうする?
976デフォルトの名無しさん:2007/12/02(日) 01:26:26
三角関数
運動方程式を解くための微分方程式についての知識
977デフォルトの名無しさん:2007/12/02(日) 01:41:08
>>975
立てようと思ったが、関連スレが存在するのかすらわかんね。
978デフォルトの名無しさん:2007/12/02(日) 01:43:30
>>977
プログラミングの為の数学と算数 vol.2

プログラムに必要な数学、算数に関する話題について
語りましょう。TIPS/Q&Aスレです。

関連板:
http://science6.2ch.net/math/

これでいいんじゃ?
979デフォルトの名無しさん:2007/12/03(月) 19:08:46
皆さん市販の数値計算ライブラリ使っていますか?
それとも自分でつくっていますか?ガンマ関数とかいろいろ
ライブラリ作るの面倒くさいよ・・・
購入したほうがいいのかな・・・
980デフォルトの名無しさん:2007/12/03(月) 19:33:10
boostとか使ってる
981デフォルトの名無しさん:2007/12/05(水) 00:37:19
フリーのライブラリ使えばいいんじゃね?
982デフォルトの名無しさん:2007/12/06(木) 00:29:06
24時間経過寸前age
983デフォルトの名無しさん:2007/12/06(木) 01:03:12
流すか
984デフォルトの名無しさん:2007/12/06(木) 18:10:28
10000000
↑上位1ビットの値 というのは一番左端の値であり、1ですか?
985デフォルトの名無しさん:2007/12/06(木) 18:20:51
8bitの値ならそうですね
986デフォルトの名無しさん:2007/12/06(木) 21:48:31
上と下の区別もつかんのか
987デフォルトの名無しさん:2007/12/06(木) 23:51:46
馬鹿、そっちは左だ
988デフォルトの名無しさん:2007/12/06(木) 23:57:44
おい!
左をみろ!!→→→→→→→→→→→→→→→→→→→→→→→→→→
989デフォルトの名無しさん:2007/12/07(金) 00:37:15
>>984
十進数でも、
1234なら、1(千の位)が一番上の桁でしょうや。
990デフォルトの名無しさん:2007/12/07(金) 04:23:48
MSB
LSB
何の略だっけ
991デフォルトの名無しさん:2007/12/07(金) 09:56:31
Most (Least) Significant Bit
992デフォルトの名無しさん:2007/12/07(金) 22:08:45
LE、BEと交じるとどっちがどっちだかわからなくなるんだよなー
993デフォルトの名無しさん:2007/12/07(金) 22:28:55
BSE って何の略だっけ
994デフォルトの名無しさん:2007/12/07(金) 22:37:49
Bin So Einsam
ドイツ語で自分は孤独だという嘆き。
995デフォルトの名無しさん:2007/12/08(土) 06:07:08
.
996デフォルトの名無しさん:2007/12/08(土) 06:07:38
.
997デフォルトの名無しさん:2007/12/08(土) 06:08:09
.
998デフォルトの名無しさん:2007/12/08(土) 06:08:39
.
999デフォルトの名無しさん:2007/12/08(土) 06:09:10
.
1000小倉優子 ◆YUKOH0W58Q :2007/12/08(土) 06:23:20
1000ならジュースでも飲むか
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。