コンニチワ
有能なプログラマの経歴を見てみますと数学者などが多いですが
私はプログラミングは好きですが数学は苦手です。
公式などを使わない文章問題は比較的得意なのですが
それ以外はほとんど苦手です。
プログラミングをする際必要な公式などはその都度調べています。
しかし、最近は数学的知識があってこそ生まれるアイディアというものが
あるのではないかという風に考えるようになり、数学を本格的に学ぼうかと思い始めました。
やはり数学的アルゴリズムなどをきちんと勉強しておいた方が
いいアイディアが生まれるのでしょうか?
専門家の方や詳しい方の意見をお聞かせください。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

 漠然とした回答で恐縮ですが、自分の経験上では自分が「これは必要だ!と」思った事柄は後になって大体、必要になって、なんで、アレをしっかりと学ばなかったのだろう。

と後悔する事が多いです。実際に必要に迫られることもしばしばでした。
 ですが、付け焼刃は引き出しは多くなっても、とても役に立ったことは少なかったです。学ばないよりはマシでしたが。
 よって数学的アルゴリズムもしっかりと学ぶことで引き出しが多くなり、よりいいアイディアが生まれると思っています。
    • good
    • 0

 ものすごく難しいものを勉強する必要はないんです。

しかしね、最低限知っていて貰わないと、ソフトを任せられない。手取り足取り、結局自分で書いた方が早いじゃん。そういうレベルってあるわけです。思った以上の性能を出すソフトを書いてくれる。それがプロってもんですね。

 たとえGUIばかりを書くにしても、システムを矛盾なく整理して、統一されたメタファーというものを構成する必要がある。これだって数学の実力が要求されます。グラフィックを扱うにも必須です。また、求められる内容は、必ずしも高校・大学教養課程とは一致していません。ちょっと理想化した基礎を考えると、こんな感じです。

代数:数式の変形。線形代数の基礎。複素数の取り扱い。整数論の基礎。群・環。
解析学:総和Σ、乗積Πの扱い方。級数。微積分の基礎。極値問題。テイラー展開。直交多項式。
幾何学:2次元の解析幾何。3次元の解析幾何。計算幾何学の初歩。
記号論理:一階述語論理。最低でも命題論理。
言語処理:オートマトンの概念と状態遷移図。文脈自由文法。
データ処理:補間法。DFT。フィルター。
グラフ理論:木構造と探索のアルゴリズム。
組み合わせ論:順列・組み合わせ。確率、統計的検定の基礎。
計算機科学:計算量の概念。誤差論の基礎。コンパイラの仕組み。乱数。データ構造とそのアルゴリズム。いくつかのプログラミング言語の概念(Lisp, Forthなど、直接は使わなくても)。
基礎的な力学。

 このへんを大体おさえれば、これまで「アイデア!」と思っていた物の多くが自明であり、最適ですらない、ということに気付かれるかも知れません。
 あとはそれぞれの問題領域ごとにジョーシキが求められるし、問題毎に勉強もしていくんですね。同じ計算をする「公式」だって1000倍も効率が違ったりしますよ。

 仕事を依頼されてから基礎から勉強するなんて、注文受けてから牛を捕まえに行く牛丼屋みたいなもの。一流のプロになりたければ、易しいレベルで良いから幅広い数学の知識が必要です。数式を説明するよりコード書いた方が早い、ってんじゃお話にもなりませんやね。

クヌース「コンピュータの数学」共立出版、浅野哲夫「計算幾何学」朝倉出版、は良い参考書だと思います。

 蛇足ながら:ソフトを書くヒトのレベルが猛烈に低くなっています。そういう連中と自分を比べて安心しちゃ絶対にいけません。今後、開発途上国と言われていた国々が、工業化社会をすっとばしていきなり脱工業化社会を構築していくと考えられます。つまりソフトで飯を食おうとしている。必死に勉強しはい上がろうとしている彼らの真剣さを考えると、日本の多くのソフト屋さんの程度の低さは、もはや失業予備軍と呼んでも構わない。努力そのものなど評価されません。「徹夜の連続です」なんて泣き落としにくるような奴は無能の証拠として直ちに切られます。これがIT革命の本当の意味です。

 文章題が得意、というのは大いに見込みアリです。数学以上に重要なのが日本語を正確に理解し、述べる能力ですから。志を高く持って、誇りある仕事をしてください。
    • good
    • 0

 担当する分野によると思いますよ。

