数学における区間の定義
定義
- 二つの実数に対して、上のような集合を区間intervalと言う。
- 特に、両端を含む場合、ブラケット[]を使ってと書き、クローズドclosedされたと言う。
- 両端を含まない場合、カッコ()を使ってと書き、オープンopenされたと言う。
- 2つの端のうち一方のみを含まない場合、クロープンclopenと言い、のみを含む場合はと書き、のみを含む場合はと書く。
- 端が一方しかない場合、つまり無限大の場合は次のような表現を使う。
説明
区間は、1次元ユークリッド空間で連結性を持つ部分集合として、我々が最もよく知る集合の一つで、理解しやすく、親しみやすく、どんな勉強をしても長く見ることになる。
数値解析
数値解析のような分野では、のようにちょうど二つだけではなく、順序なしに混ざった多くの点を扱う時がある。だから、多くの点の集合を含む最小の区間を次のように示すことがある。 区間を使った演算に興味を持つ分野では、区間算術interval Arithmeticという分野があると言われている1。
プログラミング言語
コードを書いていてふと気になって探した面白い記事を見たことがある。2 要するに、プログラミングではなぜやではなくクロープンインターバルを使うのかということだが、数学者の観点から同意する内容だけを簡単にまとめて書いてみたいと思った。
n = 10
for i in 0:n
print(n)
PythonやMATLABなど多くのプログラミング言語では、類似したコードがよく使われていて、大抵の場合、そのコードの実行結果は次のようになる。 (ちなみにこのコードはPythonでもMATLABでもない、仮想の言語だ。)
0123456789
これが何を意味するかというと、0:n
だけ制御するとしたら、それをクロープンインターバルと考えるということだ。このような考え方、慣習の利点は、ほとんどの言語でインデックスをから使いまで回すと、その’繰り返し回数自体’が見事にになるということだ。このような直感的な表記を使うと、誤りが大幅に減り、実用的な習慣になる。
そして、C言語などでは同じ表現をfor(i=0; i<10; i++)
のように書かなければならないが、1から始めて正確に10で終わるfor(i=1; i<=10; i++)
と比較すると、オペレータ自体が<
から<=
へとより汚くなり、実際Cで使う配列にアクセスする時は0
も含まれなければならないので、ちょうどこのような繰り返しはバカバカしくfor(i=0; i<=(10-1); i++)
のように書かなければならないかもしれない。
つまり、コーディングを学ぶ人を混乱させたり、1つずれることは、みんなをいじめるためではなく、なんとなくそれなりの理由があるかもしれないということだ。