• ベストアンサー

プログラミング言語の変数と数学の変数

自分自身の中でくだらない議論があります。 それは、 「プログラミング言語の変数と数学の変数は同じか否か?」 ということです。 もちろん、 プログラミング言語の変数は、数値以外も扱える、データ型がある、 イコール(=)は左辺に代入するという意味である、 などの点が数学とは異なりますよね。 でもそれらの点を除くと同じと言えるものなのでしょうか? ちなみにわたしの考えとしては、 「数学でいうところの変数というより、代数と同じである」という結論ですが、 みなさんはどう思われるでしょうか? (どうでもいいことですか?こんなこと(^^;)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

数学の変数は一定の値を記号で置換えて表し、「一般化するために」使われる。 コンピュターの場合は、変数に対し繰り返し演算や処理が行われることが 多いが、その変化する時々の値を一時的に記録しておく、メモリ上の 始まりと長さのある記憶領域であり、また記録されている数値や文字列であり付けられた名称である。そのスタートアドレスに名前を付けたもので 長さは暗黙か定義で決まる。Integerは32ビットやa="hennsuu"。 数学の方程式などでは、それが成り立たせる値が存在し求めたものとして その変数の関係をあらわすが、この考えと表現はコンピュターにはない・出来ない。(記号として方程式を解く言語は別にして)。 微分とかの作用素の被作用体にならず、複素数も一変数では表せない。無限数もコンピュターはダメ。 べクトルも一変数では表せない。数学での変数の記号的な使い方はコンピュターはダメ。数学ではあまり文字列を変数で表さないと思う。

harisun
質問者

お礼

ご回答ありがとうございました。 かなり深い洞察でなるほどと感心しました。

その他の回答 (2)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

数学の場合、数値しか必要がないと思います。 プログラミングの場合、必要に応じて 変数が拡張されたんでしょう。 たとえば コンピューターのデータの単位は ビットです。 8ビットで 1バイト 1バイトで 扱えるのが数値が 256までです。 これが 2バイトになると 65536となります。 普通 整数の変数は 2バイトで保管され 65536までの変数となります。 数学では、こういうデータを保存するという概念がないため、数値の限界はありません。

harisun
質問者

お礼

ご回答ありがとうございます。 確かに、コンピュータの変数には限界があり、数学にはないですね。

  • HUTABA
  • ベストアンサー率27% (436/1611)
回答No.1

両方、「何らかのデータが入る箱」という点では同じ物だと思います。 違うところといえば、プログラミング言語での変数は数値以外にも文字列が入ることがありますが、数学での変数は数値しか入らない…ということでしょうか。 数値以外のデータも代入できるため、プログラミング言語では色々な型の箱があります。 そういう意味では、数学の変数も「明示的に宣言していないだけの数値型の」変数なのかもしれませんね。 (…あ、でも整数でも小数でも関係なしで代入できますね) 結局変数というのは「何らかのデータを入れることのできる箱」という意味の言葉なのではないでしょうか。 そういう言葉って、他にもたくさんあると思います。 ぱっとは思いつかないのですが…たとえば「フォルダ」なんて言葉も、PCでは基本的に何でもいくらでも入れられますが、実生活で使用するフォルダはそのサイズに入るものしか入れられず、入る数にも制限がありますよね。

harisun
質問者

お礼

ご回答ありがとうございます。 > 数学の変数も「明示的に宣言していないだけの数値型の」変数なのかもしれませんね なるほど、そんな解釈も出来るんですね。