- 1 名前:デフォルトの名無しさん [2007/02/14(水) 21:46:25 ]
- どうなんだ?
- 507 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 21:26:10 ]
- >>506
どこを縦読み?
- 508 名前:オガちゃん萌え ◆tyvkWCNtzY mailto:sage [2008/03/23(日) 22:10:33 ]
- >>507
スマソ、思いつきw
- 509 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:34:34 ]
- 「数学キライだ」とか言ってる人も、
受験とかのシガラミのせいでそうなっただけで、 実は、やれば速攻でできるようになる、という場合によく遭う。 普段から数理的な考えを実践し、 扱えるスタックが深くなっているからではないか。
- 510 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 02:05:44 ]
- 昔は論理的な思考方法を獲得するための最良の手段が数学だったと思うが
現在その意味ではプログラミングの方が効率がいいような気がする。 ややこしい証明しなくても間違ってると動かないし、それ以前に大体コンパイラ様が教えてくれる。 数学が必要なのはプログラム自体が数学を必要とする場合ではないか?
- 511 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 07:12:13 ]
- >>510
論理的な思考方法に関する話を論理的に駄目な形で説明するとは なかなか面白いですね。
- 512 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:36:54 ]
- for使うのに慣れすぎると
1〜2000まで足すのにforで足してしまう癖が付く Σなら2001000って一発ででるのにね さて1〜2001まで足すといくつ?
- 513 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:43:23 ]
- ここで
(2001+1)x2001/2 を計算しようとしたあなたは素直すぎます 2001000+2001=2003001 とエレガントに答えるべきです
- 514 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:47:37 ]
- いや、それを得意げに語られても。
極真っ当なプログラマなら、直前に算出した結果を次のステップで利用できるかどうか位常に意識しているもんだよ。
- 515 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:18:29 ]
- 再帰使え
- 516 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 15:13:31 ]
- 再帰は複雑な問題を簡潔に記述できるのが利点だが
それ以外は悪いことばかりだぞ
- 517 名前:オガちゃん萌え ◆tyvkWCNtzY mailto:sage [2008/03/24(月) 18:49:45 ]
- >>513
オイラーが幼少期に1〜100まで足す計算だったかを学校で教師に言われて、一瞬で 答えを出した逸話があるね >>516 再帰はある種、ループ処理に似ている希ガス
- 518 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:06:27 ]
- ガウスじゃなくて?
- 519 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:00:44 ]
- ガウスだよな
だけど偉人の所業って本当に当人のものでなくても 色んな逸話がいつの間にか結び付けられるって言うしな
- 520 名前:オガちゃん萌え ◆tyvkWCNtzY mailto:sage [2008/03/24(月) 23:12:51 ]
- >>518-519
ガウスだった、記憶違いスマソ
- 521 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:35:26 ]
- 漏れもeulerだと思ってたorz
- 522 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 07:49:02 ]
- おいらもオイラー(ry
- 523 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 11:38:20 ]
- オイラーは、死ぬ直前まで計算してたくらいの計算の天才だったそうですしね。
- 524 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:30:00 ]
- >>517
というか、計算の理論としては「再帰関数で定義できる=コンピュータで可能な演算」というのが筋書きのひとつです。 (Church, 1936)
- 525 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:29:19 ]
- >517
ループは再帰の一種というか制限されたバージョンでしょ
- 526 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:55:45 ]
- オイラーの法則は女性が見ると濡れるってじっちゃがいってた
- 527 名前:デフォルトの名無しさん [2008/05/08(木) 08:33:45 ]
- オイラーはドラマー
- 528 名前:デフォルトの名無しさん [2008/05/08(木) 16:43:50 ]
- プログラマーには数学が必要だと思って死ぬほど勉強してたら
気づいたときには計算機科学者になってた 見習いだけど
- 529 名前:デフォルトの名無しさん [2008/05/08(木) 17:14:05 ]
- せめて2進数、16進数すらいは勉強してくれ〜
- 530 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 18:35:56 ]
- >>528
ぜひご教授ください。んー、並列コンピュータの最近の動向はどうなってますか?
- 531 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 18:36:41 ]
- or が + で and が * とか (true * false) が false になるとか
も勉強してくれ〜
- 532 名前:デフォルトの名無しさん [2008/05/09(金) 16:17:04 ]
- ↑
おいおい、なんで or と + が一緒になるんだw おまいこそ1から勉強しなおしてくれ
- 533 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:43:34 ]
- (A or B) が
い)A:true,B:true なら true ろ)A:false,B:false なら false は)A:true,B:false なら true に)A:false,B:true なら true なのは、 true を >0 な数(例として1)とし false を 0 としたとき い)1+1 なら 2で >0 なので true ろ)0+0 なら 0で 0 なのでfalse は)1+0 なら 1で >0 なので true に)0+1 なら 1で >0 なので true なのと同じで、 (A and B) が い)A:true,B:true なら true ろ)A:false,B:false なら false は)A:true,B:false なら false に)A:false,B:true なら false なのは、 true を >0 な数(例として1)とし false を 0 としたとき い)1*1 なら 1で >0 なので true ろ)0*0 なら 0で 0 なのでfalse は)1*0 なら 0で >0 なので false に)0*1 なら 0で >0 なので false なのと同じなんじゃなかったっけか。間違ってたらメンゴ
- 534 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:43:42 ]
- >>532
んー、or と + が一緒というのは、ある意味妥当なんですけど。
- 535 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 19:21:39 ]
- >>533
そんな長々と書くことでもなかろうに
- 536 名前:デフォルトの名無しさん [2008/05/10(土) 21:14:49 ]
- ほほう。1+0と1+1が同じ答えだと。おまいの通った小学校では
そんなふうに教えたのか。ふうん。それ、なんて学校ニダ?
- 537 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:35:10 ]
- >>536
判ってて言ってはいるんだろうけどw or を + / and を * で表記するという前提が無いとそこだけ見たらごかいするね。 それにしても >>533 は随分とまどろっこしい人だなぁ。 この人の頭だとプログラム一行書き上げるのに半日掛かりそう・・
- 538 名前:デフォルトの名無しさん [2008/05/10(土) 21:54:32 ]
- >>536
論理代数じゃ普通だろ 何言ってんの?
- 539 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:25:20 ]
- {{false, true}, OR, AND} は体をなす。
代数構造が、F_2 = {{0, 1}, + (mod 2), ×(mod 2)} と同じ。 F_2 は加減乗除の四則演算がきっちりできる。
- 540 名前:デフォルトの名無しさん [2008/05/10(土) 22:37:31 ]
- なんで mod 2 するんだよw
なぜ mod 3、mod 4 じゃいけないんだ?説明してみろ。 mod 1 すれば + も * も / も - もぜんぶ同じだぞ! おまいな、自分の都合のいいように条件を設定するなよ。
- 541 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:39:12 ]
- + (mod 2) はXORと同じじゃない?
- 542 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:58:43 ]
- >>540
{{0, 1, 2}, + (mod 3), × (mod 3)} も体(四則演算可能)になるよ。 4 の場合はダメ。素数である必要がある。 たとえば 4 の場合、 2×2 が 0 になっちゃったり、2×a=1 になるような元 (2の逆元、これがないと割り算が成り立たない)がなかったりする。 >>541 ああ、そう。OR は間違い。 体をなすのは {false, true}, XOR, AND}。
- 543 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:00:06 ]
- >>540
mod 1 もあり。 ただ1つの元 0 からなる体とみなす(自明な体っていう)。 ただ、当然、数学的に面白い特性は持ってない。 自分に都合のいい条件を設定したんじゃなくて、 そういう条件のものを考えると面白い結果が得られるものが見つかっただけ。
- 544 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 01:17:45 ]
- あの〜、コンピュータの世界だと 0 か 0 で無いか・・だよね。true は 1 というより not false だからもすこし柔軟にみたほうがいいとおもう。
- 545 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 01:25:16 ]
- >>544
それはコンピュータの世界の常識じゃなくて、Cの時代の悪習。 しかし、そうまでして人の話にけちをつけたいかww
- 546 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 01:29:13 ]
- あと、{{true, false}, XOR, AND} と {{0, 1}, +(mod 2), ×(mod 2)} は、
代数構造が同じというだけの話。 この延長で、集合 {0, 非0} に対して、 +演算子を、2つの元が等しい時0、さもなくば非0、 ×演算子を、2つの元の両方が非0のとき非0、さもなくば0 で定義して、{{0, 非0}, +, ×} としても代数的に同値。 見てくれが同じかどうかが重要じゃなくて、 抽象的に見て代数構造が同じかどうかが重要。
- 547 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 06:23:39 ]
- andとorを理解するのにわざわざ遠回りをするだけのような。
- 548 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 09:40:48 ]
- AND OR の理解のためじゃないな。
符号理論とかで使う。
- 549 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:04:05 ]
- >>545
それいぜんの処理系もそうでしたが? たとえば、N-BASIC とか。
- 550 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:21:57 ]
- 言い換えるわ、C のあたり以前の。
要するに20年前、プログラミング言語がよりマシン語に近かったころの名残。
- 551 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:35:44 ]
- >>550
悪習ではないと思いますが。 現在の処理系ではどうなっているのでしょうか?
- 552 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:06:17 ]
- true, falseをラムダ抽象で表現するのとか門外漢には意味不すぎるわ
- 553 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:07:31 ]
- >>551
当時の価値観では悪習ではないけども、 過去の名残を未だに使うという行為は悪習。 最近できた言語なら普通は bool 型持ってる。
- 554 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:11:47 ]
- >>552
ラムダは、関数の定義・実行を抽象化したもの。 ここしばらく話題になってるのは単に数の四則演算の抽象化。 代数系、群論とかが関連する分野。
- 555 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:15:06 ]
- >>551
特定の値を false それ以外を true として扱う言語なら結構あるだろ? c とか c++ とか perl とか python とか ruby とか common lisp とか scheme とか...
- 556 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 11:35:06 ]
- なるほど、もっと意味不なものってことだけはわかりました
- 557 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:19:56 ]
- >>545
いや、ケチつけたつもりはないがそう捉えたのなら・・・ >>550 プログラミングについてとあるからさ。 現実、 not false は下位ビットだけみれば 1, 0 の違いだけどレジスター的には -1 になるでしょ。 判定するきわざわざ AND 0001 して(0, 1)にするよりそのまま (0,-1) とみるほうが手間も省けて処理しやすい。 >>553 ただbool型で規制はしても中身がかわったわけではないから(コンパイラで解釈・制限するのを拡張しただけという・・)
- 558 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:35:37 ]
- >>557
コンパイラが解釈して制限するということが重要。 プログラマの人為的ミスをなくすのが一番の目的。
- 559 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:43:39 ]
- 抽象代数の話題で、スレの趣旨からちょっとそれ気味だったんで話の方向を修正すると、
プログラミングと数学に共通して、抽象化ってのは大事。 「CPU の命令にboolがないんだからboolを考えない」ってのは、 具体的なんだけども、プログラマ自らが気をつけながらプログラミングしないといけない。 非0をtrueとするなら、1と2のANDはどうなるんだ、とかね。 true AND true だからtrueになってほしいけど、 Cで書くところの 1 & 2 とかくと当然0でfalseに。 x != 0 && y != 0 みたいなコードが論理ANDに相当するんだけど、それもいちいち書きたくない。 そこに、CPUの具体的な構造から離れて(抽象化して)、 boolを導入、面倒な決まり事はプログラマじゃなくてコンパイラが面倒みる。
- 560 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:47:32 ]
- {{true, false}, XOR, AND} と {{0, 1}, +(mod 2), ×(mod 2)} が代数構造としては同じ
ってのも、具体的な形にとらわれず、抽象的に見ることで、 同じ理屈で扱えて便利になるわけ。 ちと無理やりだけど、スレタイに絡めて締めると、 プログラミングには数学で出てくる抽象的な考え方が必要。
- 561 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:51:58 ]
- その代数構造ってやつでで言語の構文を見ると
ある言語の構文を別の言語の構文で表現する とかが簡単にできたりして、一つの言語を知識で様々な言語を使用できる とかそういういいことがあったりするの?
- 562 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 12:58:55 ]
- >>561
ライブラリ使ってるだけの末端のプログラマにはあんまり関係ない。 言語設計者とか、数値計算ライブラリやら通信符号化ライブラリやら書いてる人にとって必要。 末端プログラマは間接的にしかそういう理論の恩恵受けないけども、 とりあえず抽象化って考え方自体は持ってて損はない。
- 563 名前:デフォルトの名無しさん [2008/05/11(日) 13:10:36 ]
- >>559
そいうのはふつう、1 && 2 だろ。 1 & 2 とは全然意味が違う。 算術演算の AND と論理演算の AND の違いくらい理解しとけよ。
- 564 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 13:19:55 ]
- >>563
だからそうやって自分の噛みつけるところにだけ反応するから話がそれてくんだよ。
- 565 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 13:58:39 ]
- >>561 表示的意味論って奴がおおむね君が言ってる部分に相当するのかな
>>563 記号の意味も提示せずに何を吠えてるんだ
- 566 名前:マイク ◆yrBrqfF1Ew [2008/05/11(日) 14:47:29 ]
- 前から思ってたけどお前ら頭良いな
お前らの一部の人間だけどな
- 567 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 16:13:15 ]
- >>558
それはもちろん同意です。 >>559 boolを考えないという極論ではないっす。単なる論理演算にそこまで深く考える時間があったら他にもっとあるんじゃ・・と。 非0 を true とするとき、つまり 1(!0), 2(!0) なので 1 && 2 は true という事になるよ。 それは数値的な 0001 & 0010 で 0000 (false)? って発想に持っていくに矛盾を感じるんだけどな(判っててこじつけてる感じ) って >>563 さんが答えてる(うむむ)
- 568 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:16:06 ]
- >単なる論理演算にそこまで深く考える時間があったら他にもっとあるんじゃ・・と。
この部分に関しては、その人の立場によるとしか言いようがなくて。 必要な人には必要なわけよ。 あと、C言語の && は実質的に、 if(x != 0) return y != 0; else 0; の意味なのは確かだけど、それも、マシン語レベルではそんな命令はないわけで ある種の抽象化だと思う。
- 569 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:19:16 ]
- && の解釈だけども、
VC++ なんかでは(C++/CLI では)、 ・&& は bool 同士の二項演算 ・int → bool の暗黙の型変換がある という処理になるね。 整数同士の二項演算としての && 演算子(ショートサーキットAND)はない。
- 570 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:21:24 ]
- 過去のプログラムのコンパイルが通らなくなるとまずいから
昔の習慣を引きずってるけども、ほんとのこと言うと、 int → bool の自動変換なんて人為的ミスの温床だからない方がいいのよね。
- 571 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 21:06:31 ]
- >>570
人為ミスという意味では、過去のプログラムが通らなくなって、一から作り直しの方が多くなりそうだ
- 572 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 21:11:10 ]
- >>571
だから新しい言語が生まれるんだよ。
- 573 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 21:59:35 ]
- >>568
確かに個々の立場なの尊重すればそうですね。 安全な言語が必要な人は C/C++は使わなければどうかと思う。 また、マクロコード(今もマシン語というんですか?)レベルで && 相当が無いというより Operand + Data の構造上複数ステップの記述になるのということだと思う。 論理演算は基本(True,False)から構成されるけれどコンピュータ上はレジスター(8bits,16bits,32bits,64bits)なサイズで代用していくわけで理屈としては大切だけど現実は...。 >>570 それは、理屈屋さんが余計なお世話をするからだと思うよ。たとえばCOBOLならプログラムは書けなくても知識人なら理解できるリストかもしれないけど実際にプログラマする人にとっては面倒なコーディングと感じるギャップに近い。 >>572 間違いが起こりにくいよう制限(ルール)を付けるとその知識の習得に大変な労力が必要になる割に素晴らしいプログラムは書き憎くなる(想像力を妨げる)という懸念も。
- 574 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 22:25:44 ]
- >>573
C++ → C# に移行したプログラマだけど、 抽象度高い言語の方が覚えやすさも生産性も創造性も絶対高いよ。 つけられた制限による損失 <<< 書きやすくなった分の恩恵。 どうしても変態的なことやりたい人には、 DLR でも使って自分で言語作るという選択肢もあるよ。 まあ、またスレ趣旨とかけ離れてきたけども・・・
- 575 名前:デフォルトの名無しさん [2008/05/11(日) 23:04:17 ]
- インタプリタ言語とコンパイラ言語を比較されてもねぇ・・・
人為的ミスをお菓子やすい言語でも、CPUの性能を100%引き出すために あえて使わざる終えない局面だってあるんだよ。 危険を冒して苦難に立ち向かう。まさに、男の仕事だね。 女の腐ったような言語とは一緒くたにすんなって。
- 576 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:10:53 ]
- C# はコンパイル言語ww
C++ と比べると8〜9割程度だけど、C# のパフォーマンスはかなりいいよ。 あと、今後は徐々にJavaとかC#みたいな中間言語方式の方が最適化が有利になってくる。 CPU のコア数とか、環境に合わせて最適化JITコンパイルしてくれるから。 だいたい、アセンブラ→C移行期にも似たような議論があったと思うけども、 人手による最適化はいずれコンパイラによる最適化に抜かれる。 よっぽど優秀な人間がよっぽど重要な部分に注力しない限り、人手の最適化はきつい。
- 577 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:12:19 ]
- ストイックな世界に生きたければ、自分で言語作る側に回るのが正解。
わざわざ抽象度低い言語使って、人手の最適化でパフォーマンスを上げようってのは 単なるオナニー。
- 578 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:23:38 ]
- >>576
> 人手による最適化はいずれコンパイラによる最適化に抜かれる。 と、言ういいわけで、与えられた数式をプログラムに丸投げする 馬鹿が出てくるわけだ # 人間が前処理した方が早い # 数値計算あたりの話だけどな
- 579 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:35:25 ]
- 前処理って・・・
1+2+3+ … +N を 1/2 N(N+1) に展開したりの部分? 最適化以前の話だけども、まあ、そういう話のほうがスレタイどおりでいいね。
- 580 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:14:03 ]
- >>579
その類いの話とか、特異点周辺のアルゴリズムを 何も考えずに数式通り計算するから話にならん 誤差出まくりとか
- 581 名前:デフォルトの名無しさん [2008/05/12(月) 00:20:59 ]
- >C# はコンパイル言語ww
ギャハハハハハ〜〜〜 恥ずかしい事書いちゃったねww
- 582 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:41:35 ]
- C#がコンパイル言語かどうかはスレ違いだからほどほどにしておけ。
>>574 俺はC++のほうが抽象度高いとは思う。 ただ、それは先端のほうの話で現実にはなかなか使えないけど。 C#もLINQでだいぶ追いついて俺の中でC#の評価上昇中。
- 583 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:48:07 ]
- >>580
アルゴリズム改善とコード最適化は別物よ。 >>581 C# はJITコンパイル式。 C#ソース→ILの部分もコンパイルだし、 IL実行時も起動時にネイティブにコンパイルされる。 >>582 C++の方が抽象的なのってtemplate周りだけじゃね? LINQで追いついてって話してるってことは、 Boost のラムダとかのこと言ってるのかな。 Boost ラムダはかなり無理やりな作り方してて、C++ らしさのかけらもないけども。 むしろ、最近はC#が言語の最先端で、 JavaもC++もC#の後追いしてる状況。
- 584 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:50:47 ]
- スレタイに沿った話に戻すと、
>>579-580 みたいな話は「アルゴリズム改善」ね。 コード最適化ってのは、ポインタ使った方が早いとか 演算の順序変えた方がキャッシュが効いて・・・ とかそういう細かい調整の部分。 アルゴリズム改善には数学・算数が必要だと思うし、 人間の創造性が一番発揮される部分だと思う。 コード最適化は手間かかる割に面白くないし、 正直このあたりは数学も算数もくそもない。 そういう所ほどコンパイラ任せにすべき。
- 585 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:52:44 ]
- Java, C++ が C# の後追いしてるってのは、
プロパティとかクロージャの当たりね。 Java SE 7 とか C++ 0x の仕様はかなり C# 3.0 の影響受けてる。
- 586 名前:デフォルトの名無しさん [2008/05/12(月) 00:54:46 ]
- a=1
b=2 c=a<b basic/vb なら c は -1 (true では無い事に注意) c/c++ なら c は 1 (同上) java/c# なら c は true (0 も 1 でも無い)
- 587 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:56:05 ]
- >>574
どういう類いをしているかによるけど C/C++ と C# や Java 系を比較はできないとおもう。 それと変態的な(面白いね。確かに私もなんでそんな判りにくい書き方する?というの目にすることある)のはその人の性格であって C/C++ とかそういうレベルのものではないと思うよ。 C# でも十分変態的なリストは書けるでしょ? で、数学的な発想というより証明力がある人(仮定、推論、実験的証明とか)が優れている人は解を得るためのプログラムを想像する力も高いと思う。 そして、そういう人はその為に必要なツール(複数のプログラム言語)の特性をそれなりに理解し使いこなす人ではないかな。 言語のすべてを知る必要は無く、自分が実現するに必要な機能をその言語から引き出す力があるか・・だと思うよ。
- 588 名前:デフォルトの名無しさん [2008/05/12(月) 00:56:38 ]
- >>583
ふ〜〜ん。 じゃぁ、Perl もコンパイラだ。PHP もコンパイラだwww
- 589 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:56:55 ]
- この手の議論で話が迷走する理由の一つに、
議論に参加してる人間の間で前提が食い違ってることが多いのよ。 このスレ的にいうと、 「アルゴリズム改善こそがプログラマの仕事」と思ってる人と、 「開発はアルゴリズム考えるアーキテクト数名と、 出来合いのアルゴリズムを使うだけのプログラマ多数で成り立つ」 と思ってる人とで、 数学・算数が必要かどうかの意見は食い違うに決まってる。 最近のこのスレのおかしさもそういう雰囲気を感じる。
- 590 名前:デフォルトの名無しさん [2008/05/12(月) 00:57:49 ]
- で、ガベージコレクションって、どんなコードにコンパイルされるの?
インテルのCPUにガベージコレクションって命令あったっけ?
- 591 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 01:00:36 ]
- >>590
マークアンドスイープとか参照カウンタのコードに展開される。 てか、それもさ、コンパイル言語かインタプリタ言語かの違いじゃなくて、 フレームワーク上で動くかネイティブコード単体で動くかの差で・・・ ってまた意味の分かんない話のそれ方してるなぁ。
- 592 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 07:08:43 ]
- xが入力で範囲は0 <= x <0.01 1-cos(x) を計算する(ラジアン)と仕様書にあったら
中身はどう書く?
- 593 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 07:42:14 ]
- テイラー展開の6次の項までを足すとかかな。
- 594 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 07:54:49 ]
- ひょっとすると、2sin^2 x/2 で考えた方が収束性いいかな。
でもそれもなぁ、立場とか前提変わればやるべきことも変わるよなぁ。 仕様変更の可能性とか、要求される速度とか。 x の範囲がころころ変わるかもしれないときに、 精度ぎりぎりの実装は取れないし。
- 595 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 07:58:37 ]
- 普通に入力範囲制限の有無と精度と要求速度を確認するでしょ。
何にも制約なければdouble func(double x) {return 1 - cos(x);}でw
- 596 名前:592 mailto:sage [2008/05/12(月) 07:59:16 ]
- そういう事だな。
仕様書に1-cos(x) 書いてあるからと、そのまま書いたら酷い精度しか得られない。 で、ソレが判る程度の算数の知識は必要って事で
- 597 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 08:20:58 ]
- >>596
ただそれだけ主張すると、 「そんなの使うのはごく一部の分野だけじゃん」とか 「それもあるに越したことない知識だけど、もっと優先度高いことが他にある」とか 言い出す人が出てくるよ。 俺はそれが必要な分野にいるプログラマだから賛成はするけども、 分野もいろいろあるし、開発規模・人数、自分の立ち位置でも考えは変えざるを得ないと思う。
- 598 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 08:25:29 ]
- 逆に、
「それ言い出したらお前、標準の sin/cos の実装どうなってるかからまず解析しなきゃ」とか 「組み込み用途だと、テイラー展開じゃなくて CORDIC 法みたいな数値計算の方がいいよ」とか 揚げ足取りな茶々入れてくる奴もきっといる。 それぞれたぶん、その当人のおかれた立場においては間違いじゃないのよ。 で、結局のところ >>589 になる。
- 599 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 08:41:22 ]
- では、もっと具体的に
電力を測定するには電流と電圧を同時に測る必要があるのだけど ADCは入力が複数あっても入力セレクタを切り替えて使う為に 同時に測定する為に、昔はサンプル&ホールドという回路が付いていた。 10KHz以上をカットするLPFが電流・電圧信号に入っていて マイコンは100KHzでも200Khzでも十分なサンプリングする能力があるとし 演算性能のは十分な余裕があるとしたら、 サンプル&ホールド回路は必要かどうか? サンプル&ホールド回路のコストが100円/枚付いていて 10万台/年の販売として、これを外す事で年1千万のコストダウンになるとしよう
- 600 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 08:47:45 ]
- もっと分野がせまくなった・・・
>>597 を書かれた後でそれ言い出すって、 「俺は数学わかって偉いんだ。みんな俺を褒めてよ。」って吠えてるようにしか見えん。
- 601 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 08:51:25 ]
- まあ、俺はそう吠えることすらも「間違いじゃない」と思うけど。
他者にほめられたいってのは、社会をなして生きる人間の本能だと思うし。
- 602 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 09:06:48 ]
- >「そんなの使うのはごく一部の分野だけじゃん」とか
だから、問題を具体的にしたんだよ。 プログラミングの問題なんて、既にあるものはコピペすればいいのだから その時に解決しなければならないのは常に小さい範囲ばかり。 労働としてのプログラマというよりコーダーなら別かもしれないけどね
- 603 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 12:13:15 ]
- >>602
元ネタふったのは俺なんだが、まぁそう言うことだ。 オプティマイザが… とか、ライブラリが… とか、 仕様がこうだから… とか 「思考停止状態で、もの作っても意味ないだろう」ってな、事が言いたかった。
- 604 名前:長文失敬 mailto:sage [2008/05/12(月) 12:30:20 ]
- 具体例を内容を暈しつつ一つ。
あるシミュレーションソフト、開発したのはそのシミュレーションを必要とするとあるジャンルの設計チーム。 理論は知っているし必要なプログラミングもできたが、出来上がったものは無駄な演算や適当でない最適化の塊。 こいつの高速化を任されたのだが、こちらは理論も知らなければ実際に流すデータも守秘義務に阻まれて入手できない。 仕方ないので、サンプルデータとその結果から理論を推測しつつ必要な精度を聞き出してロジックの改善を行っている。 問題は、 ・理論を知っている仕様提示者も、必要となる精度をしばしば把握できていない ・各ロジックは個別に作られて組み合わされているので、同じ意味の演算ルーチンが複数の手段で実装されてばらばらに存在する ・年月を掛けて構築された所為か品質に斑があり、かつドキュメントも整備されていない ・依頼元の「速度改善に寄与しないロジックは極力変えるな」の方針に阻まれて品質改善も保守性向上も図れない と言った辺りか。 しかも、やっと理論を把握して改善に手を出し始めると新しいアルゴリズムのための修正が入る始末。 最低限、理論を把握できるだけの数学的素養が要求されるのでおいそれと人的資源を投入することもできない。 結論、ある種のプログラミングの現場では、ある程度の数学知識をベースとしてヒアリングできる能力が要求される。
- 605 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 17:12:58 ]
- それじゃあプログラムに必要な数学をピンポイントで学習できるサイトとかありまするか?
- 606 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 18:02:55 ]
- >>605 もう一回、小学校の算数からやり直せばいいんでねぇの?
- 607 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 18:22:11 ]
- 今更、算数なんかやっても無駄
そんなものより線形代数入門と A Logical Aprproach to Discrete Mathでも読みなさい 少なくともどんなことを勉強すればいいのか分かるようになるから
|

|