◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:プログラムを組むのに数学の勉強は必要か?数学板住民の意見は ->画像>1枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/math/1729855636/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
あなたの考える「数学」が、私の考える「数学」と一致している保証がないから、その質問は無意味
必要だと思ったら勉強したらいいだろ 何でも人に聞かんと勉強できんのか?
無能が「勉強の仕方」を勉強してる間に、出来るやつは勉強を始めてる
で、「勉強法の勉強」で頭よくなったつもりになった無能は、ずっとそれだけやってる エコーチェンバーで周りにも同じような連中ばかりが集まって、その中で自己肯定感高まって、一生そのレベルから抜け出せない
プログラムを理解するための数学だったらプログラム意味論とかやれば? λ計算とか。
>>1 受験数学じゃなくて、数学を研究するという意味での数学だったら役に「は」たつ。
(例えば、足し算の動きがシーソーみたい動きをしているとか、そういうのに気付けるかとか)
でも、それはアルゴリズム部分の話で、データ構造の部分は調べる能力が必要。
(ポピュラーなファイル規格に準拠できるだけのものが作れなければ役に立つものは作れない)
両輪揃ってないと「使えない奴」認定で終わる。
精通 男児が性的に成熟していく過程で生まれて初めて経験する射精
AI による概要 プログラミングには数学の知識が必須ではありませんが、目指す分野によっては必要になる場合があります。 一般的なプログラミングでは、足し算・引き算・掛け算・割り算の四則演算さえできれば問題ありません。ただし、ゲーム開発やAI開発などの分野では、数学の知識が必要になります。 ゲーム開発では、3D空間での物体の位置や動きを計算するために、ベクトルや行列、微分積分学などの数学的概念が使用されます。また、キャラクターや物体の動作をよりリアルで滑らかに表現するためには、三角関数などの物理の知識も必要です。 数学的思考力(論理的思考力)が高まると、プログラミングする上で役立つでしょう。
>>11 疑問文を入力してGoogle検索すれば回答が得られる
>>11 >プログラミングには数学の知識が必須ではありません
然り
>一般的なプログラミングでは、足し算・引き算・掛け算・割り算の四則演算さえできれば問題ありません
実際は四則演算も要らん
でも数学の知識があるとコードを短くできる場面もあるっぽい。 自分が見たのはじゃんけんの手が群をなす?とかで条件分岐を無くしてた。 誰か理解できる人は解説頼む。
>>14 >でも数学の知識があるとコードを短くできる場面もある・・・
それは否定しない
数学の一部と言ってもいいコンピュータサイエンス(CS)でも基礎である、アルゴリズムのオーダーの概念の理解が必要 いわゆる遅いアルゴリズムでプログラミングしてしまう状況に陥らないため
>>16 ランダウの記号は解析学的な近似計算にも便利。
結局は二回不可逆圧縮やハッシュ関数を通してみd・d=0
意味なんて意味ない
プログラミングは数学の一部である したがって数学が必要なのは自明
>>20 完全に一部でもない。 プログラミング 数学 |入出力| 共通点 |稠密、連続| プログラミングにも数学にも、それぞれ再現できない概念が存在する。 そこ(の一部)を埋めるのがプログラミングのモナド。
そりゃHaskellでも作ったことあるけど、今って数学の話してるんじゃないの?
やはりか。 モナドというのはλ計算+αのことで、λ計算で表現できない効果を表現するために導入される概念だが 全然知らんだろう。
>>22 埋めてないですよ?
私個人の見解では、モナドは入出力に対してはアウトソーシングの様な働きをすると認識しています。
IOモナドは外部に依頼(アウトソーシング)して、他のモナドは同じHaskell(数学)世界に依頼(同僚や部下に頼む感じ)する。
関数自体、アウトソーシング的な概念。
(それが数学の外にも向いたと考える)
Maybe
f >>= g
f = Just 0 -- 数学内へ初期化依頼
g = Just.(+1) -- +1してJustに入れる依頼
IO
f >>= g
f = readLn -- 外部へ初期化依頼。
g = print.(+1) -- +1して出力して、IOに()を入れる依頼
戻り値を破棄するf >> gの場合は完了報告だけしてくれれば良いよ。的な。
型が依頼書の書式とか、そんな感じ。
モナドは数学が、数学の外の世界と遣り取りする手段「にも」なる概念
>>32 純粋関数型言語には作れないんじゃないとか言われてたので作ってみたのはカウンター。
CUIのカウンターはmapM_ (\x -> print x >> getLine) [1..]ってしただけ。
当時は"q"を押したら終了とか、"clear"って入れたらリセット(main関数で再帰)とか、もうちょっと凝ってた。
gtk2hsでカウンター。
ボタンの表示する文字(ボタンオブジェクトのバッファ)とHaskellで値を遣り取り。
Haskellは文字を読んで処理して返すだけなので、状態を持たない。
状態を持っているのはGUIのボタン。
モナドを使ったcomputational lambda calculusと言うものがあってだね、現実のプログラムと数学のギャップを埋めている。 そもそもそのギャップを埋めるためにモナドが提案されてんだし。 それだと「アウトソーシング」って概念を数学に導入してるじゃん
>>34 「私個人の見解では」って書いてた。Haskellerは論文読まないからいつまでたってもモナドがなんなのかわからない。
結局、自分もネットでググった知識しかないから、一昔前の話しかできないわけだ せめて英語の文献を読んでいれば
>>36 Haskellって名前はカッコイイけど人気ないな
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]]
バグが出にくいってのは正しいし、標準ライブラリの範囲なら生産効率でPythonを上回るし、最新のHaskellは速度もC#と同程度まで改善されてきた。 (純粋じゃなければ、Standard ML, OCaml はC並みの速さ謳ってるし、正格評価版HaskellのIdris2も高速らしい) 利点としては十分なんだけど、普及してないが故にとにかくライブラリやフレームワークが少ない。
>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) mylist n m = take n.iterate f $ [1..m] where f = map (+m)
生産性の低さと学習コストが普及のネックになってるのか
結局、モナドなんて名前出すから「モナドって何?」ってなる。 分かったら色んな所にご利益があるって気付いて感動するけど、 副作用の分離と副作用使っても参照透明性が保たれているって以外は 普通のプログラミング言語を再現するためのものでしかない。 そういう動きの演算子で、do形式に変換できるっていうだけに留めるだけで、 大分ハードルは下がると思う。 どうしてもモナドを説明したいなら、お勧めのモナドの説明は 「箱の様なものから値を取り出して加工して、箱の様なものに戻す動きをモナドという」 これなら入出力はもちろん、リストやMaybeも統一的にモナドを説明できる。
それ数学じゃないじゃん。 Paul Hudakも言ってるけど、モナドは表示的意味論を構造化するためのもの。 入出力付きプログラムとか計算効果付きプログラムを数学的に解釈することを狙ったものだよ。
自分が数学としてのモナドを理解しきれてないってのもあるけど、ネットのモナドの例えが ・モナドな世界から数学な世界に降りてきて、モナドな世界に戻す。---___---みたいな所を上下移動するイメージ ・床下配線。上とは逆で、モナドな世界が下にあるイメージ ・IOモナドは世界を受け取って世界を返す。関数適用前の世界から値を取り出し、関数を適用。関数の戻り値が関数適用後の世界。 という、煙に巻かれたような説明ばかりで、自分なりに納得する理由を考えた結果なのですよ^^; なにか一般人に分かり易いモナドの説明があったら教えてほしいですね。切実に。
純粋関数: f :: A -> B, g :: B -> Cとすると 合成は単純に g・f :: A -> C 結合律も満たす。 恒等射を1_X :: X -> X とすると f・1_A = f (右単位元) 1_B・f = f (左単位元) を満たす。 なので純粋関数は圏をなす。 計算効果T付きプログラム: p :: A -> T B、q :: B -> T C とすると合成は q `bind` p :: A -> T C 結合律も満たす。 return :: X -> T Xというものを導入すると p `bind` return = p (右単位元) return `bind` p = p (左単位元) を満たすようにTとbindとreturnに条件を付けることができる。 (T,bind,return)に対するこの条件をプログラミングの世界ではモナド則という。 モナド則を満たすならば、計算効果付きプログラムは純粋関数と同じく圏をなす。 そうすると、副作用のない純粋関数の世界(圏)と副作用のあるプログラムの世界(圏)を分離できました(構造化できました)よというのがモナド。
モナド則はモナドの説明の時に出てきますので知ってますし、その結果 ・副作用のある関数を使っても参照透明性が保たれている ・型によって純粋関数と副作用のある関数を分離できる はHaskell学んだ人は知ってますが、それでも「モナドって何なの?」って思うわけで…。 数学書って「定義」→「定理」→「証明」の繰り返しで、 抽象的過ぎて何やってるのか実際に数式をいじらないと有り難味が分かりづらいですから^^; 要するに納得感が欲しいのですよ。 それで、納得感を与える私なりの説明が >51 なんです。 もう少しHaskellのモナドの効果を調べると ・do表記からも分かる通り、順次処理もモナドの効果。(Haskellのプログラムは事実上1つの巨大な式) ・リストが左から順に処理されるのも、MonadPlus内でdo x <- xsが使われているので、ある種モナドの順次処理の効果。 (リスト内包表記はdo表記とガード関数の合わせ技。do表記の方は(実用上の意味は無いが)リスト以外のモナドにもできる) というのもありますね。
こちらは私個人は疑惑的ですが、圏論の道案内という本では MaybeモナドやListモナドの空の状態を意味するNothingや[]が 例外を一か所にまとめるという点で例外処理より優秀とか書いてましたね。 これもモナドの効果でしょう。 -- 1度Nothingが返ったら、後に何をしてもずっとNothingになる Just 1 >>= Just.(+1) >> Nothing >>= Just.(+2) = Nothing
「モナドって何なの?」=>計算効果付きプログラムが圏を成すための合成機構。その条件がモナド則 多分なんか勘違いしてる >・副作用のある関数を使っても参照透明性が保たれている >・型によって純粋関数と副作用のある関数を分離できる 参照透過性を保ちつつ副作用のあるプログラムは別にモナドなくても作れる。合成ができないだけで。 型も大事ではあるけれど、圏としてつまり数学的構造として純粋関数と計算効果付きプログラムを分離しているのはモナド則なんだよ。 >数学書って「定義」→「定理」→「証明」の繰り返しで 数学書読んでもわかんないよ。あれって数学云々の前の前提の部分が肝心だから納得感欲しいなら元論文読んだ方がいいよ。 数学的には圏を成すかなさないかだけだと思うし。
ふうむ…。 私の勘違いのもとは、そちらが「計算効果付きプログラム」としきりに書いているところが鍵な気がしますね。 元論文というのは >56 のPDFでしょうか? 勉強させていただきます。 それにしても、やっぱり一般の人がモナドを理解って難しい…。 >51 って、そちらの言う 計算効果T付きプログラム: p :: A -> T B、q :: B -> T C とすると合成は q `bind` p :: A -> T C 結合律も満たす。 の動きをそのままTを入れ物の様なものとして書いただけなんですけどね…。 この説明じゃダメなんかなぁ…。 でも、「圏を成すための合成機構。その条件がモナド則」か。 うん、そこは分かってて、でも結局モナドって何者?って感じる…。 ええい、とりあえず元論文読ませていただきます!
おおう。 ありがとうございます。 読ませていただきます。
ちなみに「計算効果」というのはあとから与えられた名称なので元論文には出てこない。相当するのはnotion of computationという概念かな。 圏論使った理論なんだからまず圏なさないといけないじゃん。普通は圏を成さないプログラムを圏にしようと思うとモナドが必要になる、では納得できないもん? ちなみに動作機構の解釈とか、do表記の解釈とかは無いよ。あくまで表示的意味論を構造化するもんだから。そういうのは副産物的に便利なだけだと思う。
>>63 「モナドが必要になる」は分かるんですよ。
純粋数学におけるモナドってどういう位置づけ?みたいな感覚でしょうか。
多分、純粋数学のどこでモナドって現れるの?が聞きたいのかも。
具体例がいくつかあれば、イメージ湧く気がします。
モノイドが数え上げや繰り返しによく表れる構造。みたいなのが欲しいのかも知れません。
そんなもん知るかよ。要求するレベルが高すぎ。自分で言ってること冷静に考えた方がいいぞ。 理論計算機科学者の専門家でもそれ満足できる人なんてほとんどいないと思う。 絶対そこまで理解いらないと思う。方向性がおかしいと思う。 でもマジでやりたいなら、計算効果じゃなくて代数的効果(algebraic effects)を勉強すべき Lawvereの代数的理論から見たモナドを理解しないとモナドに納得できないみたいなことを言ってる。 普通に考えて専門家でもそこまで理解してないって。
でも多分、Haskell勉強してる人ってレベルを問わず、そういう要求してるんですよね。(もちろん、私も含めて) それでモヤモヤして >53 みたいな例えで終わるか、そこまでもイメージできずにHaskellアンチに回るか。 せめて、モノイドの具体例みたいに、モナドの具体例があれば…。 (構造的にはモノイドと似てるので、モノイドの適用範囲外の対象でモノイド的な動きをしてそうなんですが…) 例えば逐次処理は数え上げっぽい動きと言えるけど、モノイドの対象じゃないからモナドの具体例(?)。 とか、そういうのが数学でもモナドの具体例で無いでしょうか?
モナド、モナド言う割にあんま大して調べてないんじゃね?
Haskellのモナドは数学のモナドと直接対応しないぞ。
つまりモノイドとのメタファは直接は成り立たない。
直接対応するのはKleisli圏。Haskellのモナドの三つ組はKleisli tripleというのに対応する。
https://www.ipsj.or.jp/07editj/promenade/4703.pdf 具体例知りたければ、数学のKleisli圏調べればいいんじゃね。でも、もともとの出自からして具体的な
ものはないんじゃないか。
もしかして常にControl.Monad モジュール?だったかインポートして
>>=の代わりに全部joinでプログラム組んでいるという特殊なHaskeller?
>>=の代わりにjoin使えば、モナドは文字通り数学のモナドと対応するよ。
オペラッドもカリー化も 多変数写像を一変数写像にする枠組みに使えないだろうか?という共通意識を持ってそう。
>>67 >Haskellのモナドは数学のモナドと直接対応しないぞ。
これはいい事を聞きました。
joinですね。やってみます。
>つまりモノイドとのメタファは直接は成り立たない。
モノイドとのメタファは圏論の基礎に三角図式がどっちにもあったし、どちらも結合法則を満たす。
モノイドの条件は結合法則を満たす事のみって事で、勝手に独自に思ったものです。
(なので、自分の中では群も環も体もモノイドでもある)
>数学のKleisli圏調べればいいんじゃね。
調べてみます。
やっぱ知らなかったか。そりゃ理解できないわ。 Haskellerに多いんじゃない?直接対応するのKleisli tripleってこと知らない人。 圏論の基礎の初めのあたりにモナドとモノイドとの対比が載ってるから広がったんだと思うけど、 モノイド知っても何か足しになるとは思えない。 そういえば、『圏論の歩き方』にKleisli圏の例が載っていた気がする。代数じゃなくてたしか確率だったけど。
>>71 >Haskellerに多いんじゃない?直接対応するのKleisli tripleってこと知らない人。
多いと思います。
圏論の入門書買ってまで勉強する人は少ないですし、数学が理解できる人もさらに少ないので。
私は数学理解できなかったので、今数学の学び直しからです。
(アーベル圏のアーベルって何?状態で、アーベル = 可換と群論で知った感じです)
歩き方の方ですか、道案内の方は持ってるのですが、著者が同じなので読み直そうかな。
まず大前提としてHaskellをやるのに圏論は必要ないし得るものもないってところから理解しよう
>>1 必要ない。ラムダ計算論は知っておいていいとは思うが、オブジェクト志向に役立つ
数学理論というのは特にないだろう
それよりも具体的に作りたいソフトウェアとコンパイルを意識しながら簡潔なコーディングを考える訓練をしたほうがいい
最新最強の言語Rustを学べば オブジェクト指向や関数型プログラミングが何かの議論も意味を成さなくなる
何をするか、どんな処理をするかではなく どんなものを処理していくのかを起点にコードを整理していく技術
すみません、ちょっと内々に聞きたいことがあるのですが、 とある会社が詐欺をしている証拠を発見しまして、あまり公には書けない内容なのですが このスレにseoとドメインについて多少知識のある方いますか? もし質問に答えていただける方居ましたら、メール欄に使い捨てのメルアドでも貼っていただければ、そちらにメールさせていただきますので 使い捨てメアドはワンタイムメールってのが使いやすいです よろしくお願いいたします
>>81 本当は専門スレの方で質問したいんですけど、犯人がそっちの方のスレとかも見てるらしいので
そちらでは質問しませんでした
read.cgi ver 07.7.25 2025/07/21 Walang Kapalit ★ | Donguri System Team 5ちゃんねる
lud20250806030913このスレへの固定リンク: http://5chb.net/r/math/1729855636/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。 TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「プログラムを組むのに数学の勉強は必要か?数学板住民の意見は ->画像>1枚 」 を見た人も見ています:・数学の勉強をせずに数学者のWikipediaばかり読んでる人 ・【悲報】地方国立大卒の日本人女さん 「たかだか大学受験勉強すら頑張れない人々は社会でもやっていけないよね(笑)」学歴は必要か?★7 [スタス★] ・歴史は勉強する意味があるのか@数学板 ・数学板の皆さんの勉強法教えてください ・今年はプログラムを勉強してみるよ ・今年はプログラム勉強してゲームつくるよ! ・プライベートで勉強してるプログラマー ・今月から職業訓練でプログラミングを勉強します ・空き時間にパソコン無しでプログラムの勉強できる? ・社会人だけど独学で英語とプログラミング勉強してるんだが ・プログラム勉強中ワイ「だからなに?」の連続なんやが ・モテない理系プログラマはAI, 機械学習を勉強しよう ・プログラミング言語C++って勉強した方がいいのか? ・プログラミング勉強したいんだけどまずhtmlやればいいの? ・【IT】無職だが二月から職業訓練でプログラミングを勉強する。応援してくれ ・ワイ「プログラミング勉強したい!」敵「で、何を作りたいの?」←こいつの正体 ・NVIDIAの革ジャン「子供たちはもうプログラミングを勉強する必要ない。AIに自然言語で指示するだけでプログラムはできる」 ・ワイ「プログラミング勉強してみるか……」PC「HelloWorld!!」ワイ「ふふっ」 ・プログラミング初心者だったけどクラス設計の勉強がてらphpで作ってたMVCフレームワーク完成したんだが ・プログラマー「めっちゃ頭いいです。休日も朝から晩まで勉強してます。でも平均年収300万円です」←これ ・世界最高齢プログラマー若宮正子(81)「もう一度、お勉強、始めてごらんになりませんか」(ヽ´ん`)「ん…そうする」 ・素人「プログラミング勉強したいー!」バカ「じゃあこう打ち込んで・・・ほら「Hallo Word」ってでたw ・大学数学の先取りは必要か? ・【Twitter】「読書感想文は必要か?」国語教師の問いかけが議論呼ぶ…「強制がよくない」「自分の意見を持つ訓練になる」 ★6 [ばーど★] ・数学の勉強がつまらない ・数学の勉強の仕方 283 ・数学の勉強の仕方 280 ・数学の勉強の仕方 297 ・数学の勉強の仕方 300 ・数学の勉強の仕方262 ・数学の勉強の仕方 286 ・数学の勉強の仕方255 ・数学の勉強をしたらageるスレ ・数学の勉強時間一日あたり ・数学の勉強の仕方 279 ・受験数学のベストな勉強法 ・数学の勉強方法教えてくれ ・数学の勉強教えてください ・数学の勉強の仕方 Part232 ・数学の勉強の仕方 Part230 ・いつまでも「数学の勉強」を始めないやつ ・数学の勉強の仕方 Part216 ・数学の勉強方法教えてください ・【子育ての難問】勉強は必要ないのか? ・プログラミングを勉強したいんだが ・解剖生理学の勉強の仕方を教えて欲しい ・ガチで数学の基礎からの勉強法教えて ・大学の試験って何日前に勉強するもんなの? ・プログラミング初心者だけどHSPを勉強しようと思う ・大学レベルの数学の各分野を勉強する線形順序 ・【急募】ワイ高2、数学の勉強法が分からなくなる ・大学の勉強は記述式なのにマーク中心で選抜してる大学ってなに? ・ワイ以上に意識高い化学の受験勉強した奴おる?wwww ・【バイブルの意味は】文学板雑談スレ251【書物】 ・素粒子物理学の勉強したいんだけど、どっかいい大学知ってる? ・現役でMarchの文系に進学するけど浪人YouTuberを見てて数学の勉強したくなった ・頭の悪い人「勉強なんて必要ない!」 頭のいい人「勉強は必要」 なぜなのか ・大学の勉強にはついていけないし友達はいないしバイト先の好きな子には嫌われるし ・一年生俺「ふーん、集合論が数学の基礎なのか。集合論勉強しよ。順序数むずいなぁ」 ・沖タイ阿部岳記者「辺野古住民投票に反対する石垣市の意見書は民主主義に対する暴力だ」 ・【国際】メキシコ麻薬王、グスマン受刑者「先住民に1兆5000億円の財産寄付」の意向 ・知的障害者が本気で勉強したら受かりそうな大学の上限ってたぶん「成蹊大学法学部政治学科」だよな ・中卒のクズが今から1年間勉強して偏差値50台の国立大学に入ろうと思ってるんだが、嫌儲民の意見を聞かせてくれ。 ・【世論調査/Sputnik】ロシアへの統合を望む沿ドニエストル住民の意志を確認[06/19]
03:40:49 up 138 days, 4:39, 0 users, load average: 32.30, 27.93, 22.65
in 1.2767970561981 sec
@1.2767970561981@0b7 on 090216