0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

基本情報技術者過去問題 平成30年秋期 午後問8 について

Posted at

はじめに

タイトルにもある通り、基本情報技術者過去問題 平成30年秋期 午後問8 についての記事なんだけど、このサイトに書かれていた解説のある一文がずっと理解できない、って事態に陥った。
備忘録のために何が理解できなかったのかをここに書き残しておく。

理解できなかった箇所

理解できなかった箇所は、下記の赤文字部分である。

priHigh=2、priLow=1 以外なら何でも良いのですが、ここでは priHigh=3、priLow=2 とします。

何故理解できなかったのか

赤文字部分を読んだとき、僕は必死に priHigh=2、priLow=1 がダメな理由を考えたんだけど、ぱっとは思いつかなかった。
a に2以上が当てはまるのは理解できたけど、それは priHigh、priLow には関係ない。
なぜなら、2以上でなければならないのはあくまで括弧の内部にある演算子に対して加算する値のことで、加減算と乗除算とで加算する値のことではないからだ

結論

で、なぜ「priHigh=2、priLow=1 以外なら何でも良い」のかというと、ア と エ で被ってしまうからだ。
選択肢をみてみよう。

ア:priHigh以上
イ:priHigh+1以上
ウ:priHigh-priLow以上
エ:priHigh-priLow+1以上

仮に、priHigh=2、priLow=1にしてみると、アは 2、エは 2 - 1 + 1 = 2、で被ってしまうことが分かる。
これを、解説と同様に priHigh=3、priLow=2 とすると、アは 3、エは 3 - 2 + 1 = 2、でしっかり差分が出ることが分かる。
だから、問題としてpriHigh=2、priLow=1と定義することが禁止されているわけではなく、ただ効率的に悪いよって話。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?