令和4年秋期試験 午後問3【プログラミング】

管理人  
(No.1)
令和4年秋期試験 午後問3(プログラミング)についての投稿を受け付けるスレッドです。
2022.10.09 00:08
さん 
(No.2)
この投稿は投稿者により削除されました。(2022.10.09 15:43)
2022.10.09 15:43
さん 
(No.3)
進まなかった時に戻るコード自体も書かれてなかったような
2022.10.09 15:44
さん 
(No.4)
問題文、間違ってませんでしたか?
一度ゴールしたら終わっちゃう気が。。
2022.10.09 15:46
受験生さん 
(No.5)
問1.(1)3
(2)2
問2.
イpaths[sol_num,k]
ウstacktop-1
エmaze[x][y]
問3
オsol_num
問4(1)カ(5,3)
(2)キ22
ク3


皆さんの回答はどうですか?
2022.10.09 15:47
さん 
(No.6)
プログラムが足りないのか、自分の知識が足りないのか、問題文の動作にどう頑張ってもならなかった…
2022.10.09 15:48
さん 
(No.7)
stacktop-2 
にしました
2022.10.09 15:48
さん 
(No.8)
あと(5.4)にしてますね
終点から一つ戻ると書いていたので
2022.10.09 15:49
さん 
(No.9)
キ:15
ク:2

上記にしてます
2022.10.09 15:51
さん 
(No.10)
No.5と全く同じになりました。
戻る時は再帰呼び出しの呼び出し元で処理を続行するのでちゃんと全ルート探索可だと思います。
2022.10.09 15:56
さん 
(No.11)
> ウさん
自分も何度読み直しても、問題文と同じ動作になりませんでした。。
2022.10.09 15:56
さん 
(No.12)
一度ゴールしたら、visit(x, y)が呼ばれないように見えるのですが、どのように動作するか理解できてる方、教えていただきたいです。。。
2022.10.09 15:57
受験生さん 
(No.13)
再帰的に呼んでます。
2022.10.09 15:59
受かってくれさん 
(No.14)
ゴールする前に再起でvisitが呼ばれてる気がします
2022.10.09 16:01
りっきーさん 
(No.15)
pathsの書き方が少し違いますけど、No5さんと一緒です。
2022.10.09 16:17
がくせいさん 
(No.16)
ウ、カ、キ、ク間違えました、多分。。。

これだと12/20点あるでしょうか?
2022.10.09 16:43
なけなしさん 
(No.17)
問4(1)でx=5,y=3という書き方になりましたが、
問題ないですかね…
2022.10.09 16:48
ちゃりさん 
(No.18)
ク 6にしました
あとはno.5さんと同じでした、、!
2022.10.09 16:51
うたさん 
(No.19)
カのxとy逆にしちゃってる( ;  ; )
(5,4)ですよね、、、
2022.10.09 16:59
りすさん 
(No.20)
(5,4)の23にしてしまった
2022.10.09 17:03
もつさん 
(No.21)
全てNo.5さんと同じです。
少し安心しました。
※イの書き方は違いますが、意図は同じかと
2022.10.09 17:04
さん 
(No.22)
5.3になる理屈がわからないから誰か教えてほしい
2022.10.09 17:06
ななしさん 
(No.23)
(6,4)にした……
ゴールしたあとは呼び出し元に戻って、visit(x+1,y)が実行されません……?
2022.10.09 17:08
irisinoさん 
(No.24)
maze[6][4]がOKじゃないから呼ばれないと思います
2022.10.09 17:11
ななしさん 
(No.25)
見落としてました
じゃあ(5,3)ですね
2022.10.09 17:13
がんばったさん 
(No.26)
問1の(2) 4だと思ったんですけどどうでしょう
2022.10.09 17:14
しそさん 
(No.27)
問1.(1)3
(2)2
問2.
イpaths[u,k]
ウstacktop-1
エmaze[x][y]
問3
オsol_num
問4(1)カ(5,4)
(2)キ23
ク3

問2のウだけ分からんすぎ。
2022.10.09 17:14
かなさん 
(No.28)
1回目ゴールした後次のOKが見つかるマスが(5,3)だからじゃないでしょうか。
僕は単に次のマスの5,4にしてしまいました。
2022.10.09 17:14
かなしみさん 
(No.29)
さて、終点から数えて24にしてしまったわけだが
2022.10.09 17:25
あああさん 
(No.30)
細かいですがpaths[*, *]じゃなくてpaths[*][*]かなち
2022.10.09 17:30
あああさん 
(No.31)
かなと
2022.10.09 17:30
かいさん 
(No.32)
自分もno5さんと一緒です
pathsの参照はpaths[sol_num][k]にしてます。
2022.10.09 17:31
りっきーさん 
(No.33)
解が見つかった後に"最初に実行する"関数visitを問われているので。
visit(5,5)から抜けて、visit(5,4)のif文中を再開して次に条件に当てはまるvisit(5,3)が実行されますので、解答は(5,3)だと思います。
2022.10.09 17:32
さん 
(No.34)
>受験生さん  >受かってくれさん
教えていただき、ありがとうございます。
2022.10.09 17:46
nullptrさん 
(No.35)
キ.「28」になる世界線ってありますか?
2022.10.09 17:49
さん 
(No.36)
この投稿は投稿者により削除されました。(2022.10.09 18:04)
2022.10.09 18:04
nullptrさん 
(No.37)
(5,3)を基点として、(5,2)→(5,1)→(5,2)→(4,2)→(3,2)→(3,1)→(2,1)→(3,1)→(3,2)→(4,2)→(5,2)→(5,3)→(5,4)→(4,4)→(3,4)→(3,3)→(2,3)→(1,3)→(1,2)→(1,1)→(2,1)→(3,1)→(3,2)→(3,3)→(3,4)→(4,4)→(5,4)→(5,5)となるかと思うのですが。。。。。
2022.10.09 17:59
さん 
(No.38)
visit(5,5)の際、4行目のif文内が実行された後に、9行目のelse文は4行目に対応するelseなので実行されず、副問い合わせも実行されない。
と考えていたのですが、考え方の間違いを教えていただけると嬉しいです。。理解力が乏しく申し訳ないです。
2022.10.09 18:05
りりさん 
(No.39)
(5,3)のところ(3,5)って書いちゃった…
というかキって1回目の探索の移動分は足さないんですね
それでも38だから間違っている気がする…
2022.10.09 18:08
りりさん 
(No.40)
副問い合わせ…というのが何を指しているのかわかりませんが
(5,5)にたどり着いた際は4行目のifを処理して最後のend if通ってメソッド終了
残っていたvisit(5,4)の14行目の判定が始まって問(4)カが(5,3)になるっていう寸法ですね
2022.10.09 18:13
かわさん 
(No.41)
この投稿は投稿者により削除されました。(2022.10.09 18:15)
2022.10.09 18:15
一見さん 
(No.42)
この投稿は投稿者により削除されました。(2022.10.09 18:41)
2022.10.09 18:41
教えてさん 
(No.43)
設問4って配点は全部で何点くらいでしょう?
2022.10.09 19:08
あああさん 
(No.44)
カ(x.y-1)だとダメなんですかね?
2022.10.09 19:43
さん 
(No.45)

一個目の解得られて直後にvisit(5,4)に戻ってくるんだから、最初に実行されてるのは(5,4)のコード(前の実行の続き)だと思うんだけどなあ。最初にcallされるのはって意味なら(5,3)か。

ここの解釈次の問題の答えにまで引きずるからたちが悪すぎる。
2022.10.09 21:55
おバカたんさん 
(No.46)
問1って0じゃないんですか?、、
2022.10.09 22:34
うえにーさん 
(No.47)
設問2のエについてです。

