[過去ログ] プログラムを組むのに数学の勉強は必要か?数学板住民の意見は (83レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(2): 2024/10/25(金)20:27 ID:3MkTKHV4(1) AAS
本当に数学に精通している人からの意見が聞きたい
3: 2024/10/25(金)20:39 ID:JrqraUA+(1) AAS
あなたの考える「数学」が、私の考える「数学」と一致している保証がないから、その質問は無意味
4: 2024/10/25(金)20:59 ID:ub6u/Y3b(1) AAS
必要だと思ったら勉強したらいいだろ
何でも人に聞かんと勉強できんのか?
5: 2024/10/25(金)21:03 ID:0xJ/URst(1/2) AAS
無能が「勉強の仕方」を勉強してる間に、出来るやつは勉強を始めてる
6: 2024/10/25(金)21:06 ID:0xJ/URst(2/2) AAS
で、「勉強法の勉強」で頭よくなったつもりになった無能は、ずっとそれだけやってる
エコーチェンバーで周りにも同じような連中ばかりが集まって、その中で自己肯定感高まって、一生そのレベルから抜け出せない
7: 2024/10/25(金)21:14 ID:o+Bu8dN0(1/2) AAS
プログラムを理解するための数学だったらプログラム意味論とかやれば?
λ計算とか。
8: 2024/10/25(金)21:25 ID:o+Bu8dN0(2/2) AAS
そもそもλ計算というものは知ってる?
9: 2024/10/26(土)08:06 ID:0cRJo0MK(1/2) AAS
>>1
受験数学じゃなくて、数学を研究するという意味での数学だったら役に「は」たつ。
(例えば、足し算の動きがシーソーみたい動きをしているとか、そういうのに気付けるかとか)
画像リンク[jpeg]:i.imgur.com
でも、それはアルゴリズム部分の話で、データ構造の部分は調べる能力が必要。
(ポピュラーなファイル規格に準拠できるだけのものが作れなければ役に立つものは作れない)
両輪揃ってないと「使えない奴」認定で終わる。
10: 2024/10/26(土)08:36 ID:u7/+tkcS(1) AAS
精通
男児が性的に成熟していく過程で生まれて初めて経験する射精
11(2): 2024/10/26(土)10:21 ID:fFhsFvS8(1/2) AAS
AI による概要
プログラミングには数学の知識が必須ではありませんが、目指す分野によっては必要になる場合があります。
一般的なプログラミングでは、足し算・引き算・掛け算・割り算の四則演算さえできれば問題ありません。ただし、ゲーム開発やAI開発などの分野では、数学の知識が必要になります。
ゲーム開発では、3D空間での物体の位置や動きを計算するために、ベクトルや行列、微分積分学などの数学的概念が使用されます。また、キャラクターや物体の動作をよりリアルで滑らかに表現するためには、三角関数などの物理の知識も必要です。
数学的思考力(論理的思考力)が高まると、プログラミングする上で役立つでしょう。
12: 2024/10/26(土)10:24 ID:fFhsFvS8(2/2) AAS
>>11
疑問文を入力してGoogle検索すれば回答が得られる
13: 2024/10/26(土)10:32 ID:wMu1UaCb(1/2) AAS
>>11
>プログラミングには数学の知識が必須ではありません
然り
>一般的なプログラミングでは、足し算・引き算・掛け算・割り算の四則演算さえできれば問題ありません
実際は四則演算も要らん
14(1): 2024/10/26(土)20:14 ID:0cRJo0MK(2/2) AAS
でも数学の知識があるとコードを短くできる場面もあるっぽい。
自分が見たのはじゃんけんの手が群をなす?とかで条件分岐を無くしてた。
誰か理解できる人は解説頼む。
15: 2024/10/26(土)20:57 ID:wMu1UaCb(2/2) AAS
>>14
>でも数学の知識があるとコードを短くできる場面もある・・・
それは否定しない
16(2): 2024/10/26(土)22:16 ID:taSceqpL(1) AAS
数学の一部と言ってもいいコンピュータサイエンス(CS)でも基礎である、アルゴリズムのオーダーの概念の理解が必要
いわゆる遅いアルゴリズムでプログラミングしてしまう状況に陥らないため
17(1): 2024/10/26(土)22:41 ID:FIBH2Cbw(1) AAS
>>16
ランダウの記号は解析学的な近似計算にも便利。
結局は二回不可逆圧縮やハッシュ関数を通してみd・d=0
意味なんて意味ない
18: 2024/10/27(日)07:10 ID:nu6S2t+f(1/2) AAS
>>16
CSは数学としては大したことない
>オーダーの概念
計算量の評価に解析のオーダーが必要ってこと?
ランダウの記号
外部リンク:ja.wikipedia.org
19: 2024/10/27(日)07:11 ID:nu6S2t+f(2/2) AAS
>>17
>意味なんて意味ない
意味って何?
20(1): 2024/10/27(日)15:16 ID:k48lWp25(1) AAS
プログラミングは数学の一部である
したがって数学が必要なのは自明
21: 2024/10/27(日)18:26 ID:wu6Ollaf(1/4) AAS
>>20
完全に一部でもない。
プログラミング 数学
|入出力| 共通点 |稠密、連続|
プログラミングにも数学にも、それぞれ再現できない概念が存在する。
22(1): 2024/10/27(日)18:32 ID:NJ3emw00(1/9) AAS
そこ(の一部)を埋めるのがプログラミングのモナド。
23: 2024/10/27(日)18:35 ID:KkbwwIvn(1/8) AAS
素人乙
24: 2024/10/27(日)18:37 ID:NJ3emw00(2/9) AAS
どこらへんが?
25: 2024/10/27(日)18:54 ID:KkbwwIvn(2/8) AAS
プログアム作ったことあるの?
26: 2024/10/27(日)18:56 ID:NJ3emw00(3/9) AAS
そりゃHaskellでも作ったことあるけど、今って数学の話してるんじゃないの?
27: 2024/10/27(日)19:08 ID:KkbwwIvn(3/8) AAS
ゴミ
28: 2024/10/27(日)19:13 ID:NJ3emw00(4/9) AAS
お前が素人なんじゃん。
29: 2024/10/27(日)19:22 ID:KkbwwIvn(4/8) AAS
図星
30: 2024/10/27(日)19:23 ID:KkbwwIvn(5/8) AAS
言語のシェア・人気トレンド
外部リンク:techmania.jp
31: 2024/10/27(日)19:38 ID:NJ3emw00(5/9) AAS
やはりか。
モナドというのはλ計算+αのことで、λ計算で表現できない効果を表現するために導入される概念だが
全然知らんだろう。
32(1): 2024/10/27(日)20:29 ID:KkbwwIvn(6/8) AAS
ハスケルで何のプログラム作ったんだ?
33: 2024/10/27(日)20:33 ID:NJ3emw00(6/9) AAS
古いがwxHaskellでさめがめとか。
34(1): 2024/10/27(日)20:51 ID:wu6Ollaf(2/4) AAS
>>22
埋めてないですよ?
私個人の見解では、モナドは入出力に対してはアウトソーシングの様な働きをすると認識しています。
IOモナドは外部に依頼(アウトソーシング)して、他のモナドは同じHaskell(数学)世界に依頼(同僚や部下に頼む感じ)する。
関数自体、アウトソーシング的な概念。
(それが数学の外にも向いたと考える)
Maybe
省9
35: 2024/10/27(日)20:55 ID:wu6Ollaf(3/4) AAS
モナドは数学が、数学の外の世界と遣り取りする手段「にも」なる概念
36(1): 2024/10/27(日)21:09 ID:wu6Ollaf(4/4) AAS
>>32
純粋関数型言語には作れないんじゃないとか言われてたので作ってみたのはカウンター。
CUIのカウンターはmapM_ (\x -> print x >> getLine) [1..]ってしただけ。
当時は"q"を押したら終了とか、"clear"って入れたらリセット(main関数で再帰)とか、もうちょっと凝ってた。
gtk2hsでカウンター。
ボタンの表示する文字(ボタンオブジェクトのバッファ)とHaskellで値を遣り取り。
Haskellは文字を読んで処理して返すだけなので、状態を持たない。
省1
37: 2024/10/27(日)21:12 ID:NJ3emw00(7/9) AAS
モナドを使ったcomputational lambda calculusと言うものがあってだね、現実のプログラムと数学のギャップを埋めている。
そもそもそのギャップを埋めるためにモナドが提案されてんだし。
それだと「アウトソーシング」って概念を数学に導入してるじゃん
38: 2024/10/27(日)21:14 ID:KkbwwIvn(7/8) AAS
通信できるのか?
39(1): 2024/10/27(日)21:58 ID:NJ3emw00(8/9) AAS
>>34
「私個人の見解では」って書いてた。Haskellerは論文読まないからいつまでたってもモナドがなんなのかわからない。
40: 2024/10/27(日)22:11 ID:KkbwwIvn(8/8) AAS
postgsqlと繋がるのか?
41: 2024/10/27(日)23:25 ID:NJ3emw00(9/9) AAS
知らない。
42: 2024/10/28(月)00:51 ID:f5zvfyqN(1) AAS
>>39
対称モノイダル圏のほうが好き。
43: 2024/10/28(月)04:00 ID:dfYtzgey(1) AAS
ここまで依存型の話題なし
44: 2024/10/28(月)04:03 ID:xxR5iBU0(1) AAS
結局、自分もネットでググった知識しかないから、一昔前の話しかできないわけだ
せめて英語の文献を読んでいれば
45: 2024/11/06(水)13:48 ID:zhmK+C2E(1) AAS
>>36
Haskellって名前はカッコイイけど人気ないな
46(1): 2024/11/06(水)20:15 ID:4GPbLR/6(1) AAS
C言語系列(C/C++, Java, C#)触ってきた人にはRustの方が受け入れやすい。
速さを犠牲にしてまで純粋さを追い求める人が少ない。
入門する言語がC, VB, Pythonである限り、関数型言語は普及しない。
手続き脳と関数脳の違いもある。
2次元配列(リスト)に連続した値を入れるとかが違いが大きい。
(機会があったら、ぜひ作ってみてほしい)
mylist 3 4 = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
47: 2024/11/06(水)20:23 ID:eciaadzN(1) AAS
そもそも関数型ってそこまで利点ないしな
48: 2024/11/07(木)00:20 ID:GwHDNA0i(1/8) AAS
バグが出にくいってのは正しいし、標準ライブラリの範囲なら生産効率でPythonを上回るし、最新のHaskellは速度もC#と同程度まで改善されてきた。
(純粋じゃなければ、Standard ML, OCaml はC並みの速さ謳ってるし、正格評価版HaskellのIdris2も高速らしい)
利点としては十分なんだけど、普及してないが故にとにかくライブラリやフレームワークが少ない。
49: 2024/11/07(木)00:27 ID:GwHDNA0i(2/8) AAS
>46 のmylist関数をそれぞれPythonとHaskellで書いた。
タイムは6000x8000の最後の要素を表示するまでの時間。
Python(TotalSeconds : 8.4488738)
def mylist(n, m):
a = range(1, n * m + 1).__iter__()
return [[a.__next__() for _ in range(0, n)] for _ in range(0, m)]
Haskell(TotalSeconds : 3.4794725)
省2
50: 2024/11/07(木)16:42 ID:Fs1gLDBt(1) AAS
生産性の低さと学習コストが普及のネックになってるのか
51(2): 2024/11/07(木)18:25 ID:GwHDNA0i(3/8) AAS
結局、モナドなんて名前出すから「モナドって何?」ってなる。
分かったら色んな所にご利益があるって気付いて感動するけど、
副作用の分離と副作用使っても参照透明性が保たれているって以外は
普通のプログラミング言語を再現するためのものでしかない。
そういう動きの演算子で、do形式に変換できるっていうだけに留めるだけで、
大分ハードルは下がると思う。
どうしてもモナドを説明したいなら、お勧めのモナドの説明は
省2
52: 2024/11/07(木)20:35 ID:GuBZ+e11(1/5) AAS
それ数学じゃないじゃん。
Paul Hudakも言ってるけど、モナドは表示的意味論を構造化するためのもの。
入出力付きプログラムとか計算効果付きプログラムを数学的に解釈することを狙ったものだよ。
53(1): 2024/11/07(木)20:59 ID:GwHDNA0i(4/8) AAS
自分が数学としてのモナドを理解しきれてないってのもあるけど、ネットのモナドの例えが
・モナドな世界から数学な世界に降りてきて、モナドな世界に戻す。---___---みたいな所を上下移動するイメージ
・床下配線。上とは逆で、モナドな世界が下にあるイメージ
・IOモナドは世界を受け取って世界を返す。関数適用前の世界から値を取り出し、関数を適用。関数の戻り値が関数適用後の世界。
という、煙に巻かれたような説明ばかりで、自分なりに納得する理由を考えた結果なのですよ^^;
なにか一般人に分かり易いモナドの説明があったら教えてほしいですね。切実に。
54: 2024/11/07(木)21:20 ID:GuBZ+e11(2/5) AAS
純粋関数:
f :: A -> B, g :: B -> Cとすると
合成は単純に
g・f :: A -> C
結合律も満たす。
恒等射を1_X :: X -> X
とすると
省16
55: 2024/11/07(木)21:58 ID:GwHDNA0i(5/8) AAS
モナド則はモナドの説明の時に出てきますので知ってますし、その結果
・副作用のある関数を使っても参照透明性が保たれている
・型によって純粋関数と副作用のある関数を分離できる
はHaskell学んだ人は知ってますが、それでも「モナドって何なの?」って思うわけで…。
数学書って「定義」→「定理」→「証明」の繰り返しで、
抽象的過ぎて何やってるのか実際に数式をいじらないと有り難味が分かりづらいですから^^;
要するに納得感が欲しいのですよ。
省6
56(3): 2024/11/07(木)22:12 ID:FpXO3cRO(1/2) AAS
示的意味論
外部リンク[pdf]:repository.kulib.kyoto-u.ac.jp
57: 2024/11/07(木)22:13 ID:GwHDNA0i(6/8) AAS
こちらは私個人は疑惑的ですが、圏論の道案内という本では
MaybeモナドやListモナドの空の状態を意味するNothingや[]が
例外を一か所にまとめるという点で例外処理より優秀とか書いてましたね。
これもモナドの効果でしょう。
-- 1度Nothingが返ったら、後に何をしてもずっとNothingになる
Just 1 >>= Just.(+1) >> Nothing >>= Just.(+2) = Nothing
58: 2024/11/07(木)22:15 ID:GuBZ+e11(3/5) AAS
「モナドって何なの?」=>計算効果付きプログラムが圏を成すための合成機構。その条件がモナド則
多分なんか勘違いしてる
>・副作用のある関数を使っても参照透明性が保たれている
>・型によって純粋関数と副作用のある関数を分離できる
参照透過性を保ちつつ副作用のあるプログラムは別にモナドなくても作れる。合成ができないだけで。
型も大事ではあるけれど、圏としてつまり数学的構造として純粋関数と計算効果付きプログラムを分離しているのはモナド則なんだよ。
>数学書って「定義」→「定理」→「証明」の繰り返しで
省2
59: 2024/11/07(木)22:28 ID:FpXO3cRO(2/2) AAS
>>56
表示的意味論
60: 2024/11/07(木)22:37 ID:GwHDNA0i(7/8) AAS
ふうむ…。
私の勘違いのもとは、そちらが「計算効果付きプログラム」としきりに書いているところが鍵な気がしますね。
元論文というのは >56 のPDFでしょうか?
勉強させていただきます。
それにしても、やっぱり一般の人がモナドを理解って難しい…。
>51 って、そちらの言う
計算効果T付きプログラム:
省9
61: 2024/11/07(木)22:45 ID:GuBZ+e11(4/5) AAS
いや、>>56はなんかよくわからん人のレス。毒にも薬にもならんと思う。
元論文としては、
外部リンク[pdf]:person.dibris.unige.it
外部リンク[pdf]:person.dibris.unige.it
外部リンク[pdf]:www.cs.cmu.edu
あたりだけど、読んでもよくわかんないと思う(主に動機の面で。1番目は動機が比較的書いてあるけどそれでも読みにくいと思う)。
回り道を覚悟するならHaskellつながりでPaul Hudakの
省2
62: 2024/11/07(木)22:47 ID:GwHDNA0i(8/8) AAS
おおう。
ありがとうございます。
読ませていただきます。
63(1): 2024/11/07(木)22:52 ID:GuBZ+e11(5/5) AAS
ちなみに「計算効果」というのはあとから与えられた名称なので元論文には出てこない。相当するのはnotion of computationという概念かな。
圏論使った理論なんだからまず圏なさないといけないじゃん。普通は圏を成さないプログラムを圏にしようと思うとモナドが必要になる、では納得できないもん?
ちなみに動作機構の解釈とか、do表記の解釈とかは無いよ。あくまで表示的意味論を構造化するもんだから。そういうのは副産物的に便利なだけだと思う。
64: 2024/11/08(金)18:49 ID:cKORtqw5(1/2) AAS
>>63
「モナドが必要になる」は分かるんですよ。
純粋数学におけるモナドってどういう位置づけ?みたいな感覚でしょうか。
多分、純粋数学のどこでモナドって現れるの?が聞きたいのかも。
具体例がいくつかあれば、イメージ湧く気がします。
モノイドが数え上げや繰り返しによく表れる構造。みたいなのが欲しいのかも知れません。
65: 2024/11/08(金)19:39 ID:BwbJKvDJ(1/2) AAS
そんなもん知るかよ。要求するレベルが高すぎ。自分で言ってること冷静に考えた方がいいぞ。
理論計算機科学者の専門家でもそれ満足できる人なんてほとんどいないと思う。
絶対そこまで理解いらないと思う。方向性がおかしいと思う。
でもマジでやりたいなら、計算効果じゃなくて代数的効果(algebraic effects)を勉強すべき
Lawvereの代数的理論から見たモナドを理解しないとモナドに納得できないみたいなことを言ってる。
普通に考えて専門家でもそこまで理解してないって。
66: 2024/11/08(金)21:44 ID:cKORtqw5(2/2) AAS
でも多分、Haskell勉強してる人ってレベルを問わず、そういう要求してるんですよね。(もちろん、私も含めて)
それでモヤモヤして >53 みたいな例えで終わるか、そこまでもイメージできずにHaskellアンチに回るか。
せめて、モノイドの具体例みたいに、モナドの具体例があれば…。
(構造的にはモノイドと似てるので、モノイドの適用範囲外の対象でモノイド的な動きをしてそうなんですが…)
例えば逐次処理は数え上げっぽい動きと言えるけど、モノイドの対象じゃないからモナドの具体例(?)。
とか、そういうのが数学でもモナドの具体例で無いでしょうか?
67(1): 2024/11/08(金)22:14 ID:BwbJKvDJ(2/2) AAS
モナド、モナド言う割にあんま大して調べてないんじゃね?
Haskellのモナドは数学のモナドと直接対応しないぞ。
つまりモノイドとのメタファは直接は成り立たない。
直接対応するのはKleisli圏。Haskellのモナドの三つ組はKleisli tripleというのに対応する。
外部リンク[pdf]:www.ipsj.or.jp
具体例知りたければ、数学のKleisli圏調べればいいんじゃね。でも、もともとの出自からして具体的な
ものはないんじゃないか。
省3
68: 2024/11/08(金)23:29 ID:MIL/reCc(1) AAS
オペラッドもカリー化も
多変数写像を一変数写像にする枠組みに使えないだろうか?という共通意識を持ってそう。
69: 2024/11/09(土)08:30 ID:FY91cDX6(1/2) AAS
>>67
>Haskellのモナドは数学のモナドと直接対応しないぞ。
これはいい事を聞きました。
joinですね。やってみます。
>つまりモノイドとのメタファは直接は成り立たない。
モノイドとのメタファは圏論の基礎に三角図式がどっちにもあったし、どちらも結合法則を満たす。
モノイドの条件は結合法則を満たす事のみって事で、勝手に独自に思ったものです。
省3
70: 2024/11/09(土)09:46 ID:gP4Cl+Vg(1) AAS
カレーはバーモンドカレーに限る
71(1): 2024/11/09(土)18:05 ID:4Q5b7QAO(1) AAS
やっぱ知らなかったか。そりゃ理解できないわ。
Haskellerに多いんじゃない?直接対応するのKleisli tripleってこと知らない人。
圏論の基礎の初めのあたりにモナドとモノイドとの対比が載ってるから広がったんだと思うけど、
モノイド知っても何か足しになるとは思えない。
そういえば、『圏論の歩き方』にKleisli圏の例が載っていた気がする。代数じゃなくてたしか確率だったけど。
72: 2024/11/09(土)18:54 ID:FY91cDX6(2/2) AAS
>>71
>Haskellerに多いんじゃない?直接対応するのKleisli tripleってこと知らない人。
多いと思います。
圏論の入門書買ってまで勉強する人は少ないですし、数学が理解できる人もさらに少ないので。
私は数学理解できなかったので、今数学の学び直しからです。
(アーベル圏のアーベルって何?状態で、アーベル = 可換と群論で知った感じです)
歩き方の方ですか、道案内の方は持ってるのですが、著者が同じなので読み直そうかな。
73: 2024/11/10(日)15:35 ID:KGofMs6x(1/2) AAS
関数型プログラミング言語Haskell Part34
2chスレ:tech
74: 2024/11/10(日)15:36 ID:KGofMs6x(2/2) AAS
「数学」をプログラミングするには
2chスレ:tech
75: 2024/11/20(水)18:01 ID:gLlwGP4V(1) AAS
まず大前提としてHaskellをやるのに圏論は必要ないし得るものもないってところから理解しよう
76: 2024/11/20(水)20:29 ID:L0XHfTdv(1) AAS
>>1
必要ない。ラムダ計算論は知っておいていいとは思うが、オブジェクト志向に役立つ
数学理論というのは特にないだろう
それよりも具体的に作りたいソフトウェアとコンパイルを意識しながら簡潔なコーディングを考える訓練をしたほうがいい
77: 2024/11/21(木)07:45 ID:jE2BR9oB(1) AAS
すんません、オブジェクト指向ってなんですか?
78: 2024/11/23(土)11:30 ID:ZZ2Yx3Ws(1) AAS
最新最強の言語Rustを学べば
オブジェクト指向や関数型プログラミングが何かの議論も意味を成さなくなる
79: 2024/11/23(土)12:08 ID:GI4x0ZEB(1) AAS
何をするか、どんな処理をするかではなく
どんなものを処理していくのかを起点にコードを整理していく技術
80: 2024/11/23(土)15:51 ID:cGdJuX+x(1) AAS
一階論理は完全だけど二階論理は不完全である
81(1): 2024/11/25(月)16:05 ID:Jt/hI90E(1/2) AAS
すみません、ちょっと内々に聞きたいことがあるのですが、
とある会社が詐欺をしている証拠を発見しまして、あまり公には書けない内容なのですが
このスレにseoとドメインについて多少知識のある方いますか?
もし質問に答えていただける方居ましたら、メール欄に使い捨てのメルアドでも貼っていただければ、そちらにメールさせていただきますので
使い捨てメアドはワンタイムメールってのが使いやすいです
よろしくお願いいたします
82: 2024/11/25(月)16:43 ID:Jt/hI90E(2/2) AAS
>>81
本当は専門スレの方で質問したいんですけど、犯人がそっちの方のスレとかも見てるらしいので
そちらでは質問しませんでした
83: 2024/12/06(金)03:58 ID:psUqlDz4(1) AAS
スレチだよ
専門スレに行け
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.387s*