[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 18:20 / Filesize : 211 KB / Number-of Response : 875
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

数学、算数はプログラムに必要か?



1 名前:デフォルトの名無しさん [2007/02/14(水) 21:46:25 ]
どうなんだ?

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でも読みなさい
少なくともどんなことを勉強すればいいのか分かるようになるから

608 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 21:31:32 ]
>>583
C++でラムダって一番遅れている分野じゃないですか。
テンプレートメタプログラミングを使うと
具体的にどういうことができるかって例にはなるが。

609 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 21:36:12 ]
>>608
結局 Lisp だとか ML とかの他言語で研究/実装されてきたものの焼き直し
つか、スレチだろ? >おまえら


610 名前:デフォルトの名無しさん [2008/05/13(火) 01:32:44 ]
F#が最先端




611 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 02:19:50 ]
富士通とシャープの合弁か

612 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 07:44:42 ]
全員が数学的センスを持っている必要は無いが
プロジェクトに何人かは必要。
無駄に複雑なロジックを組まずに、
演算量の少ない近似計算で実用精度を出す
技術は数学的センスがないとできない。

613 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 08:49:34 ]
どうせ詰らん内容だろう思ったが、ちらっとみてみるとやはり詰らん内容だな
情報系でsinとかcosとか何が技術だ、この時点でセンスのなさを感じずにはいられないのは俺だけか?
せめて離散数学とか、基本抽象数学系こそが情報系数学の本命だろう。
ったく頭痛くなるぜ

614 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 09:26:53 ]
>>599なんかは離散系の話題のようだけど?

615 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:39:07 ]
>>613
連続系の数学(解析学が中心でしょうか)は、教養課程の履修が確立されていますし、物理を筆頭に電気・化学・制御など対象モデルに即して理解しやすいのですが(まあ常識でしょうね。)、
離散系の数学は、正直なところよくわからないんです。体系だって学びたいのですが、何かいい教科書はないでしょうか。

616 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:50:03 ]
>>611
俺の中ではがっかり UMPC ベンダーの二大巨頭だな…

617 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 22:09:40 ]
>>614, 615
「座布団位置枚持ってって!」って言うところじゃないのか?


618 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 08:38:10 ]
離散数学って集合とか整数論だろ?
>>599は離散系でZ変換とかの分野で

離散数学の分野とZ変換とかの分野は違うでしょ。

619 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 09:18:38 ]
整数論は一般に離散数学には入れないな、難易度が高すぎて独立分野になっている。
p進数まんせー

620 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 14:54:00 ]
お前r日本語でおk



621 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 15:36:27 ]
離散数学ってのはこんな内容だよ
www.sys.wakayama-u.ac.jp/syllabus/dept/12003.html

622 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 16:34:13 ]
組み合わせ論→帰納法→再帰・ループ
グラフ理論→ツリー・探索アルゴリズム
集合→集合代数・ブール代数→論理演算
てな感じ?

623 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 17:04:38 ]
スタートは、集合以外からは進められないだろうな
 集合→関数と関係→再帰と帰納
ここで、同値変形や代数になれさせる。高校までの数学との違いを乗り越える。
 順序集合と束→順序集合と束→ブール代数→命題論理→推論と証明述語論理
主要な集合の構造と論理を知る。
 グラフ理論
具体的に展開と、見た感じそのページの授業計画通りに進めるのが適当では?

624 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 17:11:05 ]
んで、この先は組み合わせ理論とか、オートマトンとか、形式言語あたりか
さらに情報に専門化してゆくと、DBの基礎理論、計算量問題、ステータスマシン、正規表現やコンパイラの基礎へと繋がると。

625 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 18:14:35 ]
動的計画法、貪欲法などはグラフ理論辺りで学べそうだし。
続けてオートマトンで状態遷移、正規表現か。

系統立てて勉強できるのは羨ましいな。

626 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 18:21:56 ]
離散数学は東大でもさっさと導入されたぐらいだし、重要度は極めて高いよ。

627 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 18:17:56 ]
一つ目が 1 でなく 0 だったりするから、
植木算とかで手こずった人はツラいだろうな。

628 名前:デフォルトの名無しさん [2008/05/16(金) 18:29:50 ]
フーリエ変換を学びたいんだが、WaveToneみたいに、それなりに役に立つ結果を表示する
サンプルは無いのかな?
アルゴリズム辞典に載ってるようなシンプルな関数を元に、ちまちま改良して覚えていくしかない?

629 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 18:34:36 ]
フーリエ変換を使って何を調べたいかにもよるかな
スペクトル解析は、高速な物以外にもいろいろあって、推定精度の高いものとかもある。
さらに、パワーと周波数は同時に決定できないという、不確定性原理があるので、
これでままたどちらを調べたいのかでまた変化したりする。
単に高速にしたいだけならFFT丸写しでOK

630 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 18:42:24 ]
もし調べるのでなく、フーリエ変換を使って圧縮をしたいのなら
フーリエ変換の基底を調べるといい、離散系のフーリエ変換には誤差なし変換も可能になる方法もある。
sin/cos以外の基底を使って変換する方法にはデジタルデータに向いたウォルシュ基底や
もっと風変わりなものも沢山ある。



631 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:38:02 ]
>>628
FFTで多倍長の掛け算とか実装してみたら?

632 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:28:15 ]
アルゴリズム論としての数学だけじゃなくて、プログラム意味論について、根本的な部分
考える理論(ラムダ計算とか項書き換え系の理論とか)を勉強しとけ。
 Curry-Howardの対応を知らない子ども達
d.hatena.ne.jp/nobsun/20070915/p2


633 名前:マイク ◆yrBrqfF1Ew [2008/05/17(土) 15:41:01 ]
数学を理解していればきっとプログラミングはかなり楽しいんだろう。

634 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 01:06:16 ]
>>599は「俺は数学できない」宣言にしか見えない

635 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 01:08:42 ]
>>618
集合論がなんで離散数学なんだよ、アホか?

636 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 01:45:34 ]
>>635
公理的集合論から出発して、位相や代数系の話になるとだいぶ離散数学。

離散数学っていっても色々あるのよなぁ。
有限群・環・体、から離散トポロジーやらグラフ理論やら。

637 名前:デフォルトの名無しさん [2008/05/18(日) 06:43:25 ]
数学やってる人たちの論理との付き合い方は実に勉強になりますね

638 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 08:28:49 ]
>>635
おいおい集合論やらなかったら、証明どうするんだよ、一歩も進めないじゃんか。

639 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 08:31:30 ]
>>635
足し算を理解せずにsin/cosが理解できるものならやってみろw

640 名前:デフォルトの名無しさん [2008/05/18(日) 09:16:06 ]
プログラミング=文学的才能+数学的才能
両方必要な極めてハードな分野

以上



641 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 09:19:26 ]
>>638
635は確かに馬鹿にしているが、集合論がいらないと言っているのではなく、離散数学だけの概念ではないと言っているだけなのでは。
さらに、証明に必要なのは、論理体系であり、集合論はなくても証明はできる。
集合論は便利でわかりやすいから、みんな勉強するけどね。

642 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 09:20:47 ]
>>640 プログラミングに文学的能力って、どゆこと?

643 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 09:41:23 ]
名前が無いと不便だから、とりあえず離散数学にしておくか、ぐらいだと思う。

644 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 10:51:22 ]
何よりも語学
そして科学と宗教
文学と数学
そしてやっとプログラミングって感じか

645 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 11:52:45 ]
その量だと3歳ぐらいから目指して30前でようやくなんとかなるかなってレベルだな

646 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 11:56:12 ]
>>644
宗教?
それと文学はそんなにいらないと思います。
人に通じる日本語をあつかえればよく、
文芸的要素は邪魔ではないでしょうか。

647 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 12:06:07 ]
C++が最高、Rubyが最高、PHPが最高・・・
そういう論争は宗教論争でしかなく不毛だ
ということを理解するために宗教が必須だと言ってるのではないだろうか。

と、無理やり解釈してみる。

648 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 12:10:31 ]
>>647
昔、OSI参照モデルの説明でこんな奴があったのを思い出した

1. 物理層
2. データリンク層
………
7. アプリケーション層
8. 政治層
9. 宗教層


649 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 12:26:07 ]
そうそう、それw
プログラミングの話で宗教が必要とか言われると、
その政治層・宗教層の話しか思い浮かばなかったんで。

650 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 12:56:13 ]
人間系は難しい分野だよな。
政治・経済・宗教はプログラムに必要か?ってたまに思うよ。
単純により良いものを作りたいっていう人間の本能に根ざした生産活動でいいのに。



651 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 14:18:16 ]
>>650
えっとな、政治層までは、それなりに頑張れば引っくり返せる
宗教層はどう頑張っても引っくり返せない
つか、戦争しかないって言う意味ちゃうの?


652 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 21:05:55 ]
頑張ればなんだって出来るけど、そこまでするか?って話だよな?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<211KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef