令和4年春期午後問3設問3について
広告
はやとさん
(No.1)
表2の更新処理では空白のマスに入る数字(要素『1』)を要素『0』にしていますが、『0』を『1』にする処理はありません。
そのため解答では処理Aはデータ構造Zを退避、処理Bは退避したデータ構造Zを取り出しています。
これが望ましい処理であるのはわかるのですが、要素『0』を『1』に更新する処理がないことに注目し、処理Aを「データ構造Zの空白マスの要素を0に更新」、処理Bを「データ構造Zの空白マスの要素を1に更新」では不正解でしょうか。
そもそも上記の処理A,Bに記載されている意図って伝わるでしょうか。
https://www.ap-siken.com/kakomon/04_haru/pm03.html
そのため解答では処理Aはデータ構造Zを退避、処理Bは退避したデータ構造Zを取り出しています。
これが望ましい処理であるのはわかるのですが、要素『0』を『1』に更新する処理がないことに注目し、処理Aを「データ構造Zの空白マスの要素を0に更新」、処理Bを「データ構造Zの空白マスの要素を1に更新」では不正解でしょうか。
そもそも上記の処理A,Bに記載されている意図って伝わるでしょうか。
https://www.ap-siken.com/kakomon/04_haru/pm03.html
2023.04.08 18:47
jjon-comさん
★AP プラチナマイスター
(No.2)
質問者の解答は不正解です。
例えば、
図1図2図3によると、9×9枠の左下
board[72] は空白マスであり、最終的に board[72] の解答は 8 になるとのこと。
ここで、データ構造Zの初期化処理後の状態を想定してみます。
Z[72][1..9] = {0,0,1,0,0,0,0,1,0}
これは、盤面の横1行、縦1列、3×3の枠内の全てを見た結果、
board[72] に入れられる数字は 3 または 8 だということを表しています。
ここで、board[72] に 3 が入れられるか試す処理をおこなうとしましょう。
質問者の解答
がおこなわれたなら、データはこうなります。
Z[72][1..9] = {0,0,0,0,0,0,0,1,0}
しかし、3は正解ではないとのこと。これが失敗したなら、
質問者の解答
が正しいとした場合、1に更新するのはどの箇所のデータですか?
(a) board[] に初期条件の数字が埋まっているから該当数字が埋められない0
(b) board[] は空白マスだが (a)の縦横関係から該当数字が埋められない0
(c) board[] の空白マスに仮の数字を置いてみた0
(d) (c)の縦横の影響で一時的に他マスにその数字は置けなくなった0
など、
という状態には、恒久的なものも一時的なものもあります。
質問者「データ構造Zの空白マスの要素を」という表現では
1に更新する箇所を明示していません。
例えば、
図1図2図3によると、9×9枠の左下
board[72] は空白マスであり、最終的に board[72] の解答は 8 になるとのこと。
ここで、データ構造Zの初期化処理後の状態を想定してみます。
Z[72][1..9] = {0,0,1,0,0,0,0,1,0}
これは、盤面の横1行、縦1列、3×3の枠内の全てを見た結果、
board[72] に入れられる数字は 3 または 8 だということを表しています。
ここで、board[72] に 3 が入れられるか試す処理をおこなうとしましょう。
質問者の解答
> 処理Aを「データ構造Zの空白マスの要素を0に更新」
がおこなわれたなら、データはこうなります。
Z[72][1..9] = {0,0,0,0,0,0,0,1,0}
しかし、3は正解ではないとのこと。これが失敗したなら、
質問者の解答
> 処理Bを「データ構造Zの空白マスの要素を1に更新」
が正しいとした場合、1に更新するのはどの箇所のデータですか?
(a) board[] に初期条件の数字が埋まっているから該当数字が埋められない0
(b) board[] は空白マスだが (a)の縦横関係から該当数字が埋められない0
(c) board[] の空白マスに仮の数字を置いてみた0
(d) (c)の縦横の影響で一時的に他マスにその数字は置けなくなった0
など、
> データ構造Zの該当する数字の要素に0を設定する(表2)
という状態には、恒久的なものも一時的なものもあります。
質問者「データ構造Zの空白マスの要素を」という表現では
1に更新する箇所を明示していません。
2023.04.09 01:24
はやとさん
(No.3)
jjon-comさん、早々のご回答ありがとうございます。
おっしゃる通りデータ構造Zを初期化後、board[72]で候補になる値は3,8であり、3(誤り)を入れた場合、処理Bで更新するデータが特定できないため、私の回答は誤りであること理解いたしました。
ありがとうございました。
おっしゃる通りデータ構造Zを初期化後、board[72]で候補になる値は3,8であり、3(誤り)を入れた場合、処理Bで更新するデータが特定できないため、私の回答は誤りであること理解いたしました。
ありがとうございました。
2023.04.11 00:48
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告