Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

Python

令和6年度秋期 応用情報午後問3

令和6年度秋期 応用情報技術者試験(AP)の午後問題3は、 素数を列挙するアルゴリズム に関する問題でした。 問題文(pdf) r06a_ap_pm3_1.py 実行結果 prime1,prime2,prime3関数を用いて、10000以下の素数を求めるのに要した実行時間を計測してみました。 アル…

令和元年台風19号の動きをアニメーションで

『Pythonによる気象・気候データ解析I Pythonの基礎・気候値と偏差・回帰相関分析』の第2章の章末問題は、 令和元年の台風19号の様子が見やすい図を作成してください という問題でした。 以下のように取り組んでみました。 0時から23時までの気圧について描…

RMQをPythonで

Pythonで、「D - Permutation Subsequence」に取り組んだのですが、その際、RMQを利用したので、以前、Rubyで書いたものをPythonで書き直してみました。 ただし、Python版は、Range Maximum Queryになってます。 abc352_d.py

「競プロ典型90問」に取り組んだ記録

「競プロ典型 90 問 - AtCoder」に取り組んできた記録です。★の数が多くなるほど、自分では解けない問題が増えてきましたが、解説や想定ソースコード(C++)を読みながら取り組んできました。 001 - Yokan Party(★4) https://gist.github.com/maehrm/9821b29…

065 - RGB Balls 2(★7)を理解するにために

2023年10月中旬くらいからAtCoderの「競プロ典型90問」に取り組んできました。最初は001番から順番通りに解いていこうと思ったのですが、難易度が高い問題に当たるとなかなか進めなくなるので、まずは★2つの問題、そして★3つの問題と難易度の低い問題から解…

NTT(数論変換)を使って2つの多項式の積を求めるプログラム

「『アルゴリズムC 第3巻』の「41 高速フーリエ変換」をPythonで」、「FFTを使って2つの多項式の積を求めるプログラム」に引き続き、NTT(数論変換)を使って2つの多項式の積を求めるプログラムを作ってみました。 2つの多項式の積を求めるプログラム(convolut…

FFTを使って2つの多項式の積を求めるプログラム

昨日に引き続き、FFTを使って2つの多項式の積を求めるプログラムを作ってみました。 2つの多項式の積を求めるプログラム(convolution_fft.py) 実行結果 , のとき、を求めてみます。 実行結果は以下の通りです。少し見にくいですが、 となっています。 % pyth…

『アルゴリズムC 第3巻』の「41 高速フーリエ変換」をPythonで

『アルゴリズムC 第3巻』の第41章「高速フーリエ変換」で紹介されているアルゴリズムをPythonで作ってみました。 2つの多項式の積を求めるプログラム(41_FFT.py) , のとき、を求めてみます。 実行結果 実行結果は以下の通りです。少し見にくいですが、 とな…

令和6年度春期 応用情報午後問3

令和6年度春期 応用情報技術者試験(AP)の午後問題3は、 ダイクストラ法 に関する問題でした。 問題文(pdf) 最短距離の算出プログラム(r06h_ap_pm3_1.py) まずは、問題文中の図2で紹介されている最短距離の算出プログラムを作ってみました。 実行結果 % pytho…

令和6年度 大学入学共通テスト 情報関係基礎 第3問

令和6年度大学入学共通テスト 情報関係基礎の第3問は魔方陣に関する問題でした。 center_exam_info2024_3.py 問2,問3の内容を実際にPythonで作ってみました。 実行 % python center_exam_info2024_3.py 5 11 18 25 2 9 10 12 19 21 3 4 6 13 20 22 23 5 7 14…

ウインターカップ優勝回数

現在、「SoftBank ウインターカップ2023 令和5年度 第76回全国高等学校バスケットボール選手権大会」開催中ですが、高校別の優勝回数を調べてみました。ただし、校名変更があった学校についても別々に表示しています。(明成と仙台大明成など) 男子 高校名 優…

第100回東京箱根間往復大学駅伝競走(#箱根駅伝)各大学タイム上位10人の平均タイム

各大学でエントリーされている選手のうち各大学タイム上位10人の平均で集計を行ってみました。 データは、公式ホームページ「第100回東京箱根間往復大学駅伝競走」のチームエントリー(PDF)を使わせてもらいました。 関連 第100回東京箱根間往復大学駅伝競走(…

第100回東京箱根間往復大学駅伝競走(#箱根駅伝)各大学ハーフマラソン タイム上位10人の平均タイム

各大学でエントリーされている選手のうちハーフマラソンのタイム上位10人の平均で集計を行ってみました。 データは、公式ホームページ「第100回東京箱根間往復大学駅伝競走」のチームエントリー(PDF)を使わせてもらいました。 各大学ハーフマラソン タイム上…

第100回東京箱根間往復大学駅伝競走(#箱根駅伝)各大学10,000mタイム上位10人の平均タイム

各大学でエントリーされている選手のうち10,000mのタイム上位10人の平均で集計を行ってみました。 データは、公式ホームページ「第100回東京箱根間往復大学駅伝競走」のチームエントリー(PDF)を使わせてもらいました。 各大学10,000mタイム上位10人の平均タ…

第100回東京箱根間往復大学駅伝競走(#箱根駅伝)各大学5000mタイム上位10人の平均タイム

各大学でエントリーされている選手のうち5000mのタイム上位10人の平均で集計を行ってみました。 データは、公式ホームページ「第100回東京箱根間往復大学駅伝競走」のチームエントリー(PDF)を使わせてもらいました。 各大学5000mタイム上位10人の平均タイム …

第100回東京箱根間往復大学駅伝競走(#箱根駅伝)出場選手のハーフマラソン タイムベスト50

第100回東京箱根間往復大学駅伝競走(箱根駅伝)出場選手のハーフマラソン タイムベスト50を調べてみました。 データは、公式ホームページ「第100回東京箱根間往復大学駅伝競走」のチームエントリー(PDF)を使わせてもらいました。 ハーフマラソンのタイム順(50…

第100回東京箱根間往復大学駅伝競走(#箱根駅伝)出場選手の10,000mタイムベスト50

第100回東京箱根間往復大学駅伝競走(箱根駅伝)出場選手の10,000mタイムベスト50を調べてみました。 データは、公式ホームページ「第100回東京箱根間往復大学駅伝競走」のチームエントリー(PDF)を使わせてもらいました。 10,000mのタイム順(50位まで) 順位 氏…

第100回東京箱根間往復大学駅伝競走(#箱根駅伝)出場選手の5000mタイムベスト50

第100回東京箱根間往復大学駅伝競走(箱根駅伝)出場選手の5000mタイムベスト50を調べてみました。 データは、公式ホームページ「第100回東京箱根間往復大学駅伝競走」のチームエントリー(PDF)を使わせてもらいました。 5,000mのタイム順(50位まで) 順位 氏名(…

令和5年度秋期 応用情報午後問3(3)

「令和5年度秋期 応用情報午後問3 - Mae向きなブログ」、「令和5年度秋期 応用情報午後問3(2) - Mae向きなブログ」の続きです。 graphvizを使うと、2分探索木を見える化できるので、もう少し多くの要素を持つ2分探索木を描いてみました。 プログラム例(r05a_…

令和5年度秋期 応用情報午後問3(2)

昨日、作成した2分探索木のプログラムを使って、 最悪の場合の2分探索木と 平衡2分探索木 が作られていく様子を見ていきたいと思います。 プログラム例(r05a_ap_pm3.py) 最悪の場合 107行目以降を以下のように変更します。 関数insertを使って、1から順番に7…

令和5年度秋期 応用情報午後問3

令和5年度秋期 応用情報技術者試験(AP)の午後問題3は、 2分探索木(AVL木) に関する問題でした。2分探索木については、何度か出題されてますが、木の回転が出題されたのは初めてかもしれませんね。 学生時代に作った記憶がありますが、復習のつもりで取り組ん…

合併-発見(Union Find)アルゴリズム(その3)

「Boot camp for Beginners」を完走したので、次は、「競プロ典型 90 問 - AtCoder」に取り組んでみたいと思います。 「012 - Red Painting(★4)」を幅優先探索で解いてみたのですが、TLEx9という結果となりました。解説を読んでみると、Union-Findアルゴリ…

Boot camp for Beginners完走しました

ついにというか、ようやくというか「Boot camp for Beginners」の300問解き終わりました。 高校の教科書にPythonが掲載されたことを機にPythonを少しでも習得しようとはじめたのですが、Beginnersとはいえ最後までやり切ると気持ちがいいですね。お陰様でPyt…

合併-発見(Union Find)アルゴリズム(その2)

以前、『アルゴリズムC〈第3巻〉グラフ・数理・トピックス』のp34で紹介されている「合併-発見アルゴリズム」をPythonで作ってみたのですが、 合併-発見(Union Find)アルゴリズム - Mae向きなブログ 「D - Friend Suggestions」を解くときに、同じグループに…

順列を求める(2)

以前、「順列を求める - Mae向きなブログ」で自前で順列を求める関数を作ってみたのですが、「[C#] 順列を求める next_permutation() 代わりを実装する方法 │ Web備忘録」に順列を列挙する面白いアルゴリズムが紹介されていましたので、Pythonで作ってみまし…

【2023年】イオンモール 総賃貸面積(大きさ・広さ)でランキング

イオンモール 総賃貸面積(大きさ・広さ)でランキング No. 店舗名 総賃貸面積(㎡) 1 イオンモール幕張新都心 128,000 2 mozo wondercity(モゾ ワンダーシティ) 101,000 3 イオンレイクタウンmori 99,000 4 イオンモール広島府中 98,000 5 イオンモール岡山 …

令和5年度春期 応用情報午後問3

令和5年度春期 応用情報技術者試験(AP)の午後問題3は、 多倍長整数の演算(カラツバ法) に関する問題でした。 多倍長整数の加減算については、学生時代の課題で取り組んだ記憶があるのですが、乗算についてはこんな手法があるんですね。 問題を解くだけでも勉…

Pythonを使って複数のWord文書をPDFに変換し結合する

30個ほどのWordファイルをそれぞれPDFに変換し、ひとつのPDFファイルとして結合する必要が出てきたので、Pythonを使って自動化してみました。 事前準備として、Word文書のファイル名を00_foo.docx, 01_foo.docx, … としておきます。 word2pdf.py まず、複数…

パズルで鍛えるアルゴリズム力

C++を使って紹介されているパズルを、「アルゴリズム力」と「Python力」を鍛えるために、Pythonで書き換えながら読んでみました。 プログラム学習にパズルを題材にするというのは、いいですね。面白くて楽しい経験を通して、結果としてアルゴリズム力が養わ…

ドミノタイリング

『パズルで鍛えるアルゴリズム力』の第3章で紹介されている「ドミノタイリング」をPythonで書いてみました。 3_4_domino_solver.py BipartiteMatchingモジュールは、「二部マッチング問題を解くためのクラス - Mae向きなブログ」で作成したものを使用。 実行…