Skip to content

Instantly share code, notes, and snippets.

@twada

twada/range.md Secret

Last active June 25, 2021 00:44
Show Gist options
  • Save twada/29247a921e5e977c028f478b30af3248 to your computer and use it in GitHub Desktop.
Save twada/29247a921e5e977c028f478b30af3248 to your computer and use it in GitHub Desktop.
整数の閉区間

課題1 整数の閉区間

区間 (Range) とは

区間とは ,数直線上のある区切りの間の数(実数)の集合のことである。区切りの数を含むか含まないかで区間の呼び方が異なり,開区間,閉区間,半開区間がある(KIT数学ナビゲーションより)。

(難しく聞こえますが、小学校の時に習った数直線のことです)

閉区間 (Closed Range) とは

区切りを含む(例えば aとbの両端を含む)場合を閉区間という。

例: 閉区間 [3,8] の場合

[3,8]
-> 下端点 (lower endpoint) が 3 , 上端点 (upper endpoint) が 8 である整数閉区間
-> 3 と 8 は区間に含まれる
-> つまり (整数閉区間だから) 3,4,5,6,7,8

閉区間 KIT数学ナビゲーションより

課題1-1 上端点、下端点

  • 下端点と上端点を与えて閉区間を生成し、閉区間から下端点と上端点を取得してみましょう
  • (「生成する」だけをテストしようとすると難しくなります。こだわりすぎないことがポイントです)
  • 下記の例はあくまで「Java っぽい言語による実装の一例」なので、使っている言語の文化に合わせて読み替えてみてください(Ruby なら、 JavaScript ならどう書くでしょうか)。

【例】

// 閉区間 [3,8] を生成
ClosedRange range = new ClosedRange(3, 8);
// [3,8] の下端点は 3
int lowerEndpoint = range.getLowerEndpoint(); // => 3
// [3,8] の上端点は 8
int upperEndpoint = range.getUpperEndpoint(); // => 8

課題1-2 文字列表現 "[a,b]"

  • 閉区間から文字列表現を取得してみましょう
  • 使っているプログラミング言語の文字列表現化メソッドについて(あるならば)調べてみましょう

【例】

// 閉区間 [3,8] の文字列表記は "[3,8]"
String notation = range.toString(); // => "[3,8]"

課題1-3 帰属

  • 閉区間が指定した整数を含むか (contains) 判定してみましょう
  • テストデータについて考えましょう。例えば閉区間 "[3,8]" のとき、テストすべき数値はいくつあるでしょうか?

【例】

// [3,8] は 5 を含む
range.contains(5); // => true
// [3,8] は -1 を含まない
range.contains(-1); // => false

クリエイティブ・コモンズ 表示 - 継承 2.1 日本 この演習問題は クリエイティブ・コモンズ 表示 - 継承 2.1 日本 ライセンスの下に提供されています。

短縮URL: http://bit.ly/2tmQRcW

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment