1 名前:デフォルトの名無しさん [04/09/05 16:22] プログラムに必要な数学、算数に関する話題について 語りましょう。TIPS/Q&Aスレです。
261 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 01:42:08 ] >>260 すばらしいぃ!! 疑問が晴れました。ありがとうございます。
262 名前:デフォルトの名無しさん [2005/09/13(火) 01:54:25 ] 結城さんの「プログラマの数学」は、 >>245 の「コンピュータの数学」グレアム著、 の初歩を紹介した感じの内容だね。 なんつーか、この人わかりやすい比喩を考えるのがうまい。 www.amazon.co.jp/o/ASIN/4797329734/
263 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 11:56:16 ] ワイルは晩年、直感主義数学を主張してたらしい 本当に基礎的な証明でも膨大な時間をかけて講義してたらしい
266 名前:デフォルトの名無しさん [2005/10/05(水) 12:11:37 ] >>263 そのレベルなら、俺が師匠の手伝いしておごってもらった時に書いた本でも作ったな てか、初歩の数値解析関係で、差分方程式のサンプルにまず100%含まれてる 後は、境界条件と制約条件をどうするかだけしかないな
267 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 02:17:46 ] 263です 例で書いた数式1次元ですね。すいません んー、3次元の非定常のプログラムがなかなかなくて・・・ 参考書はほとんど二次元で終わってまして
268 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 17:21:19 ] 楕円方程式で、 x^2/a^2 + y^2/b^2 = 1とネットで調べると出てくるのですが、 円の中心(本来はそういわないかもしれない)が(0,0)で ない場合の式は、この式じゃないような気がするんですが。
269 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 17:26:54 ] それは標準形という奴だからでは?
270 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 17:34:17 ] つまり、その式は原点が中心の円を縦・横に引き伸ばした場合の式 さら平行移動させたり、回転させたりすると、当然複雑になるけど、複雑にしてもメリットないでしょ? 実際に楕円描く時はその式では不便で、sin/cosの媒介変数型使うだろうし ・・・・いや、実際に楕円描く場合はベジェ曲線で近似するだろうな
271 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 18:28:16 ] >>268 応用が効かない言い方をするならば、 中心(c,d)なら(x-c)^2/a^2+(y-d)/b^2=1と考えていい。
272 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 21:49:37 ] だから応用の効かないと言ったんだが
274 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 20:36:14 ] 天文物理をやっていると焦点と離心率で楕円を書きたくなる罠。
275 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 22:27:04 ] 紐と画鋲と鉛筆で描くみたいな感じ。
276 名前:デフォルトの名無しさん mailto:sage [2005/10/19(水) 23:05:17 ] >>268 一応言っておくと「楕円方程式」と「楕円の方程式」は別物ですよ ここで言ってるのは前者ですね
277 名前:デフォルトの名無しさん mailto:sage [2005/10/19(水) 23:06:43 ] 違った後者だ
278 名前:デフォルトの名無しさん mailto:sage [2005/10/21(金) 20:14:16 ] いや、実は前者。俺の言うことを信じろ。
279 名前:デフォルトの名無しさん mailto:sage [2005/10/21(金) 23:53:52 ] 皆だまされるな!正しくはもちろん後者だ。
280 名前:デフォルトの名無しさん mailto:sage [2005/10/22(土) 00:56:25 ] 俺の言うことだけが本物だ。信じろ。 前者に決まっとる。
281 名前:デフォルトの名無しさん mailto:sage [2005/10/22(土) 03:32:24 ] 本当の事言うと。 どっちもどっちw
282 名前:デフォルトの名無しさん mailto:sage [2005/10/24(月) 13:41:54 ] 真実は闇の中…。
283 名前:デフォルトの名無しさん mailto:sage [2005/10/24(月) 21:16:45 ] 問:>>276-282 のなかで嘘つきを断定せよ。 参考:>>268
284 名前:デフォルトの名無しさん mailto:sage [2005/10/26(水) 14:03:53 ] 今だから真実を告白したい…>>283 こそが嘘つき。
285 名前:デフォルトの名無しさん mailto:sage [2005/10/26(水) 23:53:36 ] >>284 嘘つきになる要素が・・・
286 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 13:49:13 ] 俺こそが嘘つき。
287 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 14:31:05 ] この中に1人、明らかな矛盾を述べたものが居るっ!!!
288 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 15:00:16 ] >>287 お前やろ?
289 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 22:38:31 ] ヴルルル、自分は絶対嘘なんかついてますねん。
290 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 00:58:51 ] バカっていったやつがバカ
291 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 01:04:29 ] >>289 お前やー!!
292 名前:291 mailto:sage [2005/10/28(金) 01:05:14 ] …決め台詞で割り込まれた orz
293 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 01:10:03 ] おまえら落ち着け… 素数を生成するコードを書いて落ち着くんだ…
294 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 10:58:22 ] やれやれだぜ…
296 名前:デフォルトの名無しさん mailto:sage [2005/11/04(金) 02:06:55 ] だぜ、って懐かしいよな。
297 名前:デフォルトの名無しさん mailto:sage [2005/11/04(金) 22:23:21 ] >>296 「だぜ」に突っ込むか・・・。 「やれやれだぜ」自体が漫画の台詞。 ジョジョ。
298 名前:デフォルトの名無しさん mailto:sage [2005/11/04(金) 23:27:22 ] 「だぜ」って「学校に行こう」に出てたヤシだろ?
299 名前:判定 mailto:sage [2005/11/08(火) 14:02:29 ] >>297-298 どっちも知る人ぞ知るってな話題だが>>298 の方がよりマイナーと思われ。
300 名前:& ◆BSGaog1Z0Q mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/11/16(水) 22:10:39 ] >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 名前:デフォルトの名無しさん mailto:sage [2005/11/16(水) 22:18:18 ] >>302 どこで引っかかった?何が変?
304 名前:デフォルトの名無しさん mailto:sage [2005/11/16(水) 22:22:32 ] 「素数は無限に存在する」ことの証明だから、 「qが合成数」も「素数が有限」も否定していいんだよ。
305 名前:302 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/11/16(水) 22:41:27 ] >>305 この推論は「素数が有限個しかない」という偽の前提があるから、反例を持ち出してもしょうがない。 > q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである。 これは、「合成数は有限個の素数の積で表される」という定理と「素数はpiしかない」からの帰結。
308 名前:302 mailto:sage [2005/11/16(水) 22:49:50 ] 素数が有限個しかないとは思ってませんが、 > q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである そうでない場合もあるとは思いませんか? そして、その場合についても論ずるべきでは?
309 名前:デフォルトの名無しさん mailto:sage [2005/11/16(水) 22:57:11 ] >>308 だから、>>307 に書いたように、 > q が合成数だとすると q は pi のいずれかを用いて積の形に表されるはずである は「素数がpiしかない」という仮定の下で証明できる。 証明できるからには、これが偽である可能性を検討する必要はない。
310 名前:302 mailto:sage [2005/11/16(水) 23:37:43 ] では、エウクレイデスによる証明は、 >「合成数は有限個の素数の積で表される」という定理 を前提としているわけですか?
311 名前:デフォルトの名無しさん mailto:sage [2005/11/16(水) 23:45:05 ] >>310 群論か環論の本を読んでくださいな、素元、既約元のあたりです。あとできれば背理法についてもね。
312 名前:デフォルトの名無しさん mailto:sage [2005/11/16(水) 23:57:48 ] >>310 細かい違いはあるかも知れない(例えば、その定理の代わりに「合成数は素因数を持つ」でも十分)けど、 基本的にはその通りだと思う。
313 名前:302 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 00:19:56 ] おまいらプログラマらしく素因数分解のアルゴリズムでも考えよう 128bit暗号を解読できるくらいのを
315 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 00:31:12 ] >>313 ちょっとおかしいところ(「piを超える素数」じゃなくて「pi以外の素因数」というべき)があるけど、大筋としてはそれでもいい。 でも、そう書き換えたところで推論の構造はほとんど変わっていないし、 「合成数は素因数をもつ」ことに依存しているのも変わらない。
316 名前:302 mailto:sage [2005/11/17(木) 00:46:27 ] そうですか。 自分なりに納得できて助かりました。 ありがとうございました。
317 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 01:16:31 ] 代数学か。懐かしいな。
318 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 11:36:57 ] >>311 いや、真っ先に背理法を理解すべきでは?
319 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 12:27:31 ] 大きくなれよ
320 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 13:05:04 ] 背理 背理 振れ 背理法〜
321 名前:302 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 16:08:50 ] 2進数で表すと分かるかも。doubleの内部ビット表現を調べてみな。
323 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 17:01:31 ] >>321 浮動小数点表現の仮数部が 52 ビットのとき、精度は 15.6 桁。 …って、計算機の初歩の初歩だろうに。
324 名前:302 mailto:sage [2005/11/17(木) 17:11:45 ] >>322 レスありがとうございます。 2進数の表し方がわからなかったので、 16進数で見てますが、所々おかしなところがあり、 手直ししています。 >>323 そうでしたか、出直してきます。
325 名前:デフォルトの名無しさん [2005/11/17(木) 21:07:29 ] SA(シミュレーテッド・アニーリング)法で 巡回セールスマン問題解くプログラム作ってるんですけど このスレでいいっすか? それとも数学板に行ったほうがいいですかね? www.watanabe.nuie.nagoya-u.ac.jp/member/jien/lectures/tokuron/toku5.pdf ↑でとりあえず理屈はわかったんだけど 摂動行列の決め方がわからん。 ていうか あるルート候補から次のステップのルート候補作るときに 全部シャッフルしたらさすがに効率悪そうだし 隣同士入れ替えただけだともろ局所解に引っかかりそうだし。 なんか巡回セールスマン向けのうまい方法 (あるルートXnからX(n+1)を作るアルゴリズム) だれかしらないですか?
326 名前:デフォルトの名無しさん mailto:sage [2005/11/17(木) 22:09:18 ] >>325 アニーリング関数が適当なら、その隣同士とかでやったとして 局所的なくぼ地にはまってしまうような場合であっても 少ない確率ではあるけどそのくぼ地を乗りこえることかできるから 結局それなりにうまくいくんじゃないのかな
327 名前:デフォルトの名無しさん mailto:sage [2005/11/18(金) 00:37:31 ] >>321 つ[long long]
328 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 09:22:25 ] >321 つ[多倍長演算]
329 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 10:35:17 ] 読みって「たばいちょう」?
330 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 11:18:12 ] >>329 OK!
331 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 11:26:32 ] 束井町の塩山では今年も岩塩の収穫の時期になりました
332 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 11:29:02 ] えっ?どこっ?なに?誤爆?束胃腸・・・?
333 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 13:23:14 ] >>330 サンクス。 変換しても出てこないので違うのかなと思っていた。
334 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 13:51:31 ] >>333 かな漢字変換辞書が全ての技術語を網羅しているわけがないだろう。 それともあれか、藻前は「へんかんできないからそんな字ない」とか言っちゃう小学生か?
335 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 19:32:31 ] つーか他の読みをしようにもたばいちょうとしか読めん
336 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 20:10:17 ] >>334 そんなにキツく言わんでも・・。
337 名前:デフォルトの名無しさん [2005/11/20(日) 22:49:35 ] 今 1 から N までの N 個の異なる自然数からなる順序付きタプルを入力に受け, そのタプルが大きさ N の全順列中において辞書順で何番目かを返すアルゴリズムを 実装したいんですが,どういうアルゴリズムが考えられますか? 例えば, {1, 2, 0} を与えたら 4 を返すような感じのアルゴリズムです.
338 名前:デフォルトの名無しさん mailto:sage [2005/11/20(日) 22:53:59 ] タプルって何だっけ?
339 名前:デフォルトの名無しさん mailto:sage [2005/11/20(日) 23:01:25 ] >>338 tuple 【名】 組、《コ》タプル
340 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/11/20(日) 23:10:03 ] Nがわかったら、順列を順に生成する関数に渡せば良いんじゃね?(N,{0,1,2}を渡す) で、マッチングをとる。
342 名前:デフォルトの名無しさん mailto:sage [2005/11/20(日) 23:17:15 ] あっ、340 の {2, 3, 1, 0} の例、最初は 3! じゃなくて 2×3! =12、 最後の結果も18だわ。 >>341 それだと順列生成自体が糞重たいし、コーディング結構難しくない?
343 名前:デフォルトの名無しさん mailto:sage [2005/11/21(月) 00:32:41 ] 魔法陣って4×4で出来ますか?
344 名前:デフォルトの名無しさん mailto:sage [2005/11/21(月) 01:58:19 ] できます
345 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/11/21(月) 15:45:08 ] >>337 素直に説明を読むと、 「1からNまでのN個の順列組み合わせを辞書式順序で並べたとき 各組合わせは何番目?」 という問だと思うのだが、いきなり組の要素に0があったりするのはなぜ?
347 名前:337 mailto:sage [2005/11/21(月) 18:58:04 ] >>340 素直にやるなら,前から順に読んでいって現れた数字を記録しないとならないですよね. 前から順に読んで現れた数字より大きい数字を全てデクリメントしていくやり方も あるのかな?参考になります. >>345 これって 340 さんの考え方じゃなくてむしろ 341 さんの考え方ですよね? >>346 すいません.最初,説明を「0 から N-1」と書いてて後で直したんですが 例を書き直すのを忘れてました.337 の正しい例は {2, 3, 1} です.
348 名前:デフォルトの名無しさん mailto:sage [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)、残った列に対し*に戻る。
349 名前:340 mailto:sage [2005/11/22(火) 12:02:43 ] >>348 それ見てて思ったけど、 (3)(階乗計算)とか(4)の計算に掛かる時間を考えると、 >>345 のコードよりも計算量大きくなるかも。 >>345 だと標準ライブラリの機能そのまま使っててコード量的にも少ないし。 順列生成のアルゴリズムって、>>345 の結果見てる感じ、 バブルソートを1ステップずつやるようなものなのね。
350 名前:デフォルトの名無しさん mailto:sage [2005/11/22(火) 16:31:37 ] 似たような問題で、よく出るのが、 1 から N までの N 個の異なる自然数による順序付タブル をランダムに出力せよ
351 名前:デフォルトの名無しさん mailto:sage [2005/11/22(火) 18:36:00 ] タブル
352 名前:337 mailto:sage [2005/11/23(水) 22:03:52 ] >>349 345 さんのコードだと平均・最悪で O(N!) な一方で 348 さんのだと平均・最悪で(階乗計算も含めて) O(N^2) ですから, 特別な事情がなければ 348 さんのを選択するのが良いと思います. というか 348 さんのアルゴリズムで実装できました.ありがとうございました.
353 名前:デフォルトの名無しさん [2005/11/28(月) 23:10:17 ] 新スレたてました! フーリエ変換が趣味です。 hobby8.2ch.net/test/read.cgi/hobby/1133005088/
354 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 19:35:47 ] 『任意の微分方程式を与えられたとき、それを解くプログラムを記述せよ。ただし、す べての方程式を解くことは困難なので、そのプログラムで解ける範囲を指定し記述せよ。』 この問題のアルゴリズムと、ソースを書いてくれませんか? ここで悩んでいるので是非とも力を貸してください!!お願いします。
355 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 19:36:39 ] 師ね
356 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 19:36:55 ] ×力を貸してください ○答え教えろ
357 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 20:08:28 ] >すべての方程式を解くことは困難なので、そのプログラムで解ける範囲を指定し記述せよ。』 とりあえずオイラー法を用意して、それで解ける範囲を明示しておけばレポート通るんじゃね?
358 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 01:23:23 ] あからさまに宿題をそのまま出されるとな・・・
359 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 23:46:24 ] 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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2005/12/08(木) 00:16:08 ] っつーかおまいら、2ch にさらす暇あったら作者に報告入れろって。