一口にプログラムといっても、事務処理系、組み込みソフト系、CG系、科学技術計算系等々いろんな分野があります。科学技術計算の分野であれば数学や物理の知識は必須ですが、科学技術計算のアプリケーション開発でもGUIの部分を担当するのなら、数学的知識よりもMFCやMotifに関する知識がある方が重宝されるでしょうし。
 プログラマに求められるのは、論理的に思考できる能力、仕様に書かれた機能をプログラミング言語で展開できる能力です。その観点からすると、jhiphopさんは文章題がお得意ということですので、プログラマに向いているようのお見受けします。
 ただ、暗号や乱数発生等の分野で画期的なアルゴリズムを創造するということならば確かに数学、それも最先端の知識が必要だと思います。でも、実用的アプリケーションて、そんなものだけじゃないですからね。アイディアでしだいですよ。もちろん、数学を勉強しておいて困ることはないです。
    • good
    • 0

計算機 って呼ばれてますからねコンピュータは。



知っているに越したことは無いと思いますよ。断片すら知らなければ活用することも出来ませんしね。
アイディアの素としては数学の知識に限らないと思いますよ。

#私も数学苦手です。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「頭悪いね」「バカだね」 どっちがよりムカつく?

こんにちは、

単純な質問です。

「お前、頭悪いな」

「お前バカだな」

どっちがより言われたらムカつきますか?

Aベストアンサー

どっちもそれなりにムカつきますけど・・・「頭悪いな」かな~

そう言う事を他人に平気で言う奴ほど、バカで頭の悪い人はいないと思いますけど・・・ね?
我がふりなおせよ~ってな感じです。

でもやっぱり傷つくな~否定はしないけど(苦笑)

Q  プログラミング

  プログラミング
 つまらない質問かもしれませんがお答え下さい。
 自分は自分専用のOSをプログラミングして1からビル・ゲイツがやったみたいに作ってみたいのですが、それにはどうしてやったらいいか分かりません。別にマイクロソフト社に競合するのが目的ではないのですが、ビル・ゲイツの影を追ってみたいのです。どうしたらそれが出来るのでしょうか?またその事を詳しく解説した本があったら教えて下さい。よろしくお願い申し上げます。

Aベストアンサー

「OSは一人ではできない」ではなく、ある程度規模が大きいソフトは
一人では開発することが難しく、また動作検証することも難しい。

ソフトウェアに限らず、一人の人間が、細部まで一人で管理できるプロジェクトは
小規模なアプリケーションソフト程度だったり、同人誌程度だったり…
よくて、ニコニコ動画技術部に見られる作品程度だと考えられます。
(いやニコ動技術部ははんぱねぇのだが…)

OSの本質は、ハードウェアとソフトウェアなどの仲介にあります。
そんなOSに似た仕組みを持つのが、たとえばパソコン通信自体のホストシステムや
ある程度高度なウェブサイト、あるいはゲーム用のスクリプトエンジンなどだと思います。

OSそのものは、提供すべきものの中に
(車輪の再発明と言われるような)
おもしろくもないけど手間のかかるものが膨大にあります。
(ゆえに、ライセンスが許す範囲で、他のOSから流用されることは珍しくありません)


OSそのものではなく、OSのような仕組みを持った
なにか実用的なシステムやゲームを作る方がおもしろい気がします。

たとえば、架空のOSをデザインし、その攻略を狙って
複数ユーザーがウィルスやトロイの木馬やワームを放って競うゲームシステムは
その攻略のための、開発言語の設計などまで
OS開発に近い、複雑な要素があっておもしろい気がします。

