Math?」より私はコンピューターサイエンスやゲーム開発に関連する仕事に興味のある高校生で、先生や両親からテクノロジー関連分野に進むなら数学クラスの選択が必要だといわれています。私はUnity3DやOGREを2年以上使っており、プログラミングはそれよりも長く続けていますが、高校1年で習った三角法よりも高度な数学が必要になったことはありません。それで疑問に感じたのは、実際に微分積分以上の高等数学が必要になるのか、それとも「プログラムを書くのには数学が必要」と世間で思われているだけなのかという点です。みなさんの経験をお聞かせいただけますか。英国の高校レベル数学試験の難易度が低下している大学で数学を選択すると年間所得が100万円アップ科学計算向きのプログラミング言語は?数学嫌いの人が数学の問題に挑むと、脳内で物理的な痛みと同様の反応が発生するコンピューターサイエンスのカリキュラムに不足しているものは?「大学への数学」の研文書院が8月末で廃業コンピューターサイエンスの分野で、高等数学の重要性は?プログラマーは誰もがなれるものではない?この議論は賞味期限が切れたので、アーカイブ化されています。新たにコメントを付けることはできません。「数学がいらない」とかいう認識であるうちは、世界をリードする技術要素となるテクノロジを生み出すシリコンヴァレーのようなベンチャ企業はでてこないと思ってるけどなあ。(#2210884)画像処理と応用範囲はオーバーラップしてるけどコンピュータビジョン(顔認識とか)や機械学習にはまた別の数学分野が必要ですね。「数学がいらない」とかいう認識であるうちは、世界をリードする技術要素となるテクノロジを生み出すシリコンヴァレーのようなベンチャ企業はでてこないと思ってるけどなあ。3Dゲームエンジン作る際に線形代数とか使ってましたが「事前演算済み放射輝度伝播」というレンダリング技術がSiggraphで提案された時(もう十年以上前か)、量子力学とかで使われる「球面調和関数」を使ったと聞いたときはのけぞりましたねぇ。(#2210885)待ち行列理論とキャパシティプランニンググラフ理論応用(ソーシャル、ルーティング、セマンティックデータベース/RDF)ゲーム理論あたりもかじっておいて損はなさそう。(#2210921)使っているじゃなく、使ったことがあるものなら答えられるな。無いけど、知ってれば取れた仕事はあった。(#2210910)私はプログラマではありませんので。:-pという話はさておき、悲しきかな、実際日本にはそういう仕事は少ないし、評価も低いのが現実ですね。(#2210934)日本でも土方呼ばわりされる組込で使ってたりしますよ。ナノオーダーで計測したりするレーザー干渉計では複雑な数学の計算式に空気の屈折率などの様々な物理パラメータを当てはめて計算したりしています。二通りありえるが、半径の符号で区別するものとする。直線を引き、その端点の座標(x3,y3)を求めなさい。「なめらかにつながる」という事はそこで元の曲線の傾きが必要になります。円の方程式を微分することが求められます。種明かしをすると、工業用ロボットのアームの軌道計算でした。問1は、要するに凸と凹のどちらかになるわけですが、実機に数値を入力するときにいちいち判定するのが面倒なので、半径に負の値を入力したら単純に逆にしてくれ、という要望があったらしいです。実際には「お前が一番最近まで学生だったんだからやれ」と言われて式を計算しただけで、実際のプログラムは上の人がやってたので、あまり偉そうなことは言えないんですが(汗)、数学が必要かどうかというよりは、どこで役に立つかわからないよ、という話でした。(#2210928)中高生に「〇〇って役に立たない。「〇〇だから役に立つ」とか「俺は〇〇で必要になった」とか答える人は残念ながら愚直と言わざるを得ない。いった言葉の裏にはたいてい「勉強したくない。しなくていいですよね?」という意味が隠れている。質問に素朴に答えたところで「〇〇って役に立つのか!頑張って勉強するぞ!」なんていう学生はまずいない。このタレコミを見てまっさきに数学が役に立つ例を探してしまった人は気をつけたほうがいい。理屈っぽい男性に多いタイプだから、プログラマやソフトウェア開発者は特に。Webサイト上では無理だが、実際に口頭でこういう相談をされたら、質問の答えを考えるよりうまく相手の悩みを聞き出してストレスを取り除いてやることのほうが重要になる。役に立つかどうかではなく勉強に楽しみを見いだせるように誘導してやるほうがはるかに効果があるだろう。プログラミングで数学が役に立つ例だけ語り合いたいだけの人はそれでもいいが。日記Webサイト上では無理だが、実際に口頭でこういう相談をされたら、質問の答えを考えるよりうまく相手の悩みを聞き出してストレスを取り除いてやることのほうが重要になる。質問者は質問にある以上の疑問を持っているだろうとは僕も思う。いって聞かれた質問の答えを考えもせずに質問者の悩みだけを取り除けると思っているような高慢な大人は、なんというか、僕は好きじゃない。俺たち無駄なことに時間使わされてんじゃないの?」みたいな疑問のことです。それを疑問とは呼ばない、というならそうかもしれませんが、とりあえず誤解はしてないつもり。そのようなケースを知らないから役に立たないと思っているのであり、上のコメントを借りれば「FFT」「スペクトラム」「テンソル」「ガロア体」「符号理論」といった例を挙げてもそのような概念をこの高校生が知っているはずがない。そのような未知の概念を挙げても納得したり必要性を実感をするはずがない(もちろん、大人が大人に対してする説明としては「FFT」「スペクトラム」を挙げるのは適切で、スラッシュドットに書く内容としても適切だ。大人が高校生に対してする説明としては不適切だ)。このような例を挙げて納得するのは、この高校生ではなく、それらの技術や理論に馴染みがある我々のほうだ。自分が納得するから相手も納得するだろう、という考えこそ、高慢にほかならない。「何の役に立つの」と聞かれて「FFT」と答えても、相手に意味が通じなければ意味がないわけで、どう説明するかは考える必要がある。それは「何の役に立つの」という疑問の答えを考えても意味がないというのとは全然違う。あと、僕は聞かれたことに答えればそれで万事解決などとは言ってない。聞かれたことの答えを考えずにどうバレないようにはぐらかすか考えるような大人が、聞かれたことに答えなくてももっと重要なことだけ解決できると思い込んでいるのが高慢だと言っているだけ。知識は、「使ったことがないものがたくさんある」ぐらいで調度良い。(#2211104)自分が作るプログラム(の部品)が、入力量にたいしてどれだけの処理時間/メモリ消費量になるのか。和(の概算につかう積分)、あたりはそこそこに使えないとマズイと思うんですけどね。それと、2進数も高校数学の範囲内。数論とかλ計算を理解するためには、高校レベルの数学は一通りえり好みせずに勉強しておいた方が良い。あと、ここの数学問題を解く能力と言うより、数学的に問題を捉える脳力(typoではありません)がプログラミングには重要だと思う。通常のWebアプリ開発だと全く使わないことも少なくないかと。当然のように高度な計算式がソースコード内に記述されます。逆に必要としないアプリは本当に足し算引き算程度で終わる。本当に作成するプログラムによります。某ライフライン用のアプリケーションは、まじで高度なアルゴリズムを用いたプログラムでそれの実行結果にそって出来上がったものを利用する事でより皆さんの生活が成り立ってる部分があります。(#2210912)数学は選択じゃない。わかったな?自分にできないことを計算機にやらせたら、間違えてもチェックできないじゃないか?シェア親コメント必須ではないが、高度化させるのに知ってたほうが良い。別に"必須"ではないでしょう。「学校で勉強できるならできるだけ多く身に付けておけ」って言うことではないでしょうか。三角法で止まってしまっているのと、そうでないのとでは、ワケが違うと思います。#日本で言うことろの、「英語がある程度読めれば、より多くの情報にアクセスできる」って事にも、感覚的には近いんじゃないかと。#大学4年にもなって、未だに基本的な積分計算も結構間違う私が言えた事じゃないですが。(#2210929)高等数学をサポートしている言語なんて、あまり聞いたことないです。みたいなのは専用ソフトを買うと思います。いうの以外、例えばAIの遺伝的アルゴリズムとかニューラルネットなどはセコセコ自分で書くかな。いや、やっぱりエンジンはどこからか探してきますね。いうことで、プログラマが高等数学を使う事ってあまりないと思います。プログラマではない、構造解析屋とかシミュレーション屋とかそういった専門職の人が購入したプログラムを使いこなすというパターンでしょう。いう人は当然、自分の仕事に関わる数学は理解しています。入出力はルーチンが書けなかったりするので、そういうのはプログラマに書いてもらうこともあります。(#2210968)ただのコーダーなら数学的な考え方は必要でも高等数学はいらない。高等数学で解析した結果を仕様書に落とすような上流過程や、高等数学が必要な共有ライブラリを作るなら、高等数学は必要。ただのコーダーで終わりたいなら、プログラム言語さえ知っていればいいという仕事もある。業界の底辺にいる掃いてまとめて捨てられるような人材ですけどね。(#2211092)ド・モルガンの定理とか。「andの否定は否定のor」とか言うやつ。(#2211094)2進と10進で循環小数になる値は違うよとか計算誤差(イプシロン?)について知っとけとかオーバーフローとか負数の表現とか単純なはずの加減乗除にも罠が潜む。日記...というか考えるときに数学を使ったり使わなかったりOn/Offできるものなの?という...。普通の事務屋でも、数学の知識は必要だと思うな。公的団体の事務屋なんて、なんでもやらなければいけないし。就職して、いろんな仕事を担当するうちに統計とか、幾何学だとかの知識が必要なことが幾たびも・・・。仕事で必要になって「昔、どこかで教わったことがある」なんて調べてみたら、高校時代や大学で教わってたなんてことがたびたび。)くらいまでは、学生時代までにマスターしておくべきだったと身にしみてます。数学に限らず、学校で教わることって、そのままの形では出てこないけど、考える基礎として必要なものですね。学校のカリキュラムは、その時代の定説をもとに、夾雑物をそぎ落とした「純粋理論」みたいなものだから、あんまりおもしろいものではないけど、必要なときに、これを手がかりに必要な知識を調べていくことができる道しるべみたいなものだと思いますよ。必要な力は、そういう「道しるべ」みたいな骨格を元に、自分で調べて肉付けしていける能力だろうと思います。(#2210847)論理的思考能力が必要というのはその通りだと思う。数学を勉強することで論理的思考が身につくか、かりに身につくとして、数学を勉強するのは論理的思考を身につけるための効率的な方法と言えるか、は分からない。国語の勉強をやったほうがいいだろうね。論理的思考にはあまり役立たないと思う。アメリカみたいにプレゼンやディベートを重んじる教育をやれば、それは論理的思考の育成につながるだろうけど)。論理的思考能力は鍛えられるだろうけど、外国語の勉強はむしろ単語を覚えることのほうが負荷になってしまい、それだと効率的とは言えない。論理的思考にはあまり役立たないと思う。(#2210882)その「常識的」という部分が問題なんじゃないか。(#2210925)国語が苦手な人は現代文の問題は直感や共感で答えるものだと思っているんだよね。実際には大量の文章の中から仮説を裏付ける客観的な証拠を探し出す、論理的な作業。外国語なんて本気で言っているんだろうか?自然言語の構造や文法なんて例外だらけで、論理を学ぶにはまったく不適だよ......。(#2211012)まともに作られた問題は、万人とは言わないけど95%くらいの人間が理解できる常識を前提にしてるよ。必要な情報も紙面に書かれている。それらを理解しないで作られたナゾナゾのような質の低い問題もあるにはあるけどね。「いくらでも解釈できる」のなら、それは何らかの情報を伝えてはいない。それを問題にするのは設問として不適切だ。[toshin.com]なんかを見るとわかりやすいかも。指示語の整合性の解析や、本文中にない内容からの選択肢の消去とか論理の塊だよ。それに、言葉っていうのは、そもそもいろんな常識に依存している。別に自分がその常識に当てはまる必要はないが、自分以外の多くの人間に当てはまることは理解しておかなければならない。その常識を理解するのも、国語の勉強のうちなんだよ。なければ言葉で何かを伝えることなんかできやしない。その品のない例えを使えば、自分がHしても気持ちよくないという人間でも構わないが、大多数の人間は「Hしたら気持ちいい」ということは理解しておきたい。(#2211415)感想を書けと言われて素直に感想を書くと×がつく。これで国語を嫌いになった人は多いと思う。出題者(作者ではない)が要求する答えを書くのが正しい。主語と述語と擬音程度で会話をしている連中を見ると「もうちょっとまともな本を読んでおけばよかったね」とは思う。(#2210877)>(ただし、日本における国語は、物語を読んで主人公の心情を推察せよ、というのがメインで、いいえ。すくなくとも後期中等教育でそれがメインとなるようなことは少ないです。初等教育でやれというなら多分それは誤りでしょう。それから「日本における国語」などという明確な物はありません。あなたが受けた教育と聞きかじった言論から勝手に推測しているだけです。ホームページ>ただ、数学を勉強することで論理的思考が身につくか逆じゃないですかね。数学を無事修了できた人なら、十分な論理的思考力を持っている、と。[togetter.com]みたいですね。日記ひとくちにゲームエンジンといっても守備範囲が色々ありますがゲームエンジンを作るプログラマなら必須です。スクリプタとか、レベルデザイナとか、昔ながらの企画職(何でも屋)とかゲームエンジンをを使う職種なら必須という程でもないかと。日記Unityの作者の人はUnity作りながら自分はゲームが作りたかったんじゃ無かったって気がついたって言っていました。コードからその先に対してはあまり情熱がないです。エンジンというかフレームワークを作るのが好きな人っていうのはニッチだと思いますが、いくらかはいると思いますよ。あと、レンダラ作ってると、数学の知識は...、線形代数は欲しいかも。微積分はフィルタ作るときに知ってると役に立つレベルでしょうか。(#2210878)知らなくても何とかなるかも知れないが(ベクトルや行列の基礎に相当するものくらい、教えられなくても必要に応じて思いつくだろう)、ベクトルや行列の演算のいろんな公式を知っていれば、演算量を格段に減らせる場合もあるので、知っていたほうがいい。内積に相当する物を思いつかなかったし、三角関数も知らなかったので、2つのベクトルのなす角度を求めるのにものすごく苦労した。(#2210916)「集合論」と言うと全てを集合で記述するという数理論理の方法論のことになってしまうので、語弊があると思います。何かのアルゴリズムが、正しい計算をしているかの検算をするためには、微積分にかぎらず、結構広い数学の知識が必要になると思うのだが。逆に、その知識がないプログラマは、検算の方法がわからないので、プログラムソースをひたすら眺めて、正しいかどうかをチェックする。そのチェックは、アルゴリズムのチェックではない。数学で一番重要な感覚は、ある結果にたどり着くのに、複数の道があり、しかもどのみちを辿ってもかならず同じ答えが導かれる(だから脇道に見える方で解いても、正しい答えが出る)、というところだと思うのだけれど。それは、プログラムを検証する上でも、有用(というよりこれができないプログラマは信頼したくない)シェア親コメントより多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。service.閉じるスラド読み込み中...。