Config
(0-3)を考えると入力index
、Iはであるため、出力は1,2,3、または4範囲を確認するより効率的な方法は?値の範囲は、によって決定される:
注あるRegion
index
かを決定しなければなりませんたとえば、Config 0
を無視してConfig 1-3
を見てみましょう。range
が数字0-111
と定義されており、それが式2*7*{0-7}+{0-13}
から来ているとしましょう(最後の2つの数値は現在無視できる追加パラメータに由来します)。 2*7*8+range
,4*7*8+range
,6*7*8+range
であり、これらの値である。
ここで設定を確認してから、index
が特定の領域の最小値と最大値の間にあることを確認する範囲チェックを実行します。その場合は、この表を与えられた:
+--------------+---------+---------+---------+---------+
|Region\Config | 0 | 1 | 2 | 3 |
+--------------+---------+---------+---------+---------+
| 1st | 0-56 | 0-111 | 0-111 | 0-111 |
+--------------+---------+---------+---------+---------+
| 2nd | | | 112-223 | 112-223 |
+--------------+---------+---------+---------+---------+
| 3rd | | | | 224-335 |
+--------------+---------+---------+---------+---------+
| 4th | | | | 336-447 |
+--------------+---------+---------+---------+---------+
私のロジックは次のとおりです。
- If config 0, <if index is 0-56> return 1
- If config 1, <if index is 0-111> return 1
- If config 2, if index is between 0-111, return 1
else if between 112-223, return 2
- If config 3, if index is between 0-111, return 1
else if between 112-223, return 2
else if between 224-335, return 3
else if between 336-447, return 4
- Bottom of function: return -1
は、このコードを実行するだけではなく、もし、よその束を行うための良い方法はありますか?私は数式の追加パラメータを確認することが可能だと思うが、私はそれを見ることができない。
2次元アレイ。 – sturcotte06
2次元配列のアイデアを列のバイナリ検索と組み合わせる。 – selbie
configが0でインデックス値が57以上(または負)の場合、問題が発生しています。あなたの疑似コードはそれを認識していないようです。 configが3でインデックス値が448以上の場合は、問題があります。あなたは何をすべきかを決める必要があります。いくつかの種類の2D配列(構造の?)が分かりやすいかもしれません。無効な構成番号とインデックス番号をどのように認識して報告するかを知っているだけです。また、テーブルの最後の行の335は336であるべきです。 –