跳到正文

平成27年度 秋期 ITパスポート試験 問48

这道题的解析和你的作答记录。

問48
頻出度★★☆

表に示す構成のデータを,流れ図の手順で処理する場合について考える。流れ図中のx,y,zをそれぞれデータ区分A,B,Cと適切に対応させれば,比較(“xか?”,“yか?”,“zか?”)の回数の合計は,最低何回で済むか。

データ区分件数
A10
B30
C50
その他10

流れ図:「開始」→「xか?」(No→「yか?」,Yes→「xの処理」);「yか?」(No→「zか?」,Yes→「yの処理」);「zか?」(No→「その他の処理」,Yes→「zの処理」);各処理後→「終わりか?」(No→「次のデータ」へ戻る,Yes→「終了」)。注記:流れ図中のx,y,zはデータ区分のA,B,Cのいずれかと対応させる。

出典 平成27年度 秋期 ITパスポート試験 問48
解説

問 48在逐条判断的流程图中,越靠上游的条件比较次数越少

  • ア

    正解 流程图按「是 x 吗?」→(若为 No)「是 y 吗?」→(若为 No)「是 z 吗?」的顺序对每条数据进行判断,因此比较次数为:属于 x 则 1 次,属于 y 则 2 次,属于 z 则 3 次,任何都不符合的「其他」则要执行全部 3 次比较。要使合计最小,应让件数越多的类别在越靠前的阶段(比较次数越少)被处理。件数中 C=50 最多,其次 B=30、A=10,所以让 x=C、y=B、z=A 对应最优。这样 C:50×1=50、B:30×2=60、A:10×3=30、其他:10×3=30,合计 50+60+30+30=170 次。因此最少次数为 170,正确答案是ア。

  • 错误イ

    190 是采用 x=C、y=A、z=B 之类的对应(50×1+10×2+30×3+其他 10×3=190)所得到的值,由于把件数较多的 B 安排到了 z(3 次),因此不是最小。设问问的是「最少多少次」,所以不合适。

  • 错误ウ

    230 是采用 x=B、y=A、z=C 之类的对应(30×1+10×2+50×3+其他 10×3=230)所得到的值。它把件数最多的 C 放在了 z(3 次),次数不但不是最小,反而属于较大的一类,因此不合适。

  • 错误エ

    250 是设为 x=A、y=B、z=C 时(10×1+30×2+50×3+其他 10×3=250)的值,属于让件数越少的类别越早判断这种最差的对应。这是最大次数,并不是本题所问的最少次数的答案。

ここがポイント
  • 在逐条判断的流程图中,越靠上游的条件比较次数越少。要使合计比较次数最小,「把件数多的数据类别分配到靠前的判断(比较次数少)处」是常规做法。
  • 每个类别的比较次数=到达该类别之前所执行的判断数(x=1 次、y=2 次、z=3 次、其他=3 次),将其与件数相乘再求总和,这是一种加权合计的思路。
用語
解答問48ア
练这一题

作答记录