プログラムの冒頭に、
stack_visit[stack_top]←(x,y)
があると思います。

解答としては、maze[x][y]が正答例だと思いますが、別解として、maze[stack_visit[stack_top]]はやはり不正解なのでしょうか。
2022.10.09 22:53
むそうさん 
(No.48)
関数の一行目から処理させんと、関数を実行させるとはいわんと思うので、(5,3)じゃないですか。
2022.10.10 00:10
むそうさん 
(No.49)
>うえにーさん
maze[x][y]は二次元配列ですが、maze[stack_visit[stack_top]]だと一次元配列になると思うので間違いな気がします。
2022.10.10 00:15
ゆりかさん 
(No.50)
カが(5,3)で、『このマスを起点に』だから、キは23ではなく22だと思うのだが……どちらが正解ですかねこれ?
2022.10.10 00:46
教えてさん 
(No.51)
この投稿は投稿者により削除されました。(2022.10.10 06:25)
2022.10.10 06:25
泣きそうさん 
(No.52)
自分と同じ回答の方が全くいないので泣きそうです。
カ:(5,4)
キ:14
ク:2
じゃないんでしょうか。。問題文の疑似コードを実際にプログラミングして
実行して、値を出力したら上記になるんですが・・・

visit(5,4)に処理が戻されて、
(x,y)≠(goal_x,goal_y)のelse文を下に辿っていった結果、
最初にOKとなるvisit(x, y-1)つまり(5,3)が呼ばれるのであって、
あくまで「最初に実行される関数」は5,4だと思うんです。
2022.10.10 09:43
もろこしさん 
(No.53)
No45さん
最初に実行される関数と問題にあるので、5,3で間違いないかと思います
2022.10.10 09:45
泣きそうさん 
(No.54)
visit(5,4)は実行済ってことですかね・・・?
visit(5,3)を実行するためにはvisit(5,4)を
再度実行しなおす必要があるのではと思いましたが、、
もうだめだ泣
2022.10.10 09:51
もろこしさん 
(No.55)
No52さん
visit(5,4)はあくまで処理が戻るのであって、実行されるのはvisit(5,3)ですね

あと
キ 22
ク 3
じゃないかなと思います(キはあまり自信ないです)
2022.10.10 09:55
泣きそうさん 
(No.56)
「関数の実行」とは?  言葉の定義を問う問題ですね。。>_<
クについても実行してみた結果2回しか訪問している様子なさそうだし、
もう落ちたかこれは(笑)
2022.10.10 09:58
DayTripperさん 
(No.57)
1の(1)で4じゃないのか
2022.10.10 12:30
ringonさん 
(No.58)
問1.(1)3
(2)2
問2.
イpaths[sol_num][k]
ウstacktop-2
エmaze[x][y]
問3
オsol_num
問4(1)カ(5,4)
(2)キ15
ク2
2022.10.10 16:31
スピードワゴンさん 
(No.59)
>visit(5,4)はあくまで処理が戻るのであって、実行されるのはvisit(5,3)ですね
・・・そうなん?
2022.10.10 20:28
まぁさん 
(No.60)
まぁvisit(5,4)の続きが実行されるから5,4とか言いだしたら
visit(5,5)内でも解が見つかった時の処理が終了した後に実行される行があるから 5,5 とか言えちゃうからね
(最後の maze[x][y]←OK は解発見時のifの外の行で未発見時も実行される)
2022.10.10 20:50
スピードワゴンさん 
(No.61)
あ~~~そうか!たしかに!
じゃあ(5,5)が正解か・・・?
2022.10.10 22:03
さん 
(No.62)
「カ」に関しては公式から解説が欲しい
2022.10.10 23:29
がびーんさん 
(No.63)
2のウって初期化も込みで記録に残すと思ったからstacktop+1にしたんだけどもしかして私だけ…終わったか
2022.10.10 23:38
がびーんさん 
(No.64)
めっちゃ今更だけど7回目のときに(2.5)の座標消されてるわ…2問落とした終わった…
2022.10.10 23:42
やるさん 
(No.65)
まあここで2問落としても他で取れてれば大丈夫でしょ
配点なんてどんだけいっても1問3点だろうし
全設問で14点あれば70点だから平気平気

俺はカで(3,5)って書いてるしキも1周目+2周目と勘違いして38って書いてるしダメかもしれんが
2022.10.11 05:19
gorillaさん 
(No.66)
visit(5,5)にまだ最後の行が実行されるというのは確かにそうなんだけれど、
それは問題文の「一つ目の解が見つかった後で」をどこのタイミングでとらえるべきか、
っていう別の話のような気がするな~。

visit(5,5)は最後なので何かの関数から戻ってくるということはありえなくて、
visit(5,4)が最初のような?

問題文が「新しく実行される関数」とかだったら答えやすかったのにな~
問題文の不備だろこれ。
2022.10.11 09:32
さん 
(No.67)
visit(5,4)実行中だから5,4だというならvisit(start_x,start_y)だって実行中では?と思ってしまうな
2022.10.11 09:45
さん 
(No.68)
特定の処理の集合の事を関数と呼ぶので、visit(5,4)の残りの処理を実行したところでそれは「処理の実行」であって「特定の処理の集合(=関数)の実行」とは言えないと思います
2022.10.11 10:06
さん 
(No.69)
それを言うなら、関数の1行目から最後まで最初に処理し終わる関数はどれかっていう問題になるので5,3はなおさら不適じゃないですか?
2022.10.11 13:05
satoshiropさん 
(No.70)
3オ
paths[0]の長さ
と書いたんですが部分点もらえないですかね。。?
2022.10.11 14:27
おまさん 
(No.71)
pathが動的配列じゃないからダメなんじゃないですかね
2022.10.11 17:46
ccさん 
(No.72)
tacの解答速報では5.3になってますね。
2022.10.11 18:35
tyomoさん 
(No.73)
解答速報5,3になってますね。
関数実行=関数の先頭から開始  なんだ。へぇ~  
2022.10.11 20:08
t.tさん 
(No.74)
paths【sol_num】【k】の部分について
私は下記のように考えて回答しましたが、やはり間違いでしょうか?

paths の説明
添字uは解の番号、vは座標の順番と記載あり

上記から
paths【sol_num+1】【k+1】
としました。
(解番号1の1番目はx,2番目はy...になるように)

paths【】【】を順に全て印字すると言う部分が、
どのようにどこまで印字するか曖昧ですが、paths【0】【0】印字時に、不定値が印字されると言われてしまうとそれまでですが、、
格納値以上印字しても不定値が印字されると思いますが、いかがでしょうか?
2022.10.12 19:37
おまさん 
(No.75)
格納値以上に印字されるかもしれないで間違いかどうか判断するより
確実に印字されるpaths[0][0]でおかしな答えが出るのは分かりきってるんだからだから間違ってるでしょうね
2022.10.13 18:27
リーガルπさん 
(No.76)
カ:(5,3)は納得いかないんだけど、解答は(5,3)なのかなー。
もし、(5,3)が障害マスだった場合は、カ:(3,2)で、そのあいだ関数は全く実行されないってホントに正しいのかな???
「実行中の関数」って概念は存在しないってこと??
2022.10.13 19:17
まぁさん 
(No.77)
特定の処理系の話ではないので
「visit の実行」とあれば文字通り「visit」と書いてある行を探せばいいというだけの話かと
2022.10.13 20:17
おまさん 
(No.78)
「実行される」と「実行されている」(実行中)ってことなんじゃないですかね
わざわざソースコード書かせてるんだから条件の文章だけで読み取れる(5,4)で引っ掛けるいじわる問題みたいなもんですよ
2022.10.13 23:59

返信投稿用フォーム

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

その他のスレッド


Pagetop