令和5年免除  問14について

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
勉強中さん  
(No.1)
タイトルの通り令和5年免除  問14についてです。
解説を読んでもよくわからないので分かる方がいれば教えていただきたいです。
解説の5.の手順に行くまでは理解できるのですが
そこから回答を導くときに
x=(b+c÷d)×(e÷f-g)
となっていますがこの()はどこから出てきたのでしょうか?
x=W2×W4を展開した直後の形だと()の無い形の
x=b+c÷d×e÷f-gとなると思うのですが・・

他のサイトでの解説も見当たらず困っています。
分かる方がいれば助けていただけると嬉しいです。
よろしくお願いします。
2024.06.13 21:32
jjon-comさん 
FE ゴールドマイスター
(No.2)
w2 が b+c/d という演算で得られる結果であり,
w4 が e/f-g という演算で得られる結果である,
ということを表すためのカッコです。

> ()の無い形のx=b+c÷d×e÷f-gとなると思うのですが

加減算よりも乗除算の優先順位が先,という演算規則がありますから,
この式が表す演算は b+(c÷d×e÷f)-g になります。
これは (b+c÷d)×(e÷f-g) とは異なる意味の式になります。
2024.06.13 23:21
スレ主ですさん 
(No.3)
jjon-com 様
ご回答ありがとうございます。
※質問したのとは別端末で返信しています


> w2 が b+c/d という演算で得られる結果であり,
> w4 が e/f-g という演算で得られる結果である,
> ということを表すためのカッコです。
なるほど・・演算結果を表すための()ですか
ということはこの問題に限らず
演算で得られる結果には無条件で()がつくという理解で問題ないですかね?

> 加減算よりも乗除算の優先順位が先,という演算規則がありますから,
> この式が表す演算は b+(c÷d×e÷f)-g になります。
> これは (b+c÷d)×(e÷f-g) とは異なる意味の式になります。
こちらも説明ありがとうございます。
この式が表す演算は b+(c÷d×e÷f)-gという形で回答とは違った形になるのですね。
b+(c÷d×e÷f)-gというのは演算を表す式であり
(b+c÷d)×(e÷f-g)というのは命令で得られた結果を表す式
なので今回の設問では(b+c÷d)×(e÷f-g)が回答となる
ということでしょうか?


続けての質問になり申し訳ありません。
お時間あるときに回答いただけると助かります。
よろしくお願いします。
2024.06.14 09:43
jjon-comさん 
FE ゴールドマイスター
(No.4)
No.2 の「演算で得られる結果」という表現が曖昧で誤解を生んだようです。訂正させてください。

① ÷(c,d,w1)
② +(b,w1,w2)
③ ÷(e,f,w3)
④ ー(w3,g,w4)
⑤ ×(w2,w4,x)

という問題文の表記は,計算の順序を表しています。①~⑤を一つの式にまとめるとこうなります。
x←((b+(c÷d))×((e÷f)ーg))
①~⑤には5つの演算が登場しますから,開きカッコは5つ,閉じカッコも5つ,登場するはずです。
> 無条件で()がつくという理解
で問題ありません。計算式は本来,全カッコ付きで表現できるものです。

ただし。
この表記ではカッコがたくさん登場しますからこれを嫌って(?)
「乗除算はカッコを省略していても演算の優先順位は先」
という決まりがあることを小学校で学びます。

この決まりを知っている人にとっては,①③⑤のカッコは省略可能で,
次のように書いても同じ式だということが分かります。
x←(b+c÷d)×(e÷fーg)

> b+(c÷d×e÷f)-gというのは演算を表す式であり
> (b+c÷d)×(e÷f-g)というのは命令で得られた結果を表す式なので

いいえ,
前者も後者も,演算を表す式です。
前者も後者も,命令で得られた結果を表す式です。

前者の計算の順序は
⑤( ④(b+ ③( ②( ①(c÷d)×e)÷f))-g)
となって,問題文の計算式とは計算の順序が違うのです。
2024.06.14 17:39
jjon-comさん 
FE ゴールドマイスター
(No.5)
念のため。

x←((b+(c÷d))×((e÷f)ーg))
に①~⑤を対応させるとこうなります。
x←⑤( ②(b+ ①(c÷d)) × ④( ③(e÷f) ーg))

x←(b+c÷d)×(e÷fーg)
に①~⑤を対応させるとこうなります。
x←②(b+c÷d) × ④(e÷fーg)
2024.06.14 17:43
勉強中さん  
(No.6)
jjon-com 様
再度ご回答ありがとうございます。

自分の中で理解して落とし込もうとしていたら
時間がかかってしまい返信が遅れてしまいました。
申し訳ありません・・

> 「乗除算はカッコを省略していても演算の優先順位は先」
> この決まりを知っている人にとっては,①③⑤のカッコは省略可能で
この辺の理解が甘かったです。
問題文で与えられている式の②と④だけは
乗除算ではなく加減算なので優先して計算させるために()を残す。
ということですね。
x←((b+(c÷d))×((e÷f)ーg))
上記の形から①~⑤に対応する()が加減乗除のどれになるか考えたうえで
省略可能な()はどれかと考えたら理解できました。


> 前者の計算の順序は
> ⑤( ④(b+ ③( ②( ①(c÷d)×e)÷f))-g)
> となって,問題文の計算式とは計算の順序が違うのです。
こちらも計算の順序が違うということは理解できました。
ちなみに計算の順序を変えると残す()も変わってくるのでしょうか?
⑤( ④(b+ ③( ②( ①(c÷d)×e)÷f))-g)を②と④の加減算の()のみを残すと
(b+(c÷d×e)÷f)-gになると思うのですが
これだと(c÷d×e)この部分が乗除算で省略できるのにされていないことになります。
b+(c÷d×e÷f)-gの形にするには
③の()が残っていないといけません。
※そもそもこの形でも乗除算の部分が()になっていて省略可能になっている気が・・
  でもそこを省略すると選択肢にあるb+c÷d×e÷f-gとなり誤答になってしまう・・
レベルの低い質問で非常に申し訳ないのですが
b+(c÷d×e÷f)-g = (b+c÷d)×(e÷f-g)となるのでしょうか?
※b=1,c=2,d=2,e=2,f=2,g=0を代入して計算したところ一致はしたのですが一致することが正なのか分かりません。
※b+(c÷d×e÷f)-gの()は左から順に計算
> この式が表す演算は b+(c÷d×e÷f)-g になります。
> これは (b+c÷d)×(e÷f-g) とは異なる意味の式になります。
一度目の回答の際に上記回答をいただいているのですが
式の意味が違うということは計算結果も異なるということでしょうか?


念のための補足説明もありがとうございます。
対応する()に番号を記載してくださったおかげで
分かりやすかったです。

何度も何度も貴重なお時間をとらせてしまい
申し訳ありません。
2024.06.16 03:06
勉強中さん  
(No.7)
まだまだ吸収しないといけない知識は山のようにありますが
千里の道も一歩から
徐々にできることを増やしていけたらなと
思っています。
2024.06.16 03:18
jjon-comさん 
FE ゴールドマイスター
(No.8)
> b+(c÷d×e÷f)-g = (b+c÷d)×(e÷f-g)となるのでしょうか?
いいえ,なりません。

> ※b=1,c=2,d=2,e=2,f=2,g=0を代入して計算したところ
> 一致はしたのですが一致することが正なのか分かりません。
> 式の意味が違うということは計算結果も異なるということでしょうか?

一例として,bとgは変数のまま,No.6に例示された
> … ,c=2,d=2,e=2,f=2, … を代入して
という状況を前提として式を展開してみます。

左辺の b+(c÷d×e÷f)ーg は
=b+(2÷2×2÷2)ーg
=bーg+1

右辺の (b+c÷d)×(e÷fーg) は
=(b+2÷2)×(2÷2ーg)
=(b+1)×(1ーg)
=bーgーbg+1

