簡単な質問ですが、数字の範囲について言及する場合、排他的および包括的であると思います。
たとえば、これはアルゴリズムの本からの行です:
次の関数は、1からn(2を含む)までの2のべき乗を出力します。
これはどういう意味ですか?数値範囲を包括的または排他的にする理由は何ですか?
次の関数は、1からn(2を含む)までの2のべき乗を出力します。
これは、関数が2^i
を計算することを意味します。ここで、i = 1, 2, ..., n
、つまりi
は1からまでの値を持ち、値n
。つまり、nはIncluded in Inclusive
一方、あなたの本が言っていた場合:
次の関数は、1からnまでの2のべき乗を出力します(exclusive)。
これは、i = 1, 2, ..., n-1
、つまりi
はn-1までの値をとることができるが、notはn
は、i = n-1
が持つことができる最高値であることを意味します。つまり、nはexcludedでexclusive.
コンピューターサイエンスでは、包括的/排他的はアルゴリズムには適用されませんが、数値範囲(より具体的には、範囲のエンドポイント)に適用されます。
1 through 10 (inclusive)
1 2 3 4 5 6 7 8 9 10
1 through 10 (exclusive)
1 2 3 4 5 6 7 8 9
数学では、上記の2つの範囲は次のようになります。
[1, 10]
[1, 10)
簡単に思い出せます: