【最短最速】科目B公式問題|基本情報技術者試験(2023年新方式対応)

Поделиться
HTML-код
  • Опубликовано: 24 ноя 2024

Комментарии • 484

  • @itgakko
    @itgakko  5 месяцев назад

    ⚠学習前にご確認ください!
    ・誤りがあった場合に概要欄で訂正している場合があります。動画におかしな点があった場合、まずは概要欄のご確認をお願いします。
    ・動画で投影している教材は、本動画の概要欄からさいとうの公式LINEに登録頂くと無料でダウンロードできます!
     ※概要欄で訂正している内容が反映されたものをダウンロードできます。

  • @かまぼこ-j5j
    @かまぼこ-j5j Год назад +24

    先日科目B受けて無事合格点超えました!
    受験直前まで全く対策出来てませんでしたが、この動画の解説のおかげでアルゴリズムの理解が深まり、本番も確信を持って答えを選べました。ありがとうございます!

    • @itgakko
      @itgakko  Год назад +3

      合格おめでとうございます!
      自信を持って答えられたのも素晴らしいですね!

  • @Pyonsu131
    @Pyonsu131 Год назад +9

    この動画と、公式LINEに載せてる最新版の解説しか科目Bの対策はやってませんが無事8割弱とれて合格することが出来ました。
    本当にありがとうございます。

    • @itgakko
      @itgakko  Год назад +2

      合格おめでとうございます!!

  • @user-mamemame369
    @user-mamemame369 Год назад +34

    今日無事受かりました!ほぼこの動画のおかげといっても過言では無いです!本当にありがとうございました!これから応用情報に向けて頑張ります。

    • @itgakko
      @itgakko  Год назад +7

      合格おめでとうございます!
      次は応用情報ですか、頑張ってください!

  • @user-stfre
    @user-stfre 11 месяцев назад +7

    サンプルよりも本番の問題が難しく、手応えなかったのですが845点も取れました。多少時間かかっても実行結果を書いて解いた結果だと思っています。本当にありがとうございました。

    • @itgakko
      @itgakko  11 месяцев назад +1

      合格おめでとうございます!
      素晴らしいですね!

  • @user-oronaminc
    @user-oronaminc 8 месяцев назад +1

    すごい!
    大学の補習授業と並行しているのですが、口頭の説明だけだと分からないこともあり、図やマーカーのおかげでイメージがつきやすく、すごくわかりやすいです!
    この動画を無料で提供して下さり、ありがとうございます🙇‍♂️

    • @itgakko
      @itgakko  7 месяцев назад

      コメントありがとうございます!
      勉強頑張ってください!

  • @Seri87
    @Seri87 Год назад +13

    本日無事合格することができました。こちらの動画に本当に助けられました、20回くらい見たと思います笑
    主さんのように人に説明するつもりで解いて練習すると頭の整理ができておすすめです。今勉強している皆様が無事合格できますように。

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!
      わざわざご報告いただき嬉しいです!
      記載いただいている通り人に説明するレベルまでいければ完璧ですね!

    • @もらたで工藤
      @もらたで工藤 Год назад +1

      2.2.20回!?

  • @mochi-moti
    @mochi-moti Год назад +14

    ほぼ一夜漬けでの受験でしたが、この動画だけで午後試験十分な点を取ることができました。問題ごとの手の付け方から詳しい解説まで参考になりました。ありがとうございます。

    • @itgakko
      @itgakko  Год назад +4

      合格点おめでとうございます!
      嬉しいコメントもありがとうございます!

  • @ねこおじさん-h6r
    @ねこおじさん-h6r 9 месяцев назад +11

    34:56 急に説明飛んで分からなかったけど、tree[1][1]は「treeの1番目の要素の1つ目」ってことなのね・・・。だからorder(2)となるわけか、これは飛ばされたら泣きそう・・・!

    • @itgakko
      @itgakko  9 месяцев назад +2

      ご意見ありがとうございます!
      泣かせてすみません。
      本問題のような2次元配列は以下で詳しく解説していますので、
      よろしければこちらもご覧ください。
      【初心者向け】基本情報技術者試験 科目B|アルゴリズムをゼロから理解する
      ruclips.net/video/waAwVXa9y2o/видео.html(問6.配列(応用))

    • @ねこおじさん-h6r
      @ねこおじさん-h6r 9 месяцев назад

      @@itgakko あざっす!

    • @itgakko
      @itgakko  9 месяцев назад

      勉強頑張って下さい!

  • @ya7470
    @ya7470 Год назад +6

    いつもお世話になっております。
    情報系出身ではない私は御チャンネルの動画を見て、アルゴリズムへの苦手意識を解消させ、理解も深めました。おかげで本日基本情報技術者試験に合格しました。
    心から感謝しております。

    • @itgakko
      @itgakko  Год назад +2

      合格おめでとうございます!
      嬉しい報告ありがとうございます!

  • @taikodaisukikurabu
    @taikodaisukikurabu Год назад +4

    サンプル問題は初見で20問中17問正解できました。
    科目Bは「出るとこだけ!」シリーズの参考書を勉強していたので、その成果を発揮できたと思っています。
    間違えた問題は、この動画の解説を見て理解することができました!
    解説が分かりやすくて助かりました。
    来週が試験本番なので、合格の報告ができるように頑張ります!(過去問やサンプル問題含めて、科目A、Bともに及第点はありますが、試験本番は何があるか分からないので、気を引き締めて臨みたいと思います)

    • @itgakko
      @itgakko  Год назад +1

      いいですね!
      来週の試験頑張って下さい!

  • @エノキ-e3u
    @エノキ-e3u Год назад +2

    一夜漬けでFE試験に臨みましたが、科目Bはこの動画だけでなんとかなりました!ありがとうございます!

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!!

  • @te6817
    @te6817 Год назад +5

    受かりました!
    B試験全く手付かずで焦っていたところこの動画を見つけ救われました…
    感謝です。

    • @itgakko
      @itgakko  Год назад +1

      合格おめでとうございます!
      嬉しい報告ありがとうございます!

  • @yfyouho8120
    @yfyouho8120 6 месяцев назад +1

    お陰様で前日670点を取りました。
    ありがとうございます!!
    ✳︎外国人のため、日本語文章を読んだ時、スピードは遅いから、内容は長い問題を二つスキップしました。。

    • @itgakko
      @itgakko  6 месяцев назад

      670点素晴らしいですね!
      おめでとうございます!

  • @みかづき-d5h
    @みかづき-d5h Год назад +5

    基本情報合格しました!!
    この動画のおかげで理解深めることでき、本番で活かすことができました。本当にありがとうございます。

    • @itgakko
      @itgakko  Год назад +1

      合格おめでとうございます!
      嬉しい報告ありがとうございます!

  • @カツラ侍-v7z
    @カツラ侍-v7z Год назад +1

    この動画の解説を聞いて理解を深めたことで、合格点を取ることができました!
    動画を作成していただき、本当にありがとうございます!

    • @itgakko
      @itgakko  Год назад +1

      合格おめでとうございます!

  • @ヒロ-n5g2u
    @ヒロ-n5g2u Год назад +7

    基本情報処理技術者を合格しました!解説が分かりやすくとても助かりました。本当にありがとうございました!

    • @itgakko
      @itgakko  Год назад +2

      合格おめでとうございます!
      わざわざ報告頂いて嬉しいです!

  • @KM-wd3kz
    @KM-wd3kz 6 месяцев назад +2

    ついに、科目Bが600点越えました!
    連続不合格の中、本動画にたどりつきました。
    プログラミング未経験でしたが、繰り返し関連動画を参照することで理解が深まりました。
    また、質問にも丁寧に回答頂き感謝しかありません
    。有名どころの参考書を繰り返すより動画を何度もみることが合格につながったと思います。ありがとうございました。今後の配信も楽しみにしております。

    • @itgakko
      @itgakko  6 месяцев назад

      科目B合格点到達おめでとうございます!!
      未経験からの合格点到達素晴らしいですね!
      またThanksありがとうございます!
      より良いチャンネル運営に使用させていただきます!

  • @yu-ki1948
    @yu-ki1948 Год назад +1

    先日、基本情報技術者試験受けて合格しました!理解の難しかった科目Bですが動画の解説のおかげです。ありがとうございました!

    • @itgakko
      @itgakko  Год назад +1

      合格おめでとうございます!!

  • @夢は世界征服
    @夢は世界征服 Год назад +2

    試験日が近づいてきました。毎日この動画を見ます。

    • @itgakko
      @itgakko  Год назад +2

      試験頑張ってください!

  • @まる-u3c8m
    @まる-u3c8m 9 месяцев назад

    こちらの動画のおかげであやふやだった問題ごとのアプローチがうまくできそうです!
    ありがとうございます!

    • @itgakko
      @itgakko  9 месяцев назад

      コメントありがとうございます!
      勉強頑張って下さい!

  • @たまごプリンくん
    @たまごプリンくん Год назад +2

    本日基本情報を受けて合格できました!
    動画とても参考になりました!
    ありがとうございます!

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!!

  • @exe8514
    @exe8514 Год назад +2

    合格の助けになりました。
    ありがとうございます。

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!!

  • @レプリケーター-k5z
    @レプリケーター-k5z Год назад +3

    先生!サンプル問題を人に解説出来るレベルまで仕上げることが出来たのに落ちてしまいました。🥲
    やはり試験なので回によっての難易度ってあるものですかね。。。
    勉強したことのない分野からの出題が多くとても難しかったです。

    • @itgakko
      @itgakko  Год назад +2

      質問ありがとうございます!
      試験ごとに出題される問題はランダムなので、感じる難易度にある程度のばらつきはあります。
      サンプル問題は完璧だと感じるのであれば、その他いろいろな問題を解いてもっと実力をつけると良いですね!

  • @ln706fuyuuuu
    @ln706fuyuuuu 11 месяцев назад

    試験が今月に迫っていますが、とても参考にさせてもらっています。一緒に解いていくうちに自信もつきます!本当にありがとうございます!

    • @itgakko
      @itgakko  11 месяцев назад +1

      コメントありがとうございます!
      試験頑張って下さい!

  • @jm-ef7jc
    @jm-ef7jc Год назад +3

    科目Bに苦手意識を持っていたのですが
    さいとうさんの動画で各パターンの問題の考え方、
    解き方のコツを掴むことができるようになり
    無事に試験合格しました☺️🎉
    わかりやすい解説ありがとうございます!

    • @itgakko
      @itgakko  Год назад +1

      合格おめでとうございます!!

  • @ur1ca4444
    @ur1ca4444 8 месяцев назад +2

    今日試験を受けてきました!
    受けながら絶対落ちたと諦めてたんですギリギリで無事に合格できました😢
    問1すら分からなかった私が合格できたのは間違いなくさいとうさんのおかげです😭貴重な動画本当にありがとうございました!

    • @itgakko
      @itgakko  8 месяцев назад +1

      合格おめでとうございます!

  • @ancho-vi562
    @ancho-vi562 3 месяца назад

    さいとうさんの動画はとても分かりやすので是非2024年の公開問題の解説動画も上げて頂きたいです!!待ってます!!

    • @itgakko
      @itgakko  3 месяца назад

      リクエストありがとうございます!

  • @user-tu1bm4dv6v
    @user-tu1bm4dv6v 9 месяцев назад

    何度かチャレンジして、やっと合格できました!
    この動画のおかげです。ありがとうございます!
    今後も勉強は続けていきます!

    • @itgakko
      @itgakko  9 месяцев назад +1

      合格おめでとうございます!!

  • @TheOne-jq4iv
    @TheOne-jq4iv Год назад +2

    購入した科目B対策の教科書では、プログラムの実行結果を表に書くときに、行ごとに結果を書いていました。
    この動画では、行ごとの結果を書くのではなく、for文のiの値や再帰関数の引数ごとに結果を書く方法も紹介されていて、2つ目の武器を手に入れることができたのがありがたかったです。

    • @itgakko
      @itgakko  Год назад +1

      コメントありがとうございます!
      勉強頑張ってください!

  • @gs-qb3ox
    @gs-qb3ox 10 месяцев назад

    お世話になります。
    こちらの動画で、無事合格することができました。
    5年前に午後試験で落ちて、苦手意識が強かったですが、動画の通り一つ一つ手を動かし回答できました。
    感謝の気持ちです。ありがとうございました。

    • @itgakko
      @itgakko  10 месяцев назад

      合格おめでとうございます!
      苦手を克服して素晴らしいですね!

  • @qwe60215
    @qwe60215 10 месяцев назад +1

    ビデオのおかけで1週間対策で科目Bは700点を取れました!ありがとうございました!

    • @itgakko
      @itgakko  10 месяцев назад

      合格おめでとうございます!!

  • @mihapi
    @mihapi Год назад +3

    アルゴリズムちんぷんかんぷんだった私ですがこの動画で勉強→再度自分のみで解くの短期間勉強で無事に合格できました!860/1000なので満足の結果です!
    本当に感謝しかないです😭ありがとうございます!

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!
      高得点ですね!わざわざ報告ありがとうございます!

    • @もらたで工藤
      @もらたで工藤 Год назад +1

      この動画見る前は全くと言っていいほど解き方とか分からなかった感じですか?自分明日試験なんでこの動画みて勉強しようと思ってます!

    • @mihapi
      @mihapi Год назад +1

      @@もらたで工藤 そうですね、ほぼほぼ分かってない状態でした。明日頑張ってください🫡

    • @もらたで工藤
      @もらたで工藤 Год назад +1

      @@mihapi ありがとうございます!(´▽`)

  • @ybuta5nandemo
    @ybuta5nandemo Год назад +2

    お陰様で合格できました✨
    ありがとうございました😊

    • @itgakko
      @itgakko  Год назад +1

      合格おめでとうございます!
      嬉しい報告ありがとうございます!

  •  8 месяцев назад

    解説が流れる様に早くて、理解しながら付いて行くのは大変でした、、

    • @itgakko
      @itgakko  8 месяцев назад

      コメントありがとうございます!

  • @PP-cq4zz
    @PP-cq4zz Год назад +2

    解説ありがとうございます。
    基本的なアルゴリズムはできるのですが、少し複雑なアルゴリズムになると苦手意識が出てしまいどうしても勉強が捗れません。
    出来れば四月中に取得したいと考えておりますが、こんな私にアルゴリズム(試験B)の勉強法と応援ください。

    • @itgakko
      @itgakko  Год назад +2

      ご質問ありがとうございます。
      勉強法についてですが、アルゴリズムはとにかく問題の量をこなすことが大事です。
      また問題の解説を見て復習する際に、ただ単に「理解した」ではなく
      「同類の問題を次に解くとしたら解ける」というレベルまで復習することが重要です。
      3月下旬にIPA公式のサンプル問題の類似問題の解説動画を追加でアップ予定ですので、
      受験までに間に合えばそちらもご利用ください。
      基本情報技術者試験の勉強頑張ってください!

  • @reshne
    @reshne Год назад +2

    あと2週間も無いくらいで科目B試験あります😭
    毎回20問中5問しか正解しません💦残りわずか動画活用させていただきます!!

    • @itgakko
      @itgakko  Год назад

      勉強頑張って下さい!

  • @a-pampered-pooch
    @a-pampered-pooch Год назад +15

    ずっと科目Bが不安でしたが、645点ですがギリギリで合格することができました!
    本当にこの動画のおかげで、再帰を始めこれまで理解が難しかったアルゴリズムの問題がしっかりと解けました!!
    ありがとうございました!!!

    • @itgakko
      @itgakko  Год назад +2

      合格おめでとうございます!
      報告嬉しいです!ありがとうございます!

  • @itgakko
    @itgakko  Год назад +5

    IPA公式の問題サンプルはこちらです!科目Aの問題もあるのでチャレンジしてみてくださいね🤗
    www.jitec.ipa.go.jp/1_00topic/topic_20221226.html

  • @桧山尚子
    @桧山尚子 Год назад +2

    基本情報合格しました!さいとうさんのおかげでトレースの仕方が分かり、アルゴリズムを理解していくことができました。ありがとうございました。

    • @itgakko
      @itgakko  Год назад +2

      合格おめでとうございます!!

  • @user-xw8kk4fq2b
    @user-xw8kk4fq2b 10 месяцев назад +1

    Thanks機能を解除していただきありがとうございます。お陰様で無事に合格しました。Thanksさせていただきます🎉

    • @itgakko
      @itgakko  10 месяцев назад +1

      改めて合格おめでとうございます!
      Super Thanksありがとうございます!
      ありがたくいただきます!

  • @doike2236
    @doike2236 Год назад +4

    アルゴリズムで🤔←状態だったので、主さんの解説動画で理解が深まりました!新方式頑張っていきます!

    • @itgakko
      @itgakko  Год назад

      ありがとうございます!!
      アルゴリズムの勉強頑張ってください🤗

  • @user-xw8kk4fq2b
    @user-xw8kk4fq2b 11 месяцев назад +1

    お陰様で無事に合格しました。ありがとうございます🙏
    Thanksでお礼を申し上げたいと思います。
    さいとう先生のThanks機能制限がされているようですが、thanksできないです😢

    • @itgakko
      @itgakko  11 месяцев назад +1

      合格おめでとうございます!!
      Thanks機能というものがあるのですね、知りませんでした!
      機能はオンにしてみましたが、わざわざもう一度Thanksはしなくても大丈夫です!
      合格のご報告頂けたのが嬉しいです。

    • @user-xw8kk4fq2b
      @user-xw8kk4fq2b 10 месяцев назад

      @@itgakko 返事が遅れて申し訳ないです。THANKS機能制限を解除していただきありがとうございます。先程Thanksを申し上げました😌本当にありがとうございました😊

    • @itgakko
      @itgakko  10 месяцев назад

      別のThanksコメント確認させていただきました!ありがとうございます!

  • @たつ-e8y
    @たつ-e8y 11 месяцев назад +2

    6→❌ 実際に書いてみる
    8→△ 実際に書いたらできる
    9→❌ 再帰関数の動き方が分からなかった
    10→❌

    • @たつ-e8y
      @たつ-e8y 11 месяцев назад +1

      13→△ 実際に書いたらできる

    • @たつ-e8y
      @たつ-e8y 11 месяцев назад +1

      14→△ 実際に書いたらできる
      15→❌ 考え方がわからなかった
      16→❌ シンプルに難しい

    • @たつ-e8y
      @たつ-e8y 11 месяцев назад +1

      17〜20 セキュリティの知識をつける

  • @第1空挺団-f1q
    @第1空挺団-f1q Год назад +4

    神様ですか!?
    紙での解説も欲しい・・
    どこかに載ってたりしますか?

    • @itgakko
      @itgakko  Год назад +1

      ありがとうございます!
      投影している資料のPDF版でよろしければ、動画概要欄から公式LINEに登録して頂くとダウンロードできます🤗

  • @あああ-o8s2n
    @あああ-o8s2n Год назад +1

    この動画のおかげで無事合格することができました。
    お世話になりました。

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!!

  • @parahara9686
    @parahara9686 Год назад +3

    ありがとうございます。

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!
      勉強頑張ってください!

  • @Unko2004
    @Unko2004 Год назад +1

    ありがたいっす😊

    • @itgakko
      @itgakko  Год назад +1

      コメントありがとうございます!

  • @tatibanadouzann
    @tatibanadouzann Год назад +1

    ほぼこの動画でしか科目Bの対策しませんでしたが、なんとか合格できました。的確で分かりやすい説明を80分の動画にまとめてください大変ありがとうございました。

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!!

  • @yataka-kk4nj
    @yataka-kk4nj 9 месяцев назад

    さいとうさんのおかげで合格することができました!
    お世話になりました!

    • @itgakko
      @itgakko  9 месяцев назад

      合格おめでとうございます!

  • @akira_in_the_morning
    @akira_in_the_morning 4 месяца назад

    わかりやす!

    • @itgakko
      @itgakko  4 месяца назад

      コメントありがとうございます!
      勉強頑張ってください!

    • @akira_in_the_morning
      @akira_in_the_morning 4 месяца назад

      @@itgakko 合格しました!ありがとうございます。

    • @itgakko
      @itgakko  4 месяца назад

      @akira_in_the_morning 合格おめでとうございます!

  • @aicohoriguchi9900
    @aicohoriguchi9900 9 месяцев назад

    先日基本情報技術者試験を受け、3回目のチャレンジで合格点クリア出来ました。
    この動画を何度も見て解いてを繰り返したお陰です。本当にありがとうございました。
    次は応用情報技術者試験にチャレンジします。これから基本情報技術者試験を受ける方にもオススメさせていただきます。

    • @itgakko
      @itgakko  9 месяцев назад

      合格おめでとうございます!!

  • @井上-c7j
    @井上-c7j 10 месяцев назад +1

    自信があったのに500点で落ちてしまいました。
    問題の難易度としても、11問は理解できていると思いながら解きましたが時間が足りなくて見直しを行いませんでした。
    自分としては次の学習として何をするべきなのかわかりません。

    • @itgakko
      @itgakko  10 месяцев назад +1

      まずは試験お疲れ様でした!
      仮に11問全て正解していたとしても不合格の可能性が高いので、
      もっと問題演習をして実力アップ&解くスピードアップしていくのが良いですね!

  • @akiper
    @akiper Год назад +3

    問4の解説で num1=24 num2=60 という具体的な数値で考えました。
    while
    y←y-x
    36←60-24
    y←y-x
    12←36-24
    X=24 Y=12
    x=x-y
    12=24-12
    X=12 Y=12
    x>y 偽
    endwhile
    終了

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!
      記載頂いた具体例 num1=24、num2=60、プログラムの流れ含めて合ってます。

  • @ybuta5nandemo
    @ybuta5nandemo Год назад +14

    問3のoutの要素数について質問です。
    "要素数"という内容から"outの配列の長さ"だと解釈したのですが、ここはどのように考えればoutの中身の3を代入するという思考に至るのでしょうか?

    • @itgakko
      @itgakko  Год назад +10

      質問ありがとうございます。
      動画内8:48あたりから説明している、
      i=2の場合の、tail ← out[outの要素数]、
      ここでtailに代入される値が
      なぜ3なのかという質問だと思います。
      記載頂いている通り、「outの要素数」は「out配列の長さ」となります。
      i=2の繰り返し処理開始時点で、「out配列の長さ」は 1 ですので、
      i=2の場合の、tail ← out[outの要素数]、という記載は、
      tail ← out[1] になります。
      この時点での 配列out = {3}、となっていますので、
      tail に 配列out の 1番目の要素である 3 が代入されます。
      不明点ありましたらご連絡いただければと思います。

    • @ybuta5nandemo
      @ybuta5nandemo Год назад

      @@itgakko ありがとうございます。ご説明していただいた内容で理解できました。また何かありましたら質問させていただきたいと思います

    • @itgakko
      @itgakko  Год назад

      よかったです!

    • @itgakko
      @itgakko  Год назад

      @hirohi9370
      質問ありがとうございます!
      まず、この問題の解答は ウ ではなく カ です。
      その上で頂いた
      「問3のtailの要素数というのは、要素の個数ではないのでしょうか?」
      という質問についてですが、
      すみません、この質問の意図を読み取れませんでした。
      おそらく頂いている質問はプログラム上の
      tail ← out[outの要素数]
      こちらの部分を指しておられると思います。
      また、さらに記載いただいている以下の内容ですが、
      in={3}→要素数1
      In={3,2,1}→要素数3
      プログラム上では inの要素数を使用している箇所は
      for文の繰り返し回数を指定している箇所だけであり、
      inは上記のように格納されている値は変化しないため、
      何を指されているのか読み取ることができませんでした。
      お手数ですが、不明点をより詳細に教えていただければと思います。

    • @bzhei48_dh3
      @bzhei48_dh3 Год назад +3

      これtail←outの要素数=1って考えちゃってるってことですね。実際はtail←out[outの要素数=1]となってout[1]で、現状out{3}だから3ってことです。

  • @ワタナベヨウイチ-s1t
    @ワタナベヨウイチ-s1t Год назад +2

    今回、午前免除等でなく午前と午後のフルタイムの受験です。午前は余裕で基準をクリアできましたけど、やはり、午後が難しい。前回はあと一歩のところで、不合格。今回は話しにならない点数。皆さんが言うように、午後対策に特化した講義です。しかしながら、人により、問題との相性がピッタリはまらないと、初見のオンパレードで地獄を見ます。見たことがあると、感じられるならば、感触どうりに得点できるだろうけど、運がなかったのかな。

    • @itgakko
      @itgakko  Год назад

      コメントがありがとうございます!
      見たことがあると感じられる問題が出てくるのは期待できません。見たことがある問題が出てきたらラッキーくらいに考えた方が良いです。

  • @平山聡-s3v
    @平山聡-s3v 11 месяцев назад

    解説ありがとうございます。問8の二分木の問題で、処理の手順について質問があります。
    if (tree[n]の要素数 が 2 と等しい)
     order(tree[n][1])  ・・・処理①
     n を出力     ・・・処理②
     order(tree[n][2])  ・・・処理③
    とありますが、IFの条件を満たしたら処理①を行い、次に処理②に行かないでまたIFの条件を満たすか確認して処理①にいくのがわかりませんでした。

    • @itgakko
      @itgakko  11 месяцев назад +3

      質問ありがとうございます!
      order(1)と呼び出された場合の処理順について以下に説明しますね。
      -----
      ◯order(整数型: n)
      1. if (tree[n]の要素数 が 2 と等しい)
      2.  order(tree[n][1])
      3.  n を出力
      4.  order(tree[n][2])
      5. elseif (tree[n]の要素数 が 1 と等しい)
      6.  order(tree[n][1])
      7.  n を出力
      8. else
      9.  n を出力
      10. endif
      -----
      まずorder(1)と呼び出されると、
      1行目でif文の条件式が実行されます。
      tree[1] = {2, 3} で要素数が2なのでif文内の処理が実行されます。
      次に2行目の「order(tree[n][1])」が実行されます。
      これは関数orderの呼び出しです。
      関数内で関数が呼び出された場合、実行中の関数(ここではorder(1)として呼び出された関数)は中断されて、
      新たに呼び出した関数が実行されます。
      tree[1][1] = 2 なので、order(2)が新たに実行されます。
      中断したorder(1)はorder(2)の処理が終了したら再開されます。
      order(2)が呼び出されるとまた先頭から実行されます。
      1行目のif文の条件式が実行され、
      tree[2] = {4, 5} で要素数が2なのでif文内の処理が実行されます。
      このような処理順で続いていきます。
      そのためおっしゃっている「IFの条件を満たしたら処理①を行い、次に処理②に行かないでまたIFの条件を満たすか確認して処理①にいく」順番で処理されます。
      以上、ご不明点ございましたらご連絡いただければと思います。

  • @かまささ-o7r
    @かまささ-o7r Год назад +6

    解説とても助かっています。ありがとうございます!
    問16が難しいです…。
    素朴な疑問なのですが、1桁が1ビットとどこかで習って、6桁だと6bitだと思っていたのですが、64bitになるのがよく分からなくなってきました…(2^6で64になるのは理解できました)

    • @itgakko
      @itgakko  Год назад +19

      質問ありがとうございます。回答します。
      まず、記載頂いた「1桁が1ビット」はあっています。
      細かいのですが、より正確に言うと「2進数の1桁が1ビット」になります。
      コンピュータ上の処理の話で、扱われるデータは 0 or 1 なので、
      "2進数の"という枕言葉が必要です。
      上記を踏まえた上で、記載頂いている
       ① 2進数の6桁は6ビット
       ② 2進数の6桁は64ビット
      こちらの違いについて説明しますね。
      結論から言うと、どちらも間違いではありません。
      ただし、どちらも日本語が一部省略されていて、
       ① 2進数の6桁「のデータサイズ」は6ビット
       ② 2進数の6桁「で表現できる値の全パターン数」は64ビット
      と補足してあげるとどちらも適切で正しい記載になります。
      まず①については、2進数の6桁なので、
      1 or 0 が入る箱が6つあるイメージです。
      例えば2進数「101010」であれば、以下のようになり、
      コンピュータ上でのデータのサイズは 6ビット になります。
       |1|0|1|0|1|0|
      次に②については、具体的な2進数の値のデータサイズを表しているのではなく、
      「6つの箱があれば、表現できる2進数の値は全部で 64(2の6乗)パターンある」
      と言う意味になります。
      ご質問頂いた内容に対する回答としては以上となるのですが、
      問16で頂いた質問ということで、なぜ64で割る必要があるのか、
      という部分に疑問があるかもしれませんので、
      なぜ64で割るのかを下記に補足で記載しておきます。
      何かご不明点などあればご連絡ください。
      ーーーーーーーーーーーーーーーーーー
      なぜ64で割った余りが後ろの64ビットになるのか、
      まず、2進数で話をする前に、10進数の場合で考えてみましょう。
      例として、以下の「xxxxxx」の部分に
      10進数「333,222,222,111,111」を右詰めで格納する時の処理を考えます。
       対象:33xxxxxx 22xxxxxx 11xxxxxx
      まず結果だけ見ると、
      33000333 22222222 11111111 になりますよね。
      これをプログラムで表現するために
      計算上どうやっているかを考えます。以下の通りです。
      ①11xxxxxx の部分を穴埋め
       「333,222,222,111,111」の"右側6桁を取得"
        この右側6桁を取得するという計算を具体的な計算式で書くと
       「333,222,222,111,111」を1,000,000 で割った余り になります
        ※333,222,222,111,111 ÷ 1,000,000 = 333,222,222、余り111,111
        なぜこのようになるかというと、1,000,000で割るというのは、
        小数点を6桁右にずらすと同義で、小数点以下にずれた6桁が余りになるからです
        また、1,000,000 で割った商、「333,222,222」
        つまり小数点を6桁右にずらした結果の小数点より左側の値を
        次の②で使用します
      ②22xxxxxx の部分を穴埋め
       「333,222,222」の"右側6桁を取得"
        つまり「333,222,222」を1,000,000 で割った余り を取得
        また、1,000,000 で割った商、「333」
        つまり小数点を6桁右にずらした結果の小数点より左側の値を次の③で使用します
      ③33xxxxxx の部分を穴埋め
       「333」の"右側6桁を取得"
        つまり「333」を1,000,000 で割った余り を取得
      問16の内容を全ての値が10進数として扱うと
      上記のような計算を行うことで結果を得ることができます
      ここでポイントなのは、10進数でいう6桁分の値を抽出するには、
       1,000,000で割る = 小数点を6桁右にずらす
       (10の6乗で割る)
      という処理が必要だということです
      問16の内容に戻って、2進数で考えるとき
      「小数点を6桁右にずらす」には何をすればよいでしょうか。
      これが2進数だと「64で割る」という計算になります。
      もっとポイントを押さえた形で書くと、「2の6乗で割る」ということになります。
      2進数と10進数の違いは1桁あたりで表現できる数字の数になります。
       ・2進数の1桁で表現できる数字の数は0と1の2パターン、
       ・10進数の場合は0,1,2,3,4,5,6,7,8,9の10パターン、
      その為「小数点をn桁右側にずらす」ためには、
      それぞれ上記のパターン数のn乗で割った余りを求める必要があります。
       ・2進数の場合:2のn乗で割る
       ・10進数の場合:10のn乗で割る
      ーーーーーーーーーーーーーーーーーー

    • @かまささ-o7r
      @かまささ-o7r Год назад +1

      ご丁寧にありがとうございます!64で割る理由がピンときていなかったのですが、10進数で例えてくたさったらとても分かりやすかったです!今後も動画を活用させていただきます…!

    • @itgakko
      @itgakko  Год назад +1

      @@かまささ-o7r よかったです!
      基本情報技術者試験の勉強頑張ってください!

  • @Rin-we2wu
    @Rin-we2wu 10 месяцев назад +1

    30日に受けるのですが、サンプル問題の正答数は16/20でした。
    公開問題を見た感じ、サンプル問題よりも全然難易度が高い問題が予想されますが、どうなんだろ笑

    • @itgakko
      @itgakko  10 месяцев назад +2

      試験本番ではランダムに出題されるので確実な内容は分かりませんが、
      サンプル問題よりも難易度が高い問題が出たというお話もよく聞きますので、
      レベルの高い問題も練習した方が良いと思います!

  • @林諄-z9x
    @林諄-z9x Год назад +3

    コメント失礼します
    この20問の対策のみでは、本試験に対応するのにはさすがに不十分ですよね??

    • @itgakko
      @itgakko  Год назад +2

      質問ありがとうございます!
      十分かどうかは人によって変わるのでなんとも言えませんが、
      この20問がすらすら解けないのであれば、
      その他の問題も解いて練習するのがいいと思います!

  • @Lizm0414
    @Lizm0414 Год назад +2

    先生!何とか受かりました!✨
    科目A 725点、B 610点…ギリッギリでした😂
    どちらも見たことない問題のオンパレードで半分以上がそんなのだったんでAからすでに心が折れそうでした😢でも受かって良かった🎶先生の対策のおかげです!ありがとうございました!!

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!!

    • @Lizm0414
      @Lizm0414 Год назад

      過去問道場とかの感覚や、先生の対策やった感覚ではどっちも800点は出るだろうと思ってて『合格は当たり前として、いかに高得点で受かろうか』って調子乗ってたら難しすぎて一気に現実を突きつけられました😂
      前回合格率高かったからきっとIPAが難しくしたんだー(´;ω;`)
      では次のIT資格の勉強に移ります!
      後日、今回の試験の問題が発表されて、先生が解法動画アップしてくださったら確認しに来ます(笑)

    • @itgakko
      @itgakko  Год назад

      次の資格の勉強頑張って下さい!
      試験の問題は毎回ランダムなこともあり、今回受験された問題が公開される可能性は薄いですね。

    • @Lizm0414
      @Lizm0414 Год назад

      @@itgakko あらー、そうなんですねー(´・ω・`)もし応用情報受けるときには、いつか先生が対策してくれるかも知れませんので、またお世話になるかも知れません😏(仮定の仮定の仮定w)

  • @chino_dutch5119
    @chino_dutch5119 Год назад +3

    すみません再度質問失礼します。
    問16に関してなのですがcpというのはこの場合何を指しているのでしょうか?数値としては無いのでしょうか?
    またこの場合の具体的な結果の数値はどのようになりますでしょうか?初学者で不明点多くて申し訳ありません。よろしくお願いします。

    • @chino_dutch5119
      @chino_dutch5119 Год назад

      また本文中では2進数のビットパターンで記載されていて、プログラム上では10進数での記載がされているためプログラム上の値を2進数に変換してしてしまったのですが、この場合は10進数のまま進めていくのでしょうか?
      加えてこの配列に格納されている3つの値はそれぞれ別物で考えるのか一つのものとして考えるのかどちらでしょうか?
      何度も申し訳ありません。答えていただければ幸いです。よろしくお願いします。

    • @itgakko
      @itgakko  Год назад +3

      質問ありがとうございます!いかにそれぞれ回答しますね。
      ・cpというのはこの場合何を指しているのでしょうか?数値としては無いのでしょうか?
       →変数cpはプログラム上以下2つの値を格納しています。
        cpに対して割り算した結果をさらにcpに格納しているので、
        何か1つのものを指してはおらず、役割が変わっていっているイメージです。
         ・引数で渡された Unicode の符号位置
         ・引数で渡された Unicode の符号位置について、
          ビットパターン(配列utf8bytesに格納されている値)で割った商
      ・この場合の具体的な結果の数値はどのようになりますでしょうか?
       →問題の具体例にある”あ”の符号位置 3042(16進数表記) が
        本プログラムの引数に渡された場合を例に説明しますね。
        以下プログラムの動きです。「//_斜体_」で具体値など補足しています。
        最終的にプログラムから返される値(10進数表記)が{227, 129, 130}となります。
        これを2進数表記に直すと{11100011, 10000001, 10000010}となり、
        問題文に記載してある"あ"のutf-8の記号に一致します。
      --------------------
      整数型の配列: utf8bytes ← {224, 128, 128}
      整数型: cp ← codePoint _// cp = 12354(16進数表記3042 を 10進数表記に直した形)_
      整数型: i
      for (i を utf8bytes の要素数 から 1 まで 1ずつ減らす) _// i=3 から i=1 の3回繰り返す_
       ・繰り返し1回目(i=3)
         utf8bytes[i] ← utf8bytes[i] + (cp ÷ 64 の余り)
          _// 12354 ÷ 64 の余り = 2 なので、_
          _// utf8bytes[3] = 128 + 2 = 130 となる_
         cp ← cp ÷ 64 の商
          _// cp ÷ 64 の商 = 193 なので、_
          _// cp = 193 となり、次の繰り返しへ_
       ・繰り返し2回目(i=2)
         utf8bytes[i] ← utf8bytes[i] + (cp ÷ 64 の余り)
          _// 193 ÷ 64 の余り = 1 なので、_
          _// utf8bytes[2] = 128 + 1 = 129 となる_
         cp ← cp ÷ 64 の商
          _// cp ÷ 64 の商 = 3 なので、_
          _// cp = 3 となり、次の繰り返しへ_
       ・繰り返し3回目(i=1)
         utf8bytes[i] ← utf8bytes[i] + (cp ÷ 64 の余り)
          _// 3 ÷ 64 の余り = 3 なので、_
          _// utf8bytes[1] = 224 + 3 = 227 となる_
         cp ← cp ÷ 64 の商
          _// cp ÷ 64 の商 = 0 なので、_
          _// cp = 0 となり、繰り返し終了_
      endfor
      return utf8bytes _// utf8bytes = {227, 129, 130}_
      --------------------
      ・本文中では2進数のビットパターンで記載されていて、
       プログラム上では10進数での記載がされているため
       プログラム上の値を2進数に変換してしてしまったのですが
       この場合は10進数のまま進めていくのでしょうか
       →問題を解く上では 2進数 or 16進数 どちらで考えてもOKです。
      ・加えてこの配列に格納されている3つの値は
       それぞれ別物で考えるのか一つのものとして考えるのかどちらでしょうか?
      →すみません、こちらの質問の意図を読み取ることができませんでした。
        具体的に考える上で困った理由、箇所などを教えていただけないでしょうか。

  • @bzhei48_dh3
    @bzhei48_dh3 Год назад

    この動画のおかげで今日合格出来ました。ありがとうございました。

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!

  • @MrNariagari
    @MrNariagari Год назад +3

    悔しい…、B試験525点でした…。
    また受けます。次は絶対…。

    • @itgakko
      @itgakko  Год назад

      試験お疲れ様でした!
      対策して次合格目指しましょう!

  • @田村文太
    @田村文太 Год назад +1

    問12は文章とプログラミングを照らし合わせると、文章に答えがそのまま書いてありますね😂
    見掛け倒しの問題だ

    • @itgakko
      @itgakko  Год назад

      そうです!素晴らしいですね!
      そこに気づければ早く解けると思います!

  • @user-bn1ew4ge7i
    @user-bn1ew4ge7i Месяц назад

    本日受験してA705,B680でした。合格見込みです。
    ありがとうございました!

    • @itgakko
      @itgakko  25 дней назад

      合格ライン到達おめでとうございます!!

  • @一志-n9x
    @一志-n9x Год назад +2

    考え方の解説ありがたすぎる!サンプルと参考書の少量の問題しかやっていなくて不安なのですが、他にどのような勉強をしておくべきでしょうか?学校で午前免除を受け合格済みです。午後だけのアドバイスをお願いします!!!

    • @itgakko
      @itgakko  Год назад +4

      ご質問ありがとうございます。
      午後問題、とにかく問題の量をこなすことが大事です。
      既にサンプル問題を解いている状態なら、
      他の問題にチャレンジするのが望ましいです。
      また問題の解説を見て復習する際に、ただ単に「理解した」ではなく
      「同類の問題を次に解くとしたら解ける」というレベルまで復習することが重要です。
      3月下旬にはなってしまいますが、
      IPA公式のサンプル問題の類似問題の解説動画を追加でアップ予定ですので、
      受験までに間に合えばそちらもご利用ください。
      基本情報技術者の勉強頑張ってください!

  • @user-tu1bm4dv6v
    @user-tu1bm4dv6v Год назад +4

    ためになる動画をありがとうございます。
    問3について、質問させてください。
    9:04 辺りのoutの要素数が配列の末尾の値になる理由が理解できておりません。要素数=その中にある値の数(何個の値が入っているのか)ことだと理解していたのですが、要素数=配列の末尾の値というものなのでしょうか?

    • @itgakko
      @itgakko  Год назад +6

      質問ありがとうございます。以下に回答しますね。
      ご質問は動画内8:57付近の「out[outの要素数]というのは配列の中の一番末尾の値をとってくるという風に言い換えられる」と言っている部分を指されていると思います。
      具体例で考えるとわかりやすいです。下記、iの値ごとに tail ← out[outの要素数] が実行されるタイミングにおいて、
       ・i=2の場合、out={3}、outの要素数=1、out[outの要素数]=out[1]=3
       ・i=3の場合、out={3,5}、outの要素数=2、out[outの要素数]=out[2]=5
       ・i=4の場合、out={3,5,6}、outの要素数=3、out[outの要素数]=out[3]=6
      となっています。全てのケースでout[outの要素数]が配列outの末尾の値になっていることが見て取れると思います。
      なのでご質問いただいている「outの要素数が配列の末尾の値になる」のではなく、
      「out[outの要素数]が配列の末尾の値になる」ということを説明しております。
      動画内での説明が混乱させてしまう形となっておりすみません。
      ご不明点などありましたらご連絡ください。

    • @user-tu1bm4dv6v
      @user-tu1bm4dv6v Год назад

      @@itgakko
      ご回答いただき、ありがとうございます。
      返信遅くなり、申し訳ないです。
      詳しい説明のおかげで、out[outの要素数]が配列の末尾の値になる、という意味が理解できました。
      ありがとうございます!
      今後もこの動画を活用させていただきます!

  • @谷口-x2v
    @谷口-x2v 9 месяцев назад

    科目Bは、さいとうさんの動画を全てみて理解すれば解けるようになるのでしょうか?
    他にやるべき問題、参考書などはありますか?
    科目Bは過去問がないのでいけるか不安です。

    • @itgakko
      @itgakko  8 месяцев назад +1

      質問ありがとうございます!
      「理解した」のハードルが人によって違うので、
      基本的に「〜〜やれば解けますか?」のような質問にはお答えしておりません。
      ご了承ください。
      人によって前提となる知識が異なるので
      どの程度の量問題を解けば良いという目安はありません。
      ご自身の感覚で「8割程度正解できる」という自信がつくまで学習するのが良いです。
      私の動画だけで自信がつくならそれで良いですし、
      足りないなら問題集でさらなる自信アップをする必要があります。
      問題集であれば以下の問題集はオリジナル問題が77問掲載されていておすすめです!
      基本情報技術者[科目B]アルゴリズムとプログラミング トレーニング問題集

  • @techlearner-wp3rv
    @techlearner-wp3rv Год назад +2

    48:04  最初問題を解いているとき、問13(ア)でelseのreturn middleが実行されたあと、while文頭に戻って更にlow

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます!
      そうですね、return が実行されると問答無用でその関数の実行が終了します。

  • @あさ-g6x
    @あさ-g6x 9 месяцев назад

    いつもお世話になっております!
    ご質問がありまして、トレースの際は、実行結果を書くと さいとうさんから学びました。そこで、難易度が高くなったら実行結果の正しい表が作れません。表の順番の作り方をご教示頂きたいです。よろしくお願い致します!

    • @itgakko
      @itgakko  9 месяцев назад

      質問ありがとうございます!
      トレースする際はとにかく1行1行トレースすることが大事です。
      最初の方は時間がかかるかもしれませんが、
      1行1行しっかりとトレースすれば確実に正しい結果が出ます。
      慣れるまでは時間がかかっても1行1行飛ばさずにトレースし、
      慣れてきたら一部スキップしたりしてスピードを上げていくのが良いですね。

    • @あさ-g6x
      @あさ-g6x 9 месяцев назад

      承知しました!
      勉強になります。ありがとうございます

    • @itgakko
      @itgakko  9 месяцев назад

      @@あさ-g6x 勉強頑張ってください!

  • @ねちこやんちん
    @ねちこやんちん 11 месяцев назад +1

    科目Bの結果が615点だったのでまだちょっと不安ですが、本動画にてトレーニングを重ねたからだと思います。ありがとうございました!

    • @itgakko
      @itgakko  11 месяцев назад

      試験お疲れ様でした!
      不安かもしれませんが結果を待ちましょう!

    • @ねちこやんちん
      @ねちこやんちん 10 месяцев назад

      受かってましたー🎉

    • @itgakko
      @itgakko  10 месяцев назад

      合格おめでとうございます!

  • @るる-c3m
    @るる-c3m 10 месяцев назад

    今、試験1週間前で前回あと5点で不合格だったのでこの動画でしっかり対策して頑張ります、!

    • @itgakko
      @itgakko  10 месяцев назад

      コメントありがとうございます!
      直前の追い込み頑張って下さい!

  • @kt3221
    @kt3221 Год назад +3

    問9ですが、order(2)の後nを出力して、order([n],[2])をしてから、order(tree[n][1])をするのではないのでしょうか?if文3行の処理をせず、処理1をする点がちょっと理解できずにいます。

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます。
      結論としては、動画内で解説している順序が正しいです。
      再帰呼び出しの場合の処理順についてですが、
      下記でより詳しく解説していますので、こちらの問14を確認してみてください。
       【初心者向け】基本情報技術者試験 科目B|アルゴリズムをゼロから理解する
        ruclips.net/video/waAwVXa9y2o/видео.html

    • @kt3221
      @kt3221 Год назад

      ありがとうございます。やってみます!

  • @akiper
    @akiper Год назад +4

    問9の処理①、②、③はどれですか?
    PGの文章の中に番号書いてないとわかりずらいです
    あと問題を解いてみて思いましたが、この問題は再帰ってなんでわかるんですか?
    order(1)を実行します。
    tree[1]の判定
    tree[1]={2,3} 要素数2 なので
    order(tree[1][1]=2)
    tree[2]の判定
    tree[2]={4,5} 要素数2 なので
    order(tree[2][1]=4)
    tree[4]の判定
    tree[4]={8,9} 要素数2 なので
    order(tree[4][1]=8)
    tree[8]の判定
    tree[8]={} 要素数0 なので
    * 8を出力
    endif
    * 4を出力←ここでなんで出力されるのですか?(これが一番聞きたいです)
        よろしくお願いいたします。

    • @akiper
      @akiper Год назад

      N=8の時は処理③ではないのでしょうか。要素が0のなので処理③だと思います。そこら辺因果関係が不明です

    • @akiper
      @akiper Год назад

      また、8が出力されたら二分木探索上、4しかないから4なのですか?

    • @itgakko
      @itgakko  Год назад

      ご質問ありがとうございます。
      まず、問9の処理①②③について、以下の通りとなります。
       ①order(tree[n][1])
       ②nを出力
       ③order(tree[n][2])
      上記がわかりづらくすみません。上記を把握していただくと、質問頂いている内容の多くが解決すると思われますので、ご確認のほどよろしくお願いします。
      上記だけでは解決しない箇所について下記で回答します。
       ・この問題は再帰ってなんでわかるんですか
        →再帰呼出とは、あるプログラムからそのプログラム自身を呼び出すことを指します。今回は order という関数の中の処理で order が呼び出されているのがプログラムを見てわかるので、再帰呼出だと判断できます。
       ・4を出力←ここでなんで出力されるのですか?
        →簡略化するために n=4、n=8、n=9のケースだけに絞って説明します。以下にプログラムの実行される行を1行1行書きます。わかりやすくするために呼び出した関数のブロックを {~~~} で表しています。
        -----------
      order(tree[2][1] = 4) { _//order(4)の呼び出し_
      if (tree[n]の要素数 が 2 と等しい = true) _//条件がtrue(真)なのでブロック内の3行の処理を実行する_
      order(tree[4][1] = 8) { _//order(8)の呼び出し_
      _//if文の結果がfalse(偽)となるケースは記載を省略します_
      else _//tree[8] = {}なのでelseのブロックに入る_
      *n=8を出力*
      }
      *n=4を出力*
      order(tree[4][2] = 9) { _//order(9)の呼び出し_
      _//if文の結果がfalse(偽)となるケースは記載を省略します_
      else _//tree[9] = {}なのでelseのブロックに入る_
      *n=9を出力*
      endif
      }
      _//中略_
      }
      _//以下省略_
        -----------
      上記のようにプログラム1行1行の動きを追ってみると、
      nの出力順序は 8 → 4 → 9 であることがわかります。
      以上、ご不明点などありましたらご連絡ください🤗

    • @akiper
      @akiper Год назад

      @@itgakko
       ご回答ありがとうございます。
       ☆nの出力順序は 8 → 4 → 9
       order(8)が呼ばれた
       ↓
       8がブロックに入る
       ↓
       その前でorder(4)が読んであるので、order( tree[2][1]=4 ←(他の解説者もここを省略しているから解説が分かりにくいと私は感じました.)
       ↓
       4を出力する。
       ↓
       4を出力されたら、order(tree[4][2] = 9) { //order(9)の呼び出し
       ↓
       9を呼び出す
       という考え方でしょうか
       私も再帰というのが分かっておらず質問があやふやになってしまいました。
       ご了承ください

    • @itgakko
      @itgakko  Год назад +1

      @akiper
      記載いただいた内容であっていると思います!
      プログラムの処理順序については、基本的に上から下!を意識すると良いと思います。
      i=4,8,9 の処理をさらに簡略化して書くと以下のようになります。
      先ほど記載した処理①、②、③を使って再帰呼出であることを意識しない形にしています。
        -----------
      order(tree[2][1] = 4) { _//order(4)として呼び出す_
      if (tree[n]の要素数 が 2 と等しい = true) _//条件がtrue(真)なのでブロック内の3行の処理を実行する_
      処理① _//order(8) の呼び出し_
      処理② _//n=4を出力_
      処理③ _//order(9) の呼び出し_
      _//中略_
      }
      _//以下省略_
        -----------
      上記の処理順序を考えてみると、「上から下!」なので処理①→処理②→処理③の順序になります。
      それを踏まえた上で、処理①、処理②、処理③の中身を考えると、下記の通りになります。
       ・処理①では、order(8)として呼び出しているので、その中身で「n=8」が出力され、
       ・処理②では、そのまま「n=4」を出力、
       ・処理③では、order(9)として呼び出しているので、その中身で「n=9」が出力されます。
      また、動画の中でも触れていたかもしれませんが、再帰呼出については、
      「あー、そんなこと(関数の中でその関数自体を呼び出す)もできるんだなぁ」くらいに留めておくのがいいかもしれません。
      再帰呼出だから何か特殊なこと(処理順序が変わったり)があるという訳ではないので。
      どんなプログラムでも、1行だけをみると複雑なことはしてないので、1行1行理解して読み解いていくのがいいと思います。
      またいただいたアドバイスについては改善しますね。ありがとうございます。
      以上、ご不明点ありましたらご連絡ください🤗

  • @はるぽ-n1e
    @はるぽ-n1e Год назад +2

    今さっき受験してきました!
    科目A 725/1,000
    科目B 745/1,000
    科目Bの方が苦手だったのに……!
    このチャンネル3日間くらい見てたおかげです。本当にありがとうございました!

    • @itgakko
      @itgakko  Год назад +2

      素晴らしいですね!
      合格おめでとうございます!

  • @エビ-o4h
    @エビ-o4h Год назад +3

    旧試験の午後試験とどっちが難しいと思います??

    • @itgakko
      @itgakko  Год назад +1

      コメントありがとうございます。
      個人的には旧試験の方が難しいと思います。
      旧試験はプログラミング未経験の方には非常にとっつきずらかったところがあったのですが、新試験では多少とっつきやすい表現に変わっていると思います。

  • @tatsuyanagao486
    @tatsuyanagao486 Год назад +2

    問3について。どうしてtailにoutの末尾を入力するとわかるのでしょうか?

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます。以下に回答しますね。
      ご質問は動画内8:57付近の「out[outの要素数]というのは配列の中の一番末尾の値をとってくるという風に言い換えられる」と言っている部分を指されていると思います。
      具体例で考えるとわかりやすいです。下記、iの値ごとに tail ← out[outの要素数] が実行されるタイミングにおいて、
       ・i=2の場合、out={3}、outの要素数=1、out[outの要素数]=out[1]=3
       ・i=3の場合、out={3,5}、outの要素数=2、out[outの要素数]=out[2]=5
       ・i=4の場合、out={3,5,6}、outの要素数=3、out[outの要素数]=out[3]=6
      となっています。全てのケースでout[outの要素数]が配列outの末尾の値になっていることが見て取れると思います。
      ご不明点などありましたらご連絡ください。

  • @アンパンマン-q9b
    @アンパンマン-q9b Год назад

    2か月後に基本情報を受けるます!
    科目B対策として、基本情報の過去問午後試験を解くなら何問目が良いですか?サンプル問題だけだと心もとない気がして、、

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます!
      アルゴリズムは「データ構造及びアルゴリズム」
      セキュリティは「情報セキュリティ」が良いですね。

  • @Tk-lo9uh
    @Tk-lo9uh Год назад +1

    常に問題と解答を表示してほしいけど、画面見づらくなっちゃうよなぁ

    • @itgakko
      @itgakko  Год назад

      ご意見ありがとうございます!
      そうですね、悩んだのですが画面見やすさの関係で問題と解答は表示していません。
      その代わりに無料で本動画で使用している教材をプレゼントしています。この動画概要欄のURLからLINEに登録頂くと教材がダウンロードできますのでよければ試してみて下さいね。
      ※PCでLINEをご覧の方は、LINE登録後に教材が欲しい旨メッセージを送っていただく必要がございます。

  • @山田大輔-i6m
    @山田大輔-i6m Год назад

    【質問(問9)】
    →「8」出力後に「4」が出力される理由が分かりません
    【質問詳細】
    「8」出力後に3行目の処理、
     order(tree[n][1])
    に再帰しているにも関わらず、それを無視して4行目の処理、
     nを出力
    に移行してるのは何故ですか?

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます!
      結論から言うとorder(8)として関数が呼び出された際、
      3行目の処理「order(tree[n][1])」は実行されません。
      -----
      1.  ◯order(整数型: n)
      2.   if (tree[n]の要素数 が 2 と等しい)
      3.    order(tree[n][1])
      4.    nを出力
      5.    order(tree[n][2])
      6.   elseif (tree[n]の要素数 が 1 と等しい)
      7.    order(tree[n][1])
      8.    nを出力
      9.   else
      10.   nを出力
      11.  endif
      -----
      order(8)として関数が呼び出された場合、
      tree[n]の要素数は0です。
      そのため、10行目の「nを出力」だけ実行されてorder(8)として呼び出された関数は終了します。
      以上、ご不明点ございましたらご連絡頂ければと思います。

    • @山田大輔-i6m
      @山田大輔-i6m Год назад

      返信ありがとうございます。
      しかしながら、説明してくださっているのは、不明点の1つ前の処理です。
      疑問点は下記の通りです。
      order(8)が
       nを出力
      して、処理終了となるのは分かります。
      困惑しているのはその後のorder(4)に再帰後の処理です。
      order(4)に再帰後になぜそのまま
      nを出力
      となり、「4」を出力しているのですか?
      なぜ、3行目の
       order([][1])
      を無視しているのですか?

    • @itgakko
      @itgakko  Год назад +2

      失礼しました。
      ご認識されているプログラムの処理順が誤っているので、
      プログラムの処理順を説明しますね。
      -----
      1.  ◯order(整数型: n)
      2.   if (tree[n]の要素数 が 2 と等しい)
      3.    order(tree[n][1])
      4.    nを出力
      5.    order(tree[n][2])
      6.   elseif (tree[n]の要素数 が 1 と等しい)
      7.    order(tree[n][1])
      8.    nを出力
      9.   else
      10.   nを出力
      11.  endif
      -----
      まずorder(4)として呼び出されると、
      3行目:order(tree[n][1]) が実行されます。
      これは関数order(8)として呼び出すことを指します。
      もう少し詳しくいうとorder(4)を中断してorder(8)を実行するイメージです。
      order(8)は「8を出力」だけ実行して終了します。
      ここで中断していたorder(4)を再開します。
      order(4)は3行目まで実行していたので、
      4行目の「nを出力」から再開します。
      このような処理順になっています。
      以上、ご不明点ございましたらご連絡頂ければと思います。

    • @山田大輔-i6m
      @山田大輔-i6m Год назад

      @@itgakko
      中断された行(処理)の次の行(処理)から始まるということなんですね…
      本問題について理解できました。
      ありがとうございます。

    • @itgakko
      @itgakko  Год назад

      @user-lw4hn3pn2h よかったです!

  • @第1空挺団-f1q
    @第1空挺団-f1q Год назад +5

    問3、なんでoutの要素数は末尾になるんですか?

    • @itgakko
      @itgakko  Год назад +2

      回答させて頂きます。
      ご質問は動画内8:57付近の「out[outの要素数]というのは配列の中の一番末尾の値をとってくるという風に言い換えられる」と言っている部分を指されていると思います。
      具体例で考えるとわかりやすいです。下記、iの値ごとに tail ← out[outの要素数] が実行されるタイミングにおいて、
       ・i=2の場合、out={3}、outの要素数=1、out[outの要素数]=out[1]=3
       ・i=3の場合、out={3,5}、outの要素数=2、out[outの要素数]=out[2]=5
       ・i=4の場合、out={3,5,6}、outの要素数=3、out[outの要素数]=out[3]=6
      となっています。全てのケースでout[outの要素数]が配列outの末尾の値になっていることが見て取れると思います。
      ご不明点などありましたらご連絡ください🤗

    • @第1空挺団-f1q
      @第1空挺団-f1q Год назад +2

      @@itgakko ありがとうございます!めちゃくちゃ助かりました!!

  • @gnu9835
    @gnu9835 8 месяцев назад

    質問です。
    実行結果を書き出す時、変数に入れる値は何でも良いのでしょうか。
    また、頭の中で処理できなかった時はとりあえず数字を入れてみる、で良いのでしょうか。
    言葉足らずですみません、アドバイスを頂きたいです。

    • @itgakko
      @itgakko  8 месяцев назад +1

      質問ありがとうございます!
      実行結果を書き出す時、変数に入れる値は問題によってどうすれば良いか変わります。
      ・プログラムの実行結果が問われている問題
       →問題文に具体的な値がきさいされているはずなのでその通りの値を使う。
      ・そうでない場合
       →基本的になんでも良いです。ただ、繰り返し処理があるなら配列の要素数は2以上にするとか、if文の条件を見て変数の値を決めるだったり少し考える必要があります。
      頭の中で処理できなかった場合はおっしゃる通りとりあえず具体的な値を入れてトレースするのがよいですね!
      原始的と思われるかもしれませんが紙に書いてみるのがよいです!

  • @super_sentou
    @super_sentou Год назад +2

    アルゴリズムどう解いたらいいか分かるようになりました!!
    ありがとうございます!

    • @itgakko
      @itgakko  Год назад

      ありがとうございます!!

  • @ぽぽ-x1k
    @ぽぽ-x1k 6 месяцев назад

    問6は、丁寧にトレースすると正解がアなので、イウエをトレースしなくても速い時間で答えが出ます。もし本番でこのような問題がでて、答えがウエらへんだと時間が足りなさすぎる気がするのですが、やはり、この場合は地道にトレースして、トレースする時間をはやくする練習をした方がいいのでしょうか??

    • @itgakko
      @itgakko  6 месяцев назад

      質問ありがとうございます!
      本番を考えると、まず大前提として時間がかかりそうな問題に出会った場合、制限時間の関係から後回しにするのが良いです。
      その上で問6レベルの問題であれば、全て地道にトレースしなくても答えが出せるようになるくらいの実力をつけてから試験に臨むのが望ましいです。
      純粋にトレースの速度を上げることと、トレースに慣れて端折るスキルを身につけましょう。1行1行トレースするのではなく、for文であれば繰り返し処理の最初の方だけトレースしてみてプログラムの全体像を掴むことだったりといったことです。

  • @NK-ou8lo
    @NK-ou8lo 8 месяцев назад

    基本情報技術者 午後問題のデータ構造及びアルゴリズムという項目の過去問を勉強しているのですが、この動画で言っていることは完璧に理解できるし、1人でもできるのに、過去問は解けません。
    本番の科目bはどのレベルのものが出るのでしょうか?テスト形式が変わる前のデータ構造及びアルゴリズムレベルの問題が出るのでしょうか?

    • @itgakko
      @itgakko  7 месяцев назад

      質問ありがとうございます!
      本番の試験でも本動画で取り扱っているような問題が出ますので、
      「基本情報技術者 午後問題のデータ構造及びアルゴリズム」ではなく、
      可能であれば現行試験の形式の問題を解いて練習した方が良いですね。
      私の他の動画でも良いですし、
      やり尽くしてしまった場合は、以下の問題集がおすすめです。
      77問掲載されていて結構な量を演習できます。
      基本情報技術者[科目B]アルゴリズムとプログラミング トレーニング問題集

  • @user-syachikuofyeah
    @user-syachikuofyeah Год назад +2

    解いても模試で30%しか解けません。解説を読めばわかるのに本番になるとアルゴリズムが読めなくなります。基本がまだなってないのでしょうか😅

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます。
      記載いただいた内容を確認しました。
      「解説を読めばわかる」と「問題が解ける」は別物です。
      記載いただいている通り基礎が足りないということもあると思いますが、
      問題を解いて解説を見る際、「同様の問題が来たらどう解くか」というところまで
      復習をしていくことが一番大事だと思います。

  • @qiaoqiao5345
    @qiaoqiao5345 Год назад +2

    大変有用な解説動画をありがとうございます。
    問16について質問があります。cpを64で割って余った数が後ろの64ビットになるという部分ですが、なぜこのようになるのでしょうか?説明が難しければ、理解するうえで抑えておくべき単元の内容をご教授いただけますと幸いです。よろしくお願いします。

    • @itgakko
      @itgakko  Год назад +7

      質問ありがとうございます。回答します。
      まず、2進数で話をする前に、10進数の場合で考えてみましょう。
      例として、以下の「xxxxxx」の部分に
      10進数「333,222,222,111,111」を右詰めで格納する時の処理を考えます。
       対象:33xxxxxx 22xxxxxx 11xxxxxx
      まず結果だけ見ると、
      33000333 22222222 11111111 になりますよね。
      これをプログラムで表現するために
      計算上どうやっているかを考えます。以下の通りです。
      ①11xxxxxx の部分を穴埋め
       「333,222,222,111,111」の"右側6桁を取得"
        この右側6桁を取得するという計算を具体的な計算式で書くと
       「333,222,222,111,111」を1,000,000 で割った余り になります
        ※333,222,222,111,111 ÷ 1,000,000 = 333,222,222、余り111,111
        なぜこのようになるかというと、1,000,000で割るというのは、
        小数点を6桁右にずらすと同義で、小数点以下にずれた6桁が余りになるからです
        また、1,000,000 で割った商、「333,222,222」
        つまり小数点を6桁右にずらした結果の小数点より左側の値を
        次の②で使用します
      ②22xxxxxx の部分を穴埋め
       「333,222,222」の"右側6桁を取得"
        つまり「333,222,222」を1,000,000 で割った余り を取得
        また、1,000,000 で割った商、「333」
        つまり小数点を6桁右にずらした結果の小数点より左側の値を次の③で使用します
      ③33xxxxxx の部分を穴埋め
       「333」の"右側6桁を取得"
        つまり「333」を1,000,000 で割った余り を取得
      問16の内容を全ての値が10進数として扱うと
      上記のような計算を行うことで結果を得ることができます
      ここでポイントなのは、10進数でいう6桁分の値を抽出するには、
       1,000,000で割る = 小数点を6桁右にずらす
       (10の6乗で割る)
      という処理が必要だということです
      問16の内容に戻って、2進数で考えるとき
      「小数点を6桁右にずらす」には何をすればよいでしょうか。
      これが2進数だと「64で割る」という計算になります。
      もっとポイントを押さえた形で書くと、「2の6乗で割る」ということになります。
      2進数と10進数の違いは1桁あたりで表現できる数字の数になります。
       ・2進数の1桁で表現できる数字の数は0と1の2パターン、
       ・10進数の場合は0,1,2,3,4,5,6,7,8,9の10パターン、
      その為「小数点をn桁右側にずらす」ためには、
      それぞれ上記のパターン数のn乗で割った余りを求める必要があります。
       ・2進数の場合:2のn乗で割る
       ・10進数の場合:10のn乗で割る
      ご不明点ありましたらご連絡ください。

    • @qiaoqiao5345
      @qiaoqiao5345 Год назад +2

      @@itgakko 無事理解できました。基礎の基礎からかみ砕いて説明してくださり大変助かりました。ありがとうございました!

    • @itgakko
      @itgakko  Год назад +3

      よかったです。
      基本情報技術者試験の勉強頑張ってください!

  • @dedennnededennne3220
    @dedennnededennne3220 Год назад +2

    頭パンクしそうです…

    • @itgakko
      @itgakko  Год назад

      何か不明点あればご質問下さいね!

  • @nikonikofu6209
    @nikonikofu6209 Год назад +1

    質問です
    問9の二分木で処理①、処理②、処理③がそれぞれ問題文記載のプログラムのどのコード部分を仰っているのでしょうか。
    ご回答お願いします

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます。
      問9の処理①②③について、以下の通りとなります。
       ①order(tree[n][1])
       ②nを出力
       ③order(tree[n][2])
      上記がわかりづらくすみません。
      ご不明点などあればご連絡頂ければと思います。

  • @なおやでした
    @なおやでした Год назад

    解説ありがとうございます、、心強いです。残り4日しかありませんが気合い出します。質問です。
    36:01 n=8を出力した後、なぜ一つ前の4に戻るかがよく分かりません、、

    • @なおやでした
      @なおやでした Год назад

      8が格納されている節の親が4だからですね、、
      初歩的ミスでした😅

  • @kouheikawamoto3945
    @kouheikawamoto3945 4 месяца назад

    いつもさいとうさんの動画にはとてもお世話になっております。
    問16の文字コードの問題につきまして、質問があります。
    処理の内容は把握できたのですが、
    6桁を取得するための計算で、なぜ64で割るのかが理解できずにいます。
    6桁なので32だと思っているのですが…

    • @itgakko
      @itgakko  3 месяца назад

      質問ありがとうございます!
      なぜ6桁だと64で割るのかについて、
      1桁の場合から1つずつ桁を増やして考えるとわかりやすいです。
      ・1桁: 0 or 1 の2つしかないので、2パターン
      ・2桁:1桁の時の各パターンに対して、1番左に 0 or 1 がつくパターンが増えるので、 2 × 2 = 4パターン
      ・3桁:2桁の時の各パターンに対して、1番左に 0 or 1 がつくパターンが増えるので、 4 × 2 = 8パターン
      ・4桁:3桁の時の各パターンに対して、1番左に 0 or 1 がつくパターンが増えるので、 8 × 2 = 16パターン
      ・5桁:4桁の時の各パターンに対して、1番左に 0 or 1 がつくパターンが増えるので、 16 × 2 = 32パターン
      ・6桁:5桁の時の各パターンに対して、1番左に 0 or 1 がつくパターンが増えるので、 32 × 2 = 64パターン
      また、動画概要欄にも「なぜ64で割った余りが後ろの64パターン(6ビット分)になるのか」という説明を
      補足として記載していますのでよろしければそちらもご確認ください。

  • @chino_dutch5119
    @chino_dutch5119 Год назад +3

    すみません質問です。
    問9のようなtree[n][2]はtree[n+2]という認識であっていますでしょうか?
    お返事お待ちしております。

    • @itgakko
      @itgakko  Год назад +5

      質問ありがとうございます。
      tree[n][2] の意味は tree[n+2] ではなく、
      「2次元配列 tree の n番目の配列の 2番目の値」という意味になります。
      2次元配列は、配列の要素が配列になっているもののことです。問9で与えられている2次元配列 tree で説明しますね。
      tree = {
           {2,3}  ・・・tree[1]
           ,{4,5}  ・・・tree[2]
           ,{6,7}  ・・・tree[3]
           ,{8,9}  ・・・tree[4]
           ,{10,11} ・・・tree[5]
           ,{12,13} ・・・tree[6]
           ,{14}   ・・・tree[7]
           ,{}    ・・・tree[8]
           ,{}    ・・・tree[9]
           ,{}    ・・・tree[10]
           ,{}    ・・・tree[11]
           ,{}    ・・・tree[12]
           ,{}    ・・・tree[13]
           ,{}    ・・・tree[14]
         }
      2次元配列は、配列の要素1つ1つが配列となっているので、例えば上記の1要素の「tree[1]」これ自体が配列となります。
      例えば普通の配列 array の2番目の値を取得する場合は、array[2] と書くと思います。
      2次元配列 tree の場合では、「tree[1]」自体が配列なので、「tree の 1番目の配列 から 2番目の値を取得する」という意味合いで tree[1][2] という記述を使用します。この記述で配列 tree[1] の 2番目である「3」が取得できます。
      何かご不明点ありましたらご連絡ください。

    • @chino_dutch5119
      @chino_dutch5119 Год назад

      お返事ありがとうございます。おかげで概要を理解することができました🙇

    • @itgakko
      @itgakko  Год назад

      よかったです。
      基本情報の勉強頑張ってください!

  • @akiper
    @akiper Год назад +1

    斎藤先生ご無沙汰しております。まきです。現状報告です。現時点で午後重点対策2週、大滝本とやりましたがやはり再度Javaを復習してプログラミングしてます。写経でソートやリスト類は組みましたが、基礎が身についてないので分かりにくかったのでやはり本腰入れてプログラミングを出来るだけ組んで理解してから再度問題集に戻ります。年末までには受かりたいです。

    • @itgakko
      @itgakko  Год назад +1

      コメントありがとうございます!
      実際にプログラミングしてみるのがやはりいいですね!頑張って下さい!

  • @ffffrrrreeeeeeee
    @ffffrrrreeeeeeee Год назад +1

    ありがとうございます。初学者なので大変助かります。問13で、選択肢 エ)も無限ループになってしまいます、、、どこかを勘違いしているのですが、もしお時間あれば教えてください。例えば、data [-1, 1], target 1 ではどうなるか教えていただけるとありがたいです。

    • @itgakko
      @itgakko  Год назад +2

      ご質問ありがとうございます。
      まず、記載頂いた data=[-1,1]、target=1 のケースですと、「(ウ)要素数が2で、target が dataの末尾要素の値と等しい」ケースにも当てはまってしまい、無限ループとなってしまいます。
      ですので、記載頂いたケースとは別に、「(エ)要素に -1 が含まれている」ケースで無限ループにならない例を記載します。data=[-1, 2, 3], target=2 です。以下プログラムと各行の実行結果です。実行結果を 「_//斜体のコメント_」で記載しています。
      ----------
      low ← 1
      high ← dataの要素数
      _//high = 3_
      while (low target)
        _// elseif (2 > 2) = false(偽) なので elseまでスキップ_
        else
         return middle
         _// return 2 となり、targetと同じ値が格納されている要素番号が返されるので無限ループしない。_
      ----------
      ただ、この問題の少し複雑な箇所として、「(ウ)要素数が2で、target が dataの末尾要素の値と等しい」が無限ループとなる唯一の条件ではない(十分条件ではあるが必要十分条件ではない)と言う点です。
      ※なので、問題文の中に「例えば...」という記載があるようです。
      例えば(ウ)には合致しませんが、以下のケースは無限ループします。
      data=[-1, 2, 3], target=4
      ----------
      low ← 1
      high ← dataの要素数
      _//high = 3_
      while (low

    • @ffffrrrreeeeeeee
      @ffffrrrreeeeeeee Год назад

      @@itgakko ご丁寧にありがとうございます。恐れ入ります。やっとスッキリしました。問題(選択肢)に若干クセがあるような気もしますが、学習を続けていくうちにさらに理解できるかもしれません。この動画のおかげで科目Bに取り組めています。合格に向けて頑張れそうです。

    • @itgakko
      @itgakko  Год назад +1

      @@ffffrrrreeeeeeee
      ご返信ありがとうございます!
      おっしゃる通り他の問題と少し毛色が違うかもしれませんね。
      「試験の制限時間内に解く」という意味では全問正解を目指すより優先度をつけて解ける問題から解くということも大事になると思います。このタイプの問題は時間がかかりそうなので試験では後回しでもいいかもしれません。
      どの問題から解くか、を動画化するのも検討してみますね。
      基本情報技術者試験の勉強頑張ってください🤗

  • @user-syachikuofyeah
    @user-syachikuofyeah Год назад +2

    16の文字コードの問題で64ビットという数字が出てきましたがどのような計算で64が出てきたのか教えていただきたいです😢

    • @itgakko
      @itgakko  Год назад +3

      質問ありがとうございます。
      なぜ64という数値なのか、長くなりますが以下に記載しますのでご確認ください。
      ーーーーーーーーーーーーーーーーーー
      なぜ64で割った余りが後ろの64ビットになるのか、
      まず、2進数で話をする前に、10進数の場合で考えてみましょう。
      例として、以下の「xxxxxx」の部分に
      10進数「333,222,222,111,111」を右詰めで格納する時の処理を考えます。
       対象:33xxxxxx 22xxxxxx 11xxxxxx
      まず結果だけ見ると、
      33000333 22222222 11111111 になりますよね。
      これをプログラムで表現するために
      計算上どうやっているかを考えます。以下の通りです。
      ①11xxxxxx の部分を穴埋め
       「333,222,222,111,111」の"右側6桁を取得"
        この右側6桁を取得するという計算を具体的な計算式で書くと
       「333,222,222,111,111」を1,000,000 で割った余り になります
        ※333,222,222,111,111 ÷ 1,000,000 = 333,222,222、余り111,111
        なぜこのようになるかというと、1,000,000で割るというのは、
        小数点を6桁右にずらすと同義で、小数点以下にずれた6桁が余りになるからです
        また、1,000,000 で割った商、「333,222,222」
        つまり小数点を6桁右にずらした結果の小数点より左側の値を
        次の②で使用します
      ②22xxxxxx の部分を穴埋め
       「333,222,222」の"右側6桁を取得"
        つまり「333,222,222」を1,000,000 で割った余り を取得
        また、1,000,000 で割った商、「333」
        つまり小数点を6桁右にずらした結果の小数点より左側の値を次の③で使用します
      ③33xxxxxx の部分を穴埋め
       「333」の"右側6桁を取得"
        つまり「333」を1,000,000 で割った余り を取得
      問16の内容を全ての値が10進数として扱うと
      上記のような計算を行うことで結果を得ることができます
      ここでポイントなのは、10進数でいう6桁分の値を抽出するには、
       1,000,000で割る = 小数点を6桁右にずらす
       (10の6乗で割る)
      という処理が必要だということです
      問16の内容に戻って、2進数で考えるとき
      「小数点を6桁右にずらす」には何をすればよいでしょうか。
      これが2進数だと「64で割る」という計算になります。
      もっとポイントを押さえた形で書くと、「2の6乗で割る」ということになります。
      2進数と10進数の違いは1桁あたりで表現できる数字の数になります。
       ・2進数の1桁で表現できる数字の数は0と1の2パターン、
       ・10進数の場合は0,1,2,3,4,5,6,7,8,9の10パターン、
      その為「小数点をn桁右側にずらす」ためには、
      それぞれ上記のパターン数のn乗で割った余りを求める必要があります。
       ・2進数の場合:2のn乗で割る
       ・10進数の場合:10のn乗で割る
      ーーーーーーーーーーーーーーーーーー

  • @ましろ-z8h
    @ましろ-z8h Месяц назад

    先日試験を受けてきましたが、科目Bの点数が届かず不合格でした。想定していたよりも穴埋め問題が多く出題され、穴埋めが苦手な私は時間が全然足りませんでした。動画内で解説頂いていますが、穴埋め問題をサクッと早く解けるようになるには回数をこなすしかないのでしょうか?コツがあれば教えて頂きたいです。

    • @itgakko
      @itgakko  25 дней назад +1

      穴埋め問題は基本的な解き方を抑えたら
      あとは問題を解く・復習するの繰り返しが地味ですが1番効果的です!
      以下はオブジェクト思考に関する演習・解説動画ですが、
      穴埋め問題も一部取り扱っており、
      解き方についてより詳しく解説しているのでよければご覧ください!
      ruclips.net/video/adjCffDTWnE/видео.html

    • @ましろ-z8h
      @ましろ-z8h 25 дней назад

      @ ありがとうございます!

  • @あーあー-h4t
    @あーあー-h4t Год назад +1

    過去問道場にあるアルゴリズムはもっと長文なのですが、2023からは動画のような短い問題が沢山あるのでしょうか?

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます!
      2023年4月から試験形式が新しくなり、この動画のような短めの問題が主となっています。

    • @あーあー-h4t
      @あーあー-h4t Год назад +1

      @@itgakko
      ご回答ありがとうございます!
      情報セキュリティも今までと比べるかなり短いようですね。
      こちらの動画を使用して勉強したいと思います。

    • @itgakko
      @itgakko  Год назад +1

      @user-co8ip1ks5b 勉強頑張って下さい!

  • @山﨑大-q1h
    @山﨑大-q1h Год назад +1

    問9の質問です。tree[n]の要素数が2と等しいの条件で最初に{2,3}となり2と等しいはず(私の理解不足だったらすいません)なのに、8になるまで出力せずにn=1,2,4,8と処理を実行するのはなぜですか。

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます!
      まず記載頂いている内容の前半の
      「tree[n]の要素数が2と等しいの条件で最初に{2,3}となり2と等しいはず」
      こちらは合っています。
      おそらく再帰呼び出しの処理順について理解が不十分だと思います。
      再帰呼び出しについて以下の動画で詳しく解説していますので
      よければまずこちらをご覧ください。
      ✅【初心者向け】基本情報技術者試験 科目B|アルゴリズムをゼロから理解する(問14が再帰呼び出しの問題です)
      ruclips.net/video/waAwVXa9y2o/видео.html

  • @しょういちとうさか
    @しょういちとうさか Год назад +1

    自分用メモ 37:30