ですから,この状況下では
bg=0 のときだけ左辺と右辺が等しくなります。
> ※b=1, … g=0
は bg=0 を満たす値の組の例の一つであり,左辺=右辺 となりますが,
そうでない値の組の例は多数存在し,その場合は 左辺≠右辺 となります。
2024.06.16 15:15
jjon-comさん 
FE ゴールドマイスター
(No.9)
No.4の最後に登場する
> 前者の計算の順序は
> ⑤( ④(b+ ③( ②( ①(c÷d)×e)÷f))-g)
> となって,問題文の計算式とは計算の順序が違うのです。
だけは①~⑤の意味が違うのです。
(以下ではそれを⑪~⑮という別の記号に置き換えました)
誤解を招く表現だな,と投稿した後に気づいたのですけれど,
恐れたとおりの事態になってしまいました。

再度説明し直します。

----
出題された
① ÷(c,d,w1) …乗除算
② +(b,w1,w2)
③ ÷(e,f,w3) …乗除算
④ ー(w3,g,w4)
⑤ ×(w2,w4,x) …乗除算

を完全カッコ付きの1つの式にまとめたものがこちらで,
x←⑤( ②(b+ ①(c÷d)) × ④( ③(e÷f) ーg))

演算の優先順位が高い乗除算のカッコを省略した形式がこちらです。
x←②(b+c÷d) × ④(e÷fーg)

----
それに対して。

(以下は出題には対応していませんから,便宜上,計算順序を⑪⑫⑬⑭⑮という別の記号で表現します)

x=b+c÷d×e÷f-g
を完全カッコ付きの1つの式にまとめるとこうなり,
x←⑮( ⑭(b+ ⑬( ⑫( ⑪(c÷d)×e)÷f))-g)

もしもこれを出題に準じた表記に対応させるならこうなります。
⑪ ÷(c,d,w1) …乗除算
⑫ ×(w1,e,w2) …乗除算
⑬ ÷(w2,f,w3) …乗除算
⑭ +(b,w3,w4)
⑮ ー(w4,g,x)

ちなみに,
乗除算のカッコを省略するだけなら次のようになるはずなのに,
x←⑮( ⑭(b+c÷d×e÷f)-g)

x←b+c÷d×e÷f-g
という表記であっても式の意味が同じになる理由は,
小学校で学ぶもう一つの決まり
(カッコの指定がない限り)「計算は前から順におこなう」があるからです。
2024.06.16 15:51
jjon-comさん 
FE ゴールドマイスター
(No.10)
ということで,No.6の

> ⑤( ④(b+ ③( ②( ①(c÷d)×e)÷f))-g)を
> ②と④の加減算の()のみを残すと
> (b+(c÷d×e)÷f)-gになると思うのですが

は誤解です。
この式は問題文に登場した①~⑤とは対応しておらず,
出題されていない別の式ですから別の記号で示すべきものです。

No.9ではそれを次のように表しました。
⑮( ⑭(b+ ⑬( ⑫( ⑪(c÷d)×e)÷f))-g)

加減算のカッコは⑭と⑮であり,これを残すとこうなります。
⑮( ⑭(b+c÷d×e÷f)-g)

(この先の省略についてはNo.9の最後で補足しました)
2024.06.16 16:07
勉強中さん  
(No.11)
jjon-com 様
何度もご回答および解説ありがとうございます。

> 左辺の b+(c÷d×e÷f)ーg は
> =b+(2÷2×2÷2)ーg
> =bーg+1
> 右辺の (b+c÷d)×(e÷fーg) は
> =(b+2÷2)×(2÷2ーg)
> =(b+1)×(1ーg)
> =bーgーbg+1
> ですから,この状況下では
> bg=0 のときだけ左辺と右辺が等しくなります。
すべての変数に値を代入するのではなく、一部の変数のみ残し
式を展開するという方法もあるのですね。勉強になります。
確かに展開した後の「bーg+1」と「bーgーbg+1」
にb=1,g=0を代入すると右辺=左辺となりますが
b=2,g=1を代入すると「bーg+1」の結果は2-1+1=2となり
「bーgーbg+1」の結果は2-2+1-1=0となるため右辺≠左辺になりますね。
だから b+(c÷d×e÷f)ーgと(b+c÷d)×(e÷fーg) は
別の式になるという理解なのですね。

> x=b+c÷d×e÷f-g
> を完全カッコ付きの1つの式にまとめるとこうなり,
> x←⑮( ⑭(b+ ⑬( ⑫( ⑪(c÷d)×e)÷f))-g)
> この式は問題文に登場した①~⑤とは対応しておらず,
> 出題されていない別の式ですから別の記号で示すべきものです
> ⑪ ÷(c,d,w1) …乗除算
> ⑫ ×(w1,e,w2) …乗除算
> ⑬ ÷(w2,f,w3) …乗除算
> ⑭ +(b,w3,w4)
> ⑮ ー(w4,g,x)
⑪~⑮までの番号での説明ありがとうございます。
問題文とは関連がないため再度加減乗除の関係性を考えなければならなかったのですね。
丁寧な説明をしてくださったおかげでやっと理解できました。
まとめると設問では
x←⑤( ②(b+ ①(c÷d)) × ④( ③(e÷f) ーg))
で①、③、⑤が乗除算のため省略してx←②(b+c÷d) × ④(e÷fーg)となる。
対して設問とは式の意味が違うが
x←⑮( ⑭(b+ ⑬( ⑫( ⑪(c÷d)×e)÷f))-g)
の場合だと⑪、⑫、⑬が乗除算のため省略して⑮( ⑭(b+c÷d×e÷f)-g)となる。
しかし、⑭と⑮の()がなくても左から順に計算されるため
x←b+c÷d×e÷f-gとなる。ということですね。


ちなみにそうなるとNo.2で出てきた「b+(c÷d×e÷f)-g」という式も
No.4で出てきた「((b+(((c÷d)×e)÷f))-g)」という式も
No.9で出てきた「((b+c÷d×e÷f)-g)」という式も
同じくNo.9で出てきた「b+c÷d×e÷f-g」とう式も
すべて同じ式を表していてどこの()を残すかだけが異なっている。
という理解で問題ないですよね?
分かりやすいように上から順にⅠ~Ⅳまでの番号を振って整理すると
※()と対応する番号は⑪~⑮をお借りします。
Ⅰ.「b+(c÷d×e÷f)-g」・・⑬の割り算の()を省略せず記載した形
Ⅱ.「((b+(((c÷d)×e)÷f))-g)」・・⑪~⑮までのすべての()を省略せず記載した形
Ⅲ.「((b+c÷d×e÷f)-g)」・・⑭の足し算と⑮の引き算の()を省略せず記載した形
Ⅳ.「b+c÷d×e÷f-g」・・Ⅲの結果に加えて(カッコの指定がない限り)「計算は前から順におこなう」という規則に従い記載した形
ということになると思うのですが合っていますか?


複数回にわたる丁寧な解説のおかげで当初はさっぱり理解が出来なかったことが
少しずつ理解できるようになってきました。
何度も丁寧な説明をしていただきありがとうございました。
2024.06.17 00:08
jjon-comさん 
FE ゴールドマイスター
(No.12)
> 上から順にⅠ~Ⅳ
> すべて同じ式を表していてどこの()を残すかだけが異なっている。
> という理解で問題ないですよね?

はい,問題ありません。
2024.06.17 01:24
勉強中さん  
(No.13)
jjon-com 様

何度もご説明いただき本当にありがとうございました。
おかげさまで理解することができました。

今後も行き詰まった場合には質問することもあるかもしれませんが
その際もお力添えいただけると大変助かります。

引き続き勉強頑張っていきたいと思います。
ありがとうございました!!
2024.06.17 01:45

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop