知ってるとプログラミングに役立つ数学知識
FTは数学の範疇だけど
FFTは単なるFTのアルゴリズムだから
数学の範疇では無いのでは? HITO -> HUTA
MITU -> MUTU
YOTU -> YATU 趣味でやるなら
極座標やアフィン変換が理解できてれば
いろいろと楽しいことができるぞ ここまで郡数列なし
1列に5個表示する、とかいうやつでよく使うと思うんだが オプティカルドライブへの書込み読込み処理の誤り補正で行列を使ったなぁ。 条件、and、orの関係
否定は全て逆の関係になる (図に書いて考えるとよくわかる)
条件A and 条件B の否定は 条件≠A or 条件≠B
条件A or 条件B の否定は 条件≠A and 条件≠B
条件≠A and 条件B の否定は 条件A or 条件≠B
条件≠A or 条件≠B の否定は 条件A and 条件B
※ 数学の世界だとand=∀、or=∃とも言える >>7
そもそも、intとfloatの違いも怪しい奴が居るから 圏論やるにしても、
・Product/Coproduct
・Exponential
とか基本的なUniversal constructionは、はじめから言語に備わってるし
圏論を意識しなくても使ってるだろうから、圏論を通してこれらを知っても
自分のコードの良し悪しに影響するかと言われると微妙。
圏論の重要概念Adjunctionに関しても、プログラミングに関係してくるのは
Product/Exponential adjunctionだろうけど、これも所詮ただのカリー化だから、
カリー化の背後にはAdjunctionがある!って言われても、ほとんどの人は「で?」で終わりそう。
それでもめげずに
・F-algebra <=> 再帰的データ構造
・Yoneda lemma -- 下記を扱う上で当たり前のように使う
・End/Coend <=> 全称型・存在型の好例
・Kan extenstion <=> Free construction(特にFree functorなんかは魔術的)
あたりまで踏み込むと、このあたりはプログラミングと絡めても面白い。 普通は数学的知識は不要だよ
必要なのは数学的、理論的思考
小学校で算数が得意だったら見込みあり
数学の理論が必要になったときに調べればいい 数学知識が不要なのは底辺くらいじゃね?
「ライブラリが計算してくれるから」が答えだったら、計算が合わない時に何が違うのかわからなくなりそ 俺からすれば
みんな数学的知識や数学的思考力が無い
それ大学の教養レベルだろってことすら知らないヤツばかり
理系の大学院を出て理系の仕事につくのに
今まで何をやって来たんだと言いたい 大学生の大半はカスだけど、1割くらいはまともなのいるから… >>121
大卒なのにZFC公理も知らないとか論外だよな もしかすると有限容量で実数を完全に記録する方法を思いついたかもしれない。 完全にの意味がわからん
どんな実数もデジタルで記録出来る
なんてフォーマットは存在しない
整数の数より実数の数の方が多いのだから当然だが >>119
信頼できるライブラリに投げて「計算が合わない」って自分の設計ミスしかありえない
自分のこだわりで作るとか特殊な状況じゃなければ細かい知識までいらんわ その、
自分の設計ミスの理由がわからん
てことだろ >>119
その理屈で言えば、テレビが壊れた時
何が原因で壊れたのかわからなくなりそ
という、それ普通だよね?って話になる。
それを実現する技術まで知る必要はないんだよ。
お前だってCPUを実現してるシリコンの性質とかしらんやろ? プログラミングも同じ。
誰しもそれを実現してるライブラリや
その先のことまで考える必要はない そもそも数学的アルゴリズムは数学者が考えればいい
数学者はそういうことが得意だろ?餅は餅屋。
プログラマはアルゴリズムをソフトウェアで実装すればいいだけ >>134
プログラミング言語のコードで書いてあればなんでも読めるよw プログラミング言語で記述可能な数式や関数なんて
数学で扱える数式や関数のごくごく一部だから 逆にプログラミングで書かれたものを数式に出来るの?
例えばテトリスとか 数学者は
コンピューターが生まれるずっと前から
プログラム言語での記述の限界の研究をしてる
テトリスの記述くらい簡単 ルービックキューブは群論の研究対象だしテトリスも似たようなもんじゃね? テトリスのコードを数式で書くのと
テトリスのゲームの数学的解明とは全く違う話
ルービックキュブ群
学問としてはあまり価値が無い
昔研究したけど 普通に考えて、中学や高校で習う基本的な数学。
それ以外にない。
もの凄く役に立つ知識もあるけど、中高で数学が駄目だと話にならない。
あと、自分の分野の論文が読めるくらいの英語。 >>141
>中学や高校で習う基本的な数学
微積分は含まれますか?
線形代数、最近はやらないみたいですが、線形代数も含まれますか? >>142
そこで「考え方」を学ぶ。
集合とか写像とか高一でやるアレの方がもっと本質。
お前馬鹿だろ。いや、馬鹿だね。 >>143
集合は高校でやっていても、写像は高校ではやらないのでは?
やるとすれば、平面幾何(解析幾何)による軌跡の求めかた、くらいではないでしょうか >>144
今の高校数学教育は知らんけど俺んときはやった。
写像を知らないと大学レベルでやる群、環、体、束、そういうものすごく基本的なことが全く理解できない。
小手先のテクニックじゃなくて、考え方。演算という考え方。
役に立つとかいうより必須項目なのよ。 SQLについて聞かれて、
「まずは集合を演算する言語だと思った方がいい。オラクルのあれこれはまず見るな」
と答えて「あーなるほど」と得心する人間は少ない。
RDBの考案者のコッホ自身が集合と写像を意識して設計したのにもかかわらず、だ。
20世紀初頭に数学に深刻な課題を突きつけたのも集合論。
集合は基礎の基礎の基礎。
…つっても分からんよな、おまえさんでは。 >>145
写像は、今の標準教科書ですらちょっと雑な感じがしますね
全体集合 N に含まれる集合 A の逆像(逆写像ではありません)f^-1(A) を、あなたならどう定義しますか?
私なら
「f^-1(A) は∀x(x∈f^-1(A)→f(x)∈A) かつ∀x(x not∈f^-1(A)→f(x)not∈A)を満たす」
と定義しますし、そう定義しないとその後の論理展開が不可能なのですが、この定義が教科書に載っているのはみたことがない 大学でゼミの教授が写像と関数の定義は同じで
実数を扱う時に関数、実数以外を扱う時に写像と
言葉で分けてるだけと言っていたのが印象に残っている。 >>147
変な定義
定義の中で自分自身を使ってるし
意味が直接的ではない
● f を以下とする
f :
x |-> f(x)
N -> M
●A⊂M の時 f^-1 を以下で定義する
f^-1(A) := { x∈N | ∃y∈A s.t. f(x)=y } コッホではないコッヅだよ
あと関数は写像の真部分照合 数学の用語をプログラミング言語の用語で説明してくれるものないかなぁw
プログラミング言語で説明されたほうがわかるwww 数学の用語は厳密さか重要だからなあ
プログラミング言語の用語と似ているところがあるけれども
微妙に違うから直観的な理解としてはいいかもしれないけど
厳密にいうと間違い >>154
数学者になりたいわけじゃないんで厳密さはいらんのよ
入門書と同じようにさらっと解説してくれればいい
用語を知らないから難しく感じるだけ。知ってる用語に対比させれば理解が早い
Σとか、ループ、初期値、終了値、ループの中身って
教えればプログラミングしたことのある小学生でも
簡単に理解できるやろ?w >>150
教科書によく掲載されている定義ですが、しかし、この逆像の定義では問題があります
f:N->M, A, B ⊂ M
のとき、
f^-1(A∪B) = f^-1(A)∪f^-1(B)…@
f^-1(A∩B) = f^-1(A)∩f^-1(B)…A
特にAの証明が直感に頼った記述になってしまい、極論をいえば記号論理は記号操作的に処理するべきというある種の理想とは遠い証明になってしまいます
Aの証明を示していただけますか? よく分からんけど数学の証明ってちょいちょい「直感的に明らか」って使うよね 数学の用語とコンピュータ用語対応早見表
数学 コンピュータ
ーーーーーーーーーーーーーーー
集合 型
積 タプル
余積 判別共用体
指数 関数
(自己)関手 ジェネリッククラス
自然変換 パラメトリック多相関数
イコライザ SQL
表現可能関手 メモ化
指数-積随伴 カリー化
F代数 再帰的データ構造の畳み込み操作
他に何かあるかな? >>157
x∈f^-1(A∩B)
<==>
f(x)∈A∩B
<==>
f(x)∈A ∧ f(x)∈B
<==>
x∈f^-1(A) ∧ x∈f^-1(B)
<==>
x∈f^-1(A) ∩ f^-1(B)
そのまんまな気がする >>159
代数学の用語を追加して。あれまんまオブジェクト指向やろ?w >>163
続きはお前に任せた。
数学の用語をプログラミング言語の知識で例えてみてくれ >>160
それは、f が全単射のときにしか使えない証明法ですね、すなわち f^-1が逆写像のときの証明であって逆像のときの証明ではない
その証拠に f^-1 :逆像の定義をまったく使っていないですよね 集合は要素の重複を許さないのが定義の一部だから
HashSet とかあっているんだよなあ >>165
単射や全射の条件など使ってないけど
>>150の定義通り書くと以下だけど
x∈f^-1(A)
<==> x∈ { x∈N | ∃y∈A s.t. f(x)=y }
<==> ∃y∈A s.t. f(x)=y
<==> f(x)∈A
ていうか、定義も以下で良かった
f^-1(A) := { x∈N | f(x)∈A } >>161
代数学がオブジェクト指向というのはよくわからない。
単純に俺がオブジェクト指向を知らないだけかもしれないけど。
オブジェクト指向のクラスポリモーフィズムの根底にあるのは存在量化型だと思うけど、
存在量化型は数学というより型理論だから、そのさらに背後にある数学とかはもっと詳しい人に譲る。 >>169
http://hooktail.sub.jp/algebra/FieldDef/
> ある集合があって,その集合が,四則演算(加法,減法,乗法,除法)に関して閉じているとき,この集合を 体 と呼びます.
数値オブジェクトには、add, sub, mul, div メソッドがあって、+, -, *, / という演算子で
メソッドをよびだすことが出来ます。
https://ja.wikipedia.org/wiki/%E9%A0%86%E5%BA%8F%E9%9B%86%E5%90%88
> 数学において順序集合(じゅんじょしゅうごう、英: ordered set)とは「順序」の概念が定義された集合の事で、
つまりcompareインターフェースを実装したもの とりあえず数学もプログラミングも専門家(プロ)の俺からしたら
>>159はめちゃくちゃ 具体的な事と抽象的な事があれば、具体的な事の方が理解しやすい。
それは数学が得意な人でも得意じゃない人でも同じ
だけど数学が得意というか好きな人は具体的な事を
抽象化する作業が好き、つまり自分が好きな事をやっている。
だけど数学が好きではない人が数学を理解する時
抽象化する作業は好きではないのですっ飛ばす。
すっ飛ばした上で抽象化された結果から見る。
抽象化された結果から見ても、理解するのは難しい。
だから具体的な事で話せと言うのに、数学が得意な人は
俺が好きな抽象化はお前も好きだろ?ということで
具体的な事から抽象化する作業の話をする。
違うんだよ。俺らが求めてるのは抽象化されたものを理解するために
より具体的な事に持っていきながら説明しろって事なんだ。
お前らが好きな事の話をしろと言ってるんじゃない。 これとこれは実は原理は同じなんだよ
というのが数学なので
具体例に限ってしまうとありがたみがなくなるんだよな
この具体例は数学の何々が使えるから
という推論ができないとダメ 四つの種類の選択の中から重複ありで、二つを二回選んで、求めてる四つと順序と種類が合致する確率の計算式ってどう書けばいい? >>177
数学のありがたみを感じたいんじゃない。
数学を学びたいだけ。
数学を学ぶことは〜とかいう話ではない
数学の本質を知りたいのではなく
数学の本に書いてある数式を読みたいだけ >>174
だからどのへんがめちゃくちゃなのか言ってみろやw
圏論的積の意味もわからない自称専門家くんww 例え話は100%一致していない。
だからめちゃくちゃである。