닫힌 구간(closed interval)은 범위 내의 첫 번째 값과 마지막 값을 포함하는 범위의 집합으로. 닫힌 구간 $[2, 12]$는 아래와 같이 표현합니다.
$$ 2 \leq i \leq 12 $$
이에 반대되는 개념으로 열린 구간(open interval)이 있습니다. 열린 구간은 양 끝의 경계를 포함하지 않는 집합으로, 열린 구간 $(2, 12)$는 닫힌 구간 $[3, 11]$을 나타내고 아래와 같이 표현합니다.
$$ 2<i<12 $$
둘다 나름의 단점이 있는데, 일단 닫힌구간은 공집합을 표현할 수 없습니다. $[a, b]$는 항상 $a, b$의 경계를 포함하는 범위이기 때문에 공집합을 표현할 수가 없죠. 반면 열린구간은 배열의 첫 번째 원소부터 시작하는 범위를 표현하고 싶을 경우 첫 번째 이전에 존재하는 가상의 원소를 사용해야 한다는 문제가있습니다.
그래서 대부분의 프로그래밍 언어에서는 이 둘사이의 절충안인 반 열린 구간(half-open interval)를 사용합니다. 반 열린 구간 $[lo, hi)$는 $lo$부터 시작해서 $hi-1$까지의 값을 포함하고 아래와 같이 표기합니다.
$$ 2\leq i < 12 $$
닫힌 구간(closed interval)은 범위 내의 첫 번째 값과 마지막 값을 포함하는 범위의 집합으로. 닫힌 구간 $[2, 12]$는 아래와 같이 표현합니다.
$$ 2 \leq i \leq 12 $$
이에 반대되는 개념으로 열린 구간(open interval)이 있습니다. 열린 구간은 양 끝의 경계를 포함하지 않는 집합으로, 열린 구간 $(2, 12)$는 닫힌 구간 $[3, 11]$을 나타내고 아래와 같이 표현합니다.
$$ 2<i<12 $$
둘다 나름의 단점이 있는데, 일단 닫힌구간은 공집합을 표현할 수 없습니다. $[a, b]$는 항상 $a, b$의 경계를 포함하는 범위이기 때문에 공집합을 표현할 수가 없죠. 반면 열린구간은 배열의 첫 번째 원소부터 시작하는 범위를 표현하고 싶을 경우 첫 번째 이전에 존재하는 가상의 원소를 사용해야 한다는 문제가있습니다.
그래서 대부분의 프로그래밍 언어에서는 이 둘사이의 절충안인 반 열린 구간(half-open interval)를 사용합니다. 반 열린 구간 $[lo, hi)$는 $lo$부터 시작해서 $hi-1$까지의 값을 포함하고 아래와 같이 표기합니다.
$$ 2\leq i < 12 $$