python

小数点を桁数指定して print する

>>> import numpy as np >>> p = np.pi >>> print(p) # 表示される桁数が多すぎる 3.141592653589793 >>> print(f"{p:.2f}") # 小数点以下二桁まで表示する 3.14 >>> print(f"{p=:.2f}") # f-string で = 指定子を用いると式(ここでは変数)が表示される p=…

Cloud Build で呼び出した Python 内から subprocess でも仮想環境を使う

解決したい問題 from subprocess import run run(["python", "-m", "hoge.fuga"]) # hoge/fuga.py import numpy as np を Cloud Build上で実行しようとすると ModuleNotFoundError: No module named 'numpy' などと言われてしまう 解決方法 こうする import …

airflow で CPU が100パーセントに張り付いてしまうときに見直したい設定

結論 Apache Airflow の起動時に CPU が 100% に張り付いてしまう際には、 AIRFLOW__CORE__MIN_SERIALIZED_DAG_UPDATE_INTERVAL などの設定値を変更することで改善される可能性があります: AIRFLOW__CORE__MIN_SERIALIZED_DAG_UPDATE_INTERVAL=600 AIRFLOW_…

Python で mod. p での二項係数 (nCk mod. p) の求め方

過去記事, Python で mod の下での逆元を計算するテーブルを作成する - わかばめにっき では, modの下での階乗の逆元を求めました. 本記事では, 以下の記事を参考にして二項係数 を前処理 , 実行 で行うアルゴリズムを紹介します. drken1215.hatenablog.com

ABC192 D - Base n を Python で解いてみる

問題概要 atcoder.jp 数字列 を 進法表記と見なしたとき, 以下になるような値が何種類あるか求めよ. ただし, は に含まれる数字より大きいものとする. 考えたこと 入力例 1 22 10 22 を 3 進数と見なすと, 22 を 4 進数と見なすと, 22 を 5 進数と見なすと, …

SIRモデル方程式を数値的に解いて、gifで表示させてみる

伝染病の拡大過程を記述するSIRモデル の初期値問題を Python で解き, 得られた解をgifにします. PCとインターネットがあればどなたでも, 以下のノートブックを逐次実行することでgifファイルを生成することができます. colab.research.google.com

ABC 162 A - Lucky 7 を Python で解いてみる

問題概要 atcoder.jp3桁の数字が与えられたとき, 一度でも 7 があったら "Yes" を, そうでないなら "No" を出力せよ. 考えたこと 100 の位の数字が 7 である 10 の位の数字が 7 である 1 の位の数字が 7 である の3つの条件のいずれかが成り立てば"Yes"を出…

Python で mod の下での逆元を計算するテーブルを作成する

wakabame.hatenablog.com では, の素数 で割った余りを求める方法について解説しました. 実は, この計算アルゴリズムは高速化できます.

みんなのプロコン2019 D-Ears をPython で解いてみる

問題文が迷わせに来ていますね. 全ての要素は非負ですので, りんごさんの要望を , すぬけさんの石の置き方を としたときのコスト \begin{equation} \sum_{i=1}^L |A_i-B_i| \end{equation} を最小化すればいいことがわかります. すぬけさんの動き方はりんご…

Python で波動方程式の数値計算と動画 gif の書き出しをやらせてみよう

2次元正方形領域における波動方程式の初期値境界値問題を考えます。 こんな感じで波が伝播していく様子を気軽にシミュレーションできます。

競技プログラミングにおける Python での標準入出力のまとめ

入力 1行に1要素の場合 数字(自然数) N = int(input()) 文字列 S = input() 1行にスペース区切りで複数要素の場合 2つの数字を別の変数 N, M に N, M = map(int, input().split()) 2つの文字列を別の変数 S, T に S, T = map(str, input().split()) 複数の…

フェルマーの小定理を使って mod の下での組み合わせ総数を求めるアルゴリズムを python で書いてみる

注意:この記事は未完成です。こちらの記事を参考にお願いします wakabame.hatenablog.com の素数 で割った余りを求める方法について解説します. は" 個の異なるものから 個を選ぶときの組み合わせの数"を表しており, 階乗記号 を用いて,と表されます. 階乗…

mod の下での指数計算をするアルゴリズムを python で書いてみる

整数 と整数 に対して, を整数 で割った余りを出力します. 安直に を 回乗じてからで割れば良いのではないかと考えたくなりますが, この方法には2つの欠点があります. 回乗じるのに計算量が かかってしまう. は処理しきれなくなるくらい大きくなりえる. この…

重み付き有向グラフの全2点間の距離を求める Warshall–Floyd 法を python で書いてみる

ワーシャル=フロイド法とは 今回は有向グラフの情報が与えられたとき, 全ての始点から全ての終点までの最短距離をワーシャル=フロイド(Warshall–Floyd)法と呼ばれるアルゴリズムで求めていきます. 有向グラフの最短距離を求めるアルゴリズムのうち, ベルマ…

典型的な DP (動的計画法) のパターンが整理されていたので Python で書いてみる

動的計画法(DP)について, qiita でまとめられました qiita.com 勉強になったのでメモ代わりに. やはり数列の添え字は0から始めて記述したほうが実装との親和性が高そうなので, 以下では数列は として書きます. ここで, は数列の要素数を表します. 1. 最大和…

有向グラフ上の2点間の最短距離を求めるアルゴリズム Bellman–Ford 法を python で書いてみる

有向グラフとは 有向グラフ(directed graph)とは, 頂点(vertex)と辺(edge)からなり, 辺は の形式を持ち, 頂点 から頂点 へはコスト で移動できることを表しています. 辺に対して逆向きの進路があるとは限らず, あったとしても同じコストとは限りません. 今回…

ABC070 の D 問題を python で解いてみる

木構造の距離を求める問題演習として, AtCoder Beginner Contest 070 の D 問題の解説をしてみます. 問題はこちら abc070.contest.atcoder.jp

重み付き木構造上の2点間の距離を求めるアルゴリズムを python で書いてみる

グラフの一種である木構造での距離を求めるアルゴリズムを考えます. グラフとは 詳しくは グラフ理論 - Wikipedia などの記述をご参照ください. グラフ(graph)とは頂点(vertex)と辺(edge)からなる構造を表しており, 頂点同士が辺によって繋がっていることを…

AGC019 の C 問題を python で解いてみる。

本記事では先日開催された AtCoder Grand Contest 019 の C 問題の解説を試みます. ちなみに私は本番中には解けず, 解説や他の人のコードを参考にさせていただきました. 問題はこちら agc019.contest.atcoder.jp スタート地点からゴール地点までの最短ルート…

最長増加部分列の長さ取得アルゴリズムLISをpythonで書いてみる

最長増加部分列(Longest Increasing Subsequence )とは 数列 が与えられたとき, その部分列 であって のとき を満たすものを増加部分列と言います. その中で最も長いものの長さを求めるアルゴリズムを以下に説明していきます.