それでいて、もっともわがままなOSの利用者へのUI設計は必ずしもしなくてもいい。

まぁ、そのゲームシステムも、実際に設計すると
半端無くややこしく、難しいとは思いますけどね。


余談…
現在のWindowsは初期のWindowsNTのコードを受け継ぐ割合は低いけど
当初のWindowsNT3.51は、MSとIBMの共同開発だったOS/2を元に
DEC社の技術者を迎えて完成されたものでした。
(当時はOS/2と共通のエラーコードを吐いて、いい笑いものに…)

MS社の最初の本格的OSは、たしかWindowsNT3.1ですが、その誕生(1993年)の影には
1960年代1970年代から培われてきた、IBMやDECの技術があったと言えます。

その後、WindowsNT系は大幅な作り直しを受け、その度に
それに伴うバグを抱えたり、仕様変更によって不評を買ったり…
そういったMSの悪評の山こそ、OS開発の難しさそのものだと思います。

半面、MSと袂を分かったIBMはOS/2を銀行や保険会社等に売り込み
ある程度の市場を確保し、またそのサポートを含めた信頼性は高く…

OS/2が市場から消えるまでの10年ほどの間に
NTは、OS/2より信頼できるという定評を得られませんでした。
でも、それでもOS/2は消えたのです。

NTが生まれて20年弱、なのに、今Windowsを取り囲むのは
もっと古い、40年ほど前に設計されたUNIXの流れを組むOS
Mac,iPhone,ipad,Andoroid携帯,低価格NAS製品,デジタル家電,etc.

Linuxも生まれたと同時に、設計の古さを指摘され
有名な議論があったわけですが、OSの設計において
なにが正しいのかは、本当に難しいようです。

「OSは一人ではできない」ではなく、ある程度規模が大きいソフトは
一人では開発することが難しく、また動作検証することも難しい。

ソフトウェアに限らず、一人の人間が、細部まで一人で管理できるプロジェクトは
小規模なアプリケーションソフト程度だったり、同人誌程度だったり…
よくて、ニコニコ動画技術部に見られる作品程度だと考えられます。
(いやニコ動技術部ははんぱねぇのだが…)

OSの本質は、ハードウェアとソフトウェアなどの仲介にあります。
そんなOSに似た仕組みを持つのが、たとえばパソコン通...続きを読む

Q仕事が遅い、頭悪い、力仕事できない 不器用すぎるこんなパートメリットありますか?

仕事が遅い、頭悪い、力仕事できない
不器用すぎるこんなパートメリットありますか?

Aベストアンサー

仕事が早い、頭が良い、力仕事もできる
器用すぎるこんなパートに比べたら、見劣りしますが、
居ないよりはずいぶんましだと思いますよ。

Qプログラミング言語 スキルアップ

IT業界プログラミング言語について質問です。

よくプログラミング言語は一つの言語の理解を深くした方が良いという意見をネット上で耳にしますがJavaをプライベートで狭く深く勉強して行けば他の言語(php,JavaScript,C#)なども理解が深まるでしょうか?

もちろんバランスよく広く深く勉強していくのが良いと思いますが狭く深く勉強する言語としてはJavaが適していますでしょうか?

また絶対的な意見というのはなく個人の主観になった意見でも構わないのですが一番スキルアップに繋がる言語等あれば教えて頂きたいです。

質問が多いかも知れませんがJavaは「.jar」ファイルにすればHTMLなどに埋め込んだりできるのでしょうか?

答えられる範囲で構いません。
浅はかな質問かも知れませんが答えて頂けると幸いです。

Aベストアンサー

>>よくプログラミング言語は一つの言語の理解を深くした方が良いという意見をネット上で耳にしますがJavaをプライベートで狭く深く勉強して行けば他の言語(php,JavaScript,C#)なども理解が深まるでしょうか?

たとえば、オブジェクト指向の考え方は、言語を超えて、JavaでもC#でもphpでもJavaScriptでも必要になります。
なので、Javaをそれなりに深く理解していれば、共通部分については、他の言語での理解も早まるはずです。

>>もちろんバランスよく広く深く勉強していくのが良いと思いますが狭く深く勉強する言語としてはJavaが適していますでしょうか?

海外の書籍を見ると、JavaもC#もですけど、C言語、アセンブラのような、直接にマシン語やメモリを扱う言語を知らないなら、プログラマ失格であるような意見が書かれていました。
その本で、一番槍玉にされていたのがJavaでした。

>>また絶対的な意見というのはなく個人の主観になった意見でも構わないのですが一番スキルアップに繋がる言語等あれば教えて頂きたいです。

個人的には、各言語に応じて、学ぶところがあったので、これが一番スキルアップにつながったと言いきれる言語はありませんね・・・。

PL/IやCOBOLで学んだことも多いし、PASCAL、C言語、アセンブラから学ぶ部分もありましたし、BASICやC++から学ぶこともありましたね。
現在は、C#がメインですが、この言語で新たに学ぶことも多いですね。

個人的に、一番学ぶ部分が無かった言語はJavaです。
ちなみに金融機関で開発経験がある方は、Javaで開発したシステムは遅くて、他言語で作り直し・・・・なんて話されていましたね。

>>よくプログラミング言語は一つの言語の理解を深くした方が良いという意見をネット上で耳にしますがJavaをプライベートで狭く深く勉強して行けば他の言語(php,JavaScript,C#)なども理解が深まるでしょうか?

たとえば、オブジェクト指向の考え方は、言語を超えて、JavaでもC#でもphpでもJavaScriptでも必要になります。
なので、Javaをそれなりに深く理解していれば、共通部分については、他の言語での理解も早まるはずです。

>>もちろんバランスよく広く深く勉強していくのが良いと思いますが狭く深く勉強す...続きを読む

Qこうゆう考えの人って頭悪いと思わないですか?

こうゆう考えの人って頭悪いと思わないですか?
CMとかで嫌いなタレント出てるからとかむかつくからという理由で商品買わない人
僕には理解出来ないですが何か?
商品なんて関係ないしあれですか?坊主にくけりゃ袈裟憎いって?
でも向こうもそうゆう考えもつ人にはかってもらいたくないからいいかなと思うけど

Aベストアンサー

なるほど、そういう考えもできますか!

広告というのは、その商品なりサービスが、一番いい方法で訴求できて、消費者に認知・浸透してアクションを起こしてもらうことが、最終的な目的ですよね。

そしてそのためには、(関係者のしがらみはともかくとして)それにマッチする、イメージを伝えられるに相応しいタレントを起用するのが普通です。
ですから、広告でそのタレントが出ることは、その商品なりサービスのイメージを背負っているということになります。

なので、質問者さまがおっしゃっている「タレントが嫌いだから商品を買わない」という人が出てきても、何らおかしくありません。
別に頭が悪いわけではありません。
よく、不祥事を起こしたタレントが出た時、そのタレントのCMを一斉に引き上げますね。それによって商品イメージが下がることを恐れてのことです。

Qc言語プログラミング

整数同士の計算結果を実数で表示するにはどのように記述すればいいですか?
型のキャストが必要と言われたのですが、よくわかりません。

Aベストアンサー

>型のキャストが必要と言われたのですが
実数の変数に代入すれば自動的に実数に型変換(キャスト)が行われるので、
たとえば、

float a; // 実数の変数
int n,m; // 整数の変数

a=n+m; // <-- 整数同士の計算結果を実数の変数に代入

でOKと思います。

Qわざわざナイフからフォークに利き手を持ち替えないと食事出来ない人って、頭悪いの?躾がなってないの?

わざわざナイフからフォークに利き手を持ち替えないと食事出来ない人って、頭悪いの?躾がなってないの?



「俺、右利きだから」とかいう理由でフォークをいちいち右手に持ち替えないと食べられない育ちの悪いクソとは食事したくない。



右利きならナイフが右手、フォークが左手だろ。子どもでも知ってるわ。

それが出来ない成人とか脳腐ってるでしょ?


こんな腐った食事の仕方してる人って親に食事の仕方すら教わってないからこんな気持ち悪いことするんでしょうか?

それとも教わっても理解できないくらいに頭が悪いからなのか?

Aベストアンサー

私はオジサンです。
両親は2人とも地方出身です。イギリスではありません。日本です。
ナイフとフォークを使う食事なんて、した事がないし、必要もなく育ちました。
質問者様とは生きてる世界が違うようですね(笑)。
それとも、わざと炎上させるように挑発的に書いているのでしょうか?
質問者様は、カップ麺って、食べた事ないんでしょうね。
質問者様は、1日の食事代1000円未満なんて、経験ないんでしょうね。
世の中、あなたのような人ばかりではないのですよ。
自身の価値観だけで、相手を否定するのは、テーブルマナーより酷いマナーですよ。

Qc言語プログラミング

整数NとN個の整数を受け取り,受け取ったN個の整数のうち最大のものを表示するプログラムを記述せよ. ただし,N>0とする.

という問題について質問です。
「3つの数字の中から~」などの場合はa,b,cのように代入して比較したらできたんですが、この問題はどうやって数どうしを比較すればいいですか?
整数NとN個の整数を入力するところまではできています。

Aベストアンサー

入力した n個の整数から一番大きい数を探す
https://webkaru.net/clang/find-largest-n-number/

Q30代なかばで派遣してます。頭悪いし、毎日サービス残業してもいいんだけど、あまり夜遅くまですると寝坊

30代なかばで派遣してます。頭悪いし、毎日サービス残業してもいいんだけど、あまり夜遅くまですると寝坊してしまうし、このまま派遣続けようかと考えてます。こんな人生もありですかねぇ?子供好きだけど、子孫も残さないつもりです。

Aベストアンサー

将来的な計画などを考えても、自分で良しと思えるならありだと思います。

ただ、生涯賃金にして二倍以上の差がつくと言われている非正規と正規では
老後の生活や、中年を過ぎる辺りからの生活に差が出てきます。
周囲との比較というのは自分で気を向ける以上に気になるものです。

また、実生活面でも万が一のことがあった場合など
様々な場面で不利な状況に立たされる可能性も考えるべきです。

そういった点から、生涯派遣労働というのは
今の社会、制度の状態ではお勧めしたいとは思えません。
ただ、正規労働よりもストレスが少ない場合があることも確かです。
ライフスタイルやワークスタイルは個人が選んでよいものですから
そういったリスクを考えてもなお、自分に合っている
もしくは、そういったスタイルが良いと思うのであれば
一つの生き方だと思います。

Qオイラーの公式ド・モアブルの公式

オイラーの公式ド・モアブルの公式を使って下記の公式を示して下さい
sin(α+β)=sinαcosβ+cosαsinβ
cos(α+β)=cosαcosβ-sinαsinβ
sin2α=2sinαcosα
cos2α=cos^2α-sin^2α
宜しくお願いします

Aベストアンサー

e^i(α+β)=cos(α+β)+i sin(α+β) ①

e^i(α+β)=e^iα × e^iβ
=(cosα+i sinα)(cosβ+i sinβ)
=cosαcosβ + i cosαsinβ + i sinαcosβ - sinαsinβ
=cosαcosβ - sinαsinβ +i (sinαcosβ + cosαsinβ) ②

①=②なので、それぞれの実部、虚部を比較すると、
cos(α+β)=cosαcosβ - sinαsinβ ③
sin(α+β)=sinαcosβ + cosαsinβ ④

③で、β=αとおくと、
cos(α+α)=cosαcosα - sinαsinα
cos2α=cos^2α - sin^2α

④で、β=αとおくと、
sin(α+α)=sinαcosα + cosαsinα
sin2α=2sinαcosα


人気Q&Aランキング

おすすめ情報