HOME»応用情報技術者試験掲示板»令和6年秋期試験 午後問3【プログラミング】
投稿する

令和6年秋期試験 午後問3【プログラミング】 [5502]

 管理人(No.1) 
令和6年秋期試験 午後問3(プログラミング)についての投稿を受け付けるスレッドです。
2024.10.13 00:08
うんちさん(No.2) 
めっちゃ簡単だったな
2024.10.13 15:36
バカさん(No.3) 
t←dxdがd+dじゃないのよく分からんかった
2024.10.13 15:38
ななしさん(No.4) 
割り算記号使わないといけないところを分数にしてしまった…
これって部分点とか貰えないですかね…?
2024.10.13 15:39
うんちさん(No.5) 
>>3
例えばだけどd=4までやったとして次d=5のとき、10,15は既に素数じゃない判定されてるんだから見る意味なくない?  って話
2024.10.13 15:42
回数自信ないさん(No.6) 
>>3
d×dより小さいdの倍数はd×(dより小さい値)なので既にfalseになっているからだと思いました
2024.10.13 15:43
おかさん(No.7) 
たとえばd=5の場合、25以前の5の倍数はもうd=3、4の時に処理してるから計算量を減らすためだと思う。
出題者はかしこい
2024.10.13 15:43
あききたさん(No.8) 
>>4
同じく。
÷じゃないとあかんの…?
2024.10.13 15:50
バカさん(No.9) 
なるほどね。

n^2
isPrime[d]が素数
t+d
isPrime[(d-1)/2]が素数
(t-1)/2
t+d
171 15 4
2024.10.13 15:51
Jishinnaiさん(No.10) 
下2問違った
t+(d×2)
171 13 2
2024.10.13 15:54
匿名さん(No.11) 
最後の奇数のみ処理する関数ですが、d/2と(d-1)/2って答えとして差ってありますか?

関数の処理的にはどっちも同じ動きすると思ったんですが...
2024.10.13 15:56
こんにちはさん(No.12) 
Jishinnaiさん
同じです
2024.10.13 15:56
わからんさん(No.13) 
ア  N^2
イ  isPrime[d]がtrueと等しい
ウ  t+d
エ  isPrime[(d−1)mod2]がtrueと等しい
オ(t−1)mod2
カ  t+2d
169,13,2

どうですか
2024.10.13 15:57
こんにちはさん(No.14) 
mod2だと0か1しか取らないと思います。
2024.10.13 15:58
バカさん(No.15) 
うわおおこけした。

ほな...。泣
2024.10.13 15:58
かしいさん(No.16) 
t+d→d×(d+1)
t+2×d→d×(d+2)
でもいいですかね。?
2024.10.13 16:02
こんにちはさん(No.17) 
何回もwhileでループする時にtを使わないとずつと同じ値になってしまう気がします、、
2024.10.13 16:03
わかんねえさん(No.18) 
t+dは奇数+奇数で偶数になるので、ダメな気がするんですが、、
2024.10.13 16:06
かしいさん(No.19) 
この投稿は投稿者により削除されました。(2024.10.13 16:08)
2024.10.13 16:08
うんちさん(No.20) 
そっか偶数要らないからt+2dか〜
やられたわ

そうすると最後の問題も4じゃなくて2になる悲しみ
2024.10.13 16:08
匿名さん(No.21) 
この投稿は投稿者により削除されました。(2024.10.13 16:12)
2024.10.13 16:12
viさん(No.22) 
t+(d×2)って余計なかっこつけてしまった・・・
これじゃダメでしょうかね
2024.10.13 16:10
こんにちはさん(No.23) 
n∧2
isprime[d]がtrueに等しい
t+d
isprime[(d-1)÷2]かtrueに等しい
(t-1)÷2
t+2×d
171
13
2
どうでしょうか?
2024.10.13 16:12
nonameさん(No.24) 
かしい  さん
おそらくだめだと思います。while 1回目はそれで通用しますが,2回目以降で狂ってしまうので。

(上の投稿  >21 はニックネームが被ってしまっていたので削除しました。すみません)
2024.10.13 16:13
Atsush2965さん(No.25) 
>>9
isPrimeはブーリアン列ですよ……

>>11
同じだと思います
整数の除算は切り捨てですよね

>>13
2dは掛け算で書かないと駄目では

>>22
大丈夫だと思います
2024.10.13 16:18
tbさん(No.26) 
171,13,2があってるなら勝ったかな
2024.10.13 16:19
tbさん(No.27) 
t+2dって書いちゃった可能性おれもあるな
2024.10.13 16:20
おかさん(No.28) 
t+2dって書いちゃったなぁ
2024.10.13 16:22
ななしさん(No.29) 
前例的には2dって書くとダメなんですかね…?
(ダメなのは分かるんですが、温情が働いても良さそうな気がするので)解答公表とかに、これはダメって明記されたソースがあったら教えて欲しいです…
2024.10.13 16:25
しつもんさん(No.30) 
t ← t x dじゃだめなんでしょうか
2024.10.13 16:37
Atsush2965さん(No.31) 
>>30
上に書いてあるアルゴリズムと違う動きになるので駄目だと思います
2024.10.13 16:39
agggさん(No.32) 
171,12,3でした
2024.10.13 16:42
うれしいさん(No.33) 
171,13,2が合っていたら恐らく満点です✌️
2024.10.13 16:47
競プロerさん(No.34) 
t+2dって書いちゃった
コメントアウト欄に2k+1って書いてるしt+2dでバツになるならそう書いとけよと思う
こんな非本質的なことで点数引かれるのはしょうもなさすぎるわ
2024.10.13 16:51
HimaJinJPさん(No.35) 
No.23が完答かと思います。
(true「と」等しい)ですが,さすがにこれで減点はないでしょう。
「2d」は冊子の前のほうに乗算の演算子が×と指定されているので
残念ですが減点されるかも知れません。
2024.10.13 16:52
syさん(No.36) 
prime3シンプルにわからなかったけど時間的に引くに引けなかった。
2024.10.13 16:54
ゆうさん(No.37) 
L2が11,L3が1になりました
L3が2なの解説してくださる方いますか?
2024.10.13 16:56
こんにちはさん(No.38) 
dが3の時にtが9になります。
このときにwhileループでtがN以下が条件なので
tが15になる時に1回、tが21になる時に2回目で21は条件から弾かれるので2回となりました。
2024.10.13 17:00
ゆうさん(No.39) 
>>38
ありがとうございます!
その通りですね…
21になってからループ抜けますもんね、焦って15で満足しちゃってました〜
2024.10.13 17:16
touristさん(No.40) 
No.23さんと同じ解答です!
2024.10.13 17:20
ゆうさん(No.41) 
掛け算2dで書いたし、割り算にも/使っちゃいました…
行けたと思ったのに結構減点ですね〜
2024.10.13 17:31
ssgさん(No.42) 
私もゆうさんと全く同じです。。
半分くらい貰えるんですかね。。
2024.10.13 17:37
タイタンさん(No.43) 
isprime[(d-1)÷2]がtrue
って書いちゃった。と等しいつけ忘れた...
2024.10.13 17:50
mcstさん(No.44) 
n∧2
isprime[d]がtrueに等しい
t+d
isprime[(d-1)÷2]かtrueに等しい
(t-1)÷2
t+d
171
12
4

こうじゃないかなあ。
2024.10.13 19:07
ダヤさん(No.45) 
怪しい、153、12、2と思います
2024.10.13 19:11
akiさん(No.46) 
(d-1)÷2などの部分、d÷2やt÷2でもd,tが整数型な以上切り捨てになるだろうと判断していたのですがIPAの疑似コードのルールではその場合の動作は未定義でダメなんでしょうかね?
2024.10.13 19:18
tbさん(No.47) 
d÷2でも大丈夫だと思います
(整数型、が根拠でしかないですが)
2024.10.13 19:20
お馬鹿3太郎さん(No.48) 
t+dのところ
d×(d+1)なんて書いてしまったけどやはりバツですかね、、、
2024.10.13 20:17
こんにちわんこさん(No.49) 
こんな感じに回答してました
1 N^2
2 d mod t が0 でない, d
3 d mod 2 が 0でない, 2d, 2d + 1
4 だめだめ
2024.10.13 20:22
あいうさん(No.50) 
No23の方と基本全部同じだけど、t+2dって書いてしまった悲しい
2024.10.13 20:25
アチーさん(No.51) 
分数記述で×になったら泣きます。
他がギリギリそうなので...
2024.10.13 20:30
mcstさん(No.52) 
私(No.44)間違ってました。
コード書いて確認しました。

t+2×d
171
13
2

で、No.23さんのが正解ですね。
2024.10.13 20:38
かけるさん(No.53) 
図3のプログラムの後ろでd=d+2になっているので、dが奇数にしかならないと思い、エをisPrime[d]がtrueと等しいにしたんですけど、いずれのループでも奇数についてだけ実行されるようにする。と書いてあるので不適切ってことでしょうか?同じ理由でオもtにしました。
2024.10.13 21:22
とくめいさん(No.54) 
isPrime[d]とかの後に「がtrueと等しい」ってやっぱり書いてないとダメですかね…。
4ページ目の記述形式には、条件式が真ならよさそうなんですが、次のページには論理型の定数が定義されてるし、図1の中の条件式にも書いてあるし…減点か得点なしになるでしょうか…。
2024.10.13 21:50
jogerさん(No.55) 
アルゴリズム爆死した
半分も取れてないわ
prime3のところから時間が迫ってきてわけわからなくなった
過去問では点数良かったから自身あったのになんでこうなった
2024.10.13 22:22
アチーさん(No.56) 
IPAでは紙に書いたプログラムでやりとりしていて、最終的にタイピングする人が提出された紙を見て、記述ミスがあった際はどんな内容でも差し戻しをしているのでしょうか?
2024.10.13 22:38
jogerさん(No.57) 
そもそも素数って聞いて素数ってなんだっけ?って考えるところから始めたからこうなったんだろう
理系で数学しっかり勉強してる人とはこういうところで差が出るんだろうな
2024.10.13 22:47
ktoさん(No.58) 
No.53の方と同じ考えです。奇数しか返らないので、
エ  isPrime[d]がtrueと等しい
オ  t
にしました。
2024.10.13 22:53
aiさん(No.59) 
図3ではisPrime[k]がtrueのとき2k+1が素数であることを表しているので、dが素数かどうかはisPrime[(d-1)÷2]に格納されているのだと思います。
2024.10.13 23:21
viさん(No.60) 
エ:isPrime[d÷2]がtrueと等しい
オ:t÷2

では不正解になりそうでしょうか?
それとも整数型なのでセーフなのか・・・
2024.10.13 23:51
おーさんさん(No.61) 
171,13,2
にしました。
あとはmcstさんとほぼ同じです。
t÷2は商を求める  div で書いたんだけど、どうだろう?
2024.10.13 23:53
Atsush2965さん(No.62) 
そういえば私L2 14回にしてるんですよね

N←20
d←2(≦20): t←2² = 4, 6, 8, 10, 12, 14, 16, 18, 20(≦20) 9回
d←3(≦20): t←3² = 9, 12, 15, 18(≦20) 4回
d←4(≦20): t←4² = 16, 20(≦20) 2回
d←5〜: 0回

計15回
……あれ?
2024.10.13 23:55
Atsush2965さん(No.63) 
>>60
これ整数型判定じゃなかったら大問4(組込)の初めも話変わってくるので怖いですね
向こうでは現在ChatGPT的に大丈夫という結論らしいですが
2024.10.13 23:59
Atsush2965さん(No.64) 
(組込じゃなくてシスアーキだった)
2024.10.14 00:01
山脈さん(No.65) 
エラトステネスの篩を題材にしたのかな……?  (自分が理系なのもあるかもだけど)比較的簡単に感じた……
2024.10.14 00:05
tbさん(No.66) 
2個目はエラトステネスのふるいで、3個目は2の倍数を消すところまでふるいが終わってる状態からスタートしてるだけって感じだよね

どうでもいいけど、後者がアルゴリズムの改良みたいな言い方してるの引っかかったわ
2024.10.14 00:08
mcstさん(No.67) 
>No.62さん

d=2のときに、t=4をfalseにしてるので、
d=4のときにはL2は実行されないのだと思います。
2024.10.14 00:16
2度目ダメそうさん(No.68) 
自分の回答を書いておきます。

設問1 ア : N^2
設問2 イ : isPrime[d]がTrueと等しい, ウ : t + d
設問3 
エ : isPrime[d]がTrueと等しい
オ : t
カ : t + 2 × d
設問4 : 171, 11, 1
2024.10.14 01:25
タイタンさん(No.69) 
私の解答です
設問1
  N-1(誤答)
設問2
  イ:isPrime[d]がtrue(「と等しい」をつけ忘れた)
  ウ:t+d
設問3
  エ:isPrime[(d-1)÷2]がtrue(「と等しい」をつけ忘れた)
  オ:isPrime[(t-1)÷2]
  カ:t+2d(2×dって書かなかった)
設問4
  L1:171
  L2:15(誤答:d=4の場合を含めてしまった)
  L3:2

「と等しい」のつけ忘れと×の記載ミスで6点が痛い これがなければ全体も受かりそうなのにネ
2024.10.14 02:34
すなーさん(No.70) 
本番は文系問題ばかりでしたが、勉強だと思って解きました。L2=13、L3=2ですね。

L2=11と回答された方はd=3の時のt=12・18をd=2の時にある(=既にfalseになっていると判断してしまった)からif文の条件であることを失念して排除してしまった。
もしくはd=2でtが20→22に遷移する時と、d=3でtが18→21に遷移する時の回数を足し忘れたかのどちらかと思われます。
2024.10.14 03:10
ktoさん(No.71) 
>>No.59さんの解説で理解できました。以下が正しそうですね。
エ  isprime[(d-1)÷2]がtrueに等しい
オ  (t-1)÷2
2024.10.14 06:25
Atsush2965さん(No.72) 
>>67
うわぁぁぁif文見えてなかったぁぁぁ
ありがとうございます。数え間違いだけじゃなかったので逆に安心しました()
2024.10.14 07:34
トイレマンさん(No.73) 
isPrime[d]がtrueと等しいじゃなくisPrime[d]だけ書いたんだがいいかな。isPrime[d]ってブーリアンだからifの条件式はそれだけでええやんって思った。
2024.10.14 13:20
こむこむさん(No.74) 
設問2 イ : isPrime[d]がTrueと等しい
ってやつを、cが2から始まるから、ひっかけと思い込んで
、isPrime[d-1]がTrueと等しいと書いたけど、よく見たら最初に一つfalseが入ってる配列だから、間違ってたー!
他は全部あってるはずなのに。
2024.10.14 14:33
ボイジャーさん(No.75) 
いろいろ回答見てたんですが、これみなさん1問目O(N・N!)じゃないのどうしてですか?
2024.10.15 08:52
ななしさん(No.76) 
>>75
私なりの解釈としては、
2からはじまり、2の時は1回の比較、3の時は2回の比較,...,NのときはN-1回の繰り返しがあり、
それを1からNまでのN回行うので、
縦の長さをN-1、横の長さがNの直角三角形の面積が計算量にあたるところだと解釈しております。
ですので、計算量はO((N-1)×N/2) = O(N^2/2 - N/2) ≡ O(N^2)かなと思いました。
2024.10.15 10:38
AP3回目さん(No.77) 
プログラミングの問題って「〜は〜に等しい」のようにヒューマンリーズナブルに書いてあるわけなのですが、「d×2」を「2d」と書くと誤答になるのでしょうか?
あと、÷を/で書くのも誤答になりますでしょうか?
2024.10.15 13:03
受験番号書けたかなさん(No.78) 
>>77
乗除演算子は×÷と5ページに書いてあるので誤答です、部分点はあるかもしれませんが
R4春では掛け算は*、R5春では割り算は/だけど、今年度から擬似言語の仕様が基本情報のと統一されたようで…。
×を省略するのは…どうなんでしょうね?記述形式には省略できるともできないとも書かれてないですが、一般的にプログラミング言語では×は省略しません。
2024.10.15 14:32
AP3回目さん(No.79) 
>>78
ありがとうございます!投稿したあとになって5ページ目の内容に気づいて誤答なのかもって思っちゃいました

とはいえ演算子の指定している割には、<=を使わずに「dがN以下」とか、=でなく「isPrimeがtrueに等しい」のような書き方していて統一されていないのが納得いかずブツブツ….
2024.10.15 15:23
ぱんさん(No.80) 
TACの解答速報から来たけど、t+2dと記載していた事に気づいた。
プログラミング的には記載ミスとなるだろうけど、prime3のコメントアウト行に「trueであれば2k+1...」って記載見て、おそらく数学側の脳になっていたのだろう...とても後悔しています。
2024.10.15 17:03
ぱんさん(No.81) 
ふと思ったのだが、コード行を全てp5の演算子表に則るとするなら

while(dがN以下)と記載されている問題文も、while(d≦N)とすべきわけで。

解釈として合っている[2d]や、他の設問の[分数表現]でも〇が付くのではないか?
と思ってしまった自分もいる。
これは採点者のみぞ知るですね。
2024.10.15 17:08
こはさん(No.82) 
今更なことですが、私はカを「t + 2 * d」と書いてミスしました。

これはマジで手痛いケアレスミス。。。
2024.10.15 17:11
Keeeenさん(No.83) 
ちなみにですが、÷を/と書いても大丈夫ですかね?
令和5年の春の問題文には/の方が使われているので寧ろ/が安牌と思ってそのように記載しましたが、解答速報を見ていると÷が使われていて不安です…。
2024.10.16 07:36
こはさん(No.84) 
> ちなみにですが、÷を/と書いても大丈夫ですかね?

多分アウトです。

冊子の最初の注意書きに指示があります。

今回のプログラミングから、仕様が変わったようです。

私もカでやらかしました。(エオは見当違いなこと書いて、/も÷も使ってない。)
2024.10.16 08:47
ずんだ餅さん(No.85) 
isPrime[d]がtrue
とだけ書いたのですか、部分点もらえますかね?
2024.10.16 12:27
21km43さん(No.86) 
>> 85
確たることはIPAにしか分かりませんが、穴埋めである以上不正解であると思っていた方が良いかもしれません
2024.10.18 19:13
21km43さん(No.87) 
カ:t+d
L3:4
とするとプログラムとしては正しく動作しますが「いずれのループも奇数についてだけ実行されるようにする。」という指示に反しているので0点ですよね

くやしー
2024.10.18 19:19
返信投稿用フォーム
お名前
顔アイコン

本文(コミュニティガイドライン⇱を順守して適切な投稿を心がけましょう)
🔐投稿削除用のパスワード
投稿プレビュー
※SQL文は全角文字で記載してください。
※宣伝や迷惑行為を防止するため、当サイト、姉妹サイト、IPAサイト以外のURLを含む文章の投稿はできません。
投稿記事削除用フォーム
投稿No. パスワード 
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop