Python

pydub.split_on_silence を使ってm4a,mp3,wavの無音部分を削除する

音声ファイルから無音部分をトリミングして保存するプログラムを書きました。 実装方法 pydubというライブラリを使います。 silencesplit_on_silenceという( str.split() のような)無音部分を削除する関数が用意されています。 ソースコード recording-fil…

平方根の値を計算する方法(二分法・ニュートン法・開平法)について

平方根の値を計算する3種類の方法(二分法・ニュートン法・開平法)について紹介し、それぞれPythonとRustでの実装例を示しました。

SRM788 Div2

2020/07/24にTopcoderで行われたSRM788の参加記です。 公式解説はTopcoder Single Round Match 788 Editorials | Topcoderです。 Easy NextOlympics "YYYY.MM.DD" 形式で今日の日付が与えられるので東京オリンピックの開催予定日である"July 23rd, 2021"まで…

Pythonでシフトを自動で組む

2015年にシフトを自動で組むプログラムをPythonで書いた - matsu7874のブログを書いているのですが、これはランダムで100案作って制約を満たすか確認する雑な実装なので、もう少し勉強して書き直してみるシリーズの第一回目です。 問題設定 N日分のシフト枠…

0-1ナップサック問題入門(if文とfor文と配列を前提とする)

この記事ではナップサック問題を解くプログラムをPythonで実装します。 再帰関数も動的計画法も使わず、if文とfor文と配列を使って解くことを目指します。 ナップサック問題とは ナップサック問題とは次のような問題です。 いくつかのアイテムと1つのナップ…

2次元の凸包を求めるアルゴリズムと応用について

2次元の凸包(convex hull)を求めるアルゴリズムについてまとめました。また、凸包の応用先を列挙し、凸包を使って解ける競プロ問題を集めました。ギフト包装法(Gift wrapping algorithm),QuickHull,グラハムスキャン(Graham's scan),Monotone Chain,Chan's a…

Pythonで文章から複合名詞や「〇〇の〇〇」といったフレーズを抽出する

複合名詞や「〇〇の〇〇」といったフレーズを、文章から取り出したい場面は多くあります。 この記事ではPythonを使ってそれらを抽出する方法を2つ紹介します。 janomeのTokenFilterを使う negimaを使う janomeのTokenFilterを使う Janomeは@moco_betaさんが…

n-ominoの列挙(Redelmeier's algorithm)

n-ominoとはn個の正方形で構成されるポリオミノ(Wikipedia)。 n-ominoの列挙を行うRedelmeier's algorithmをPythonで実装した。 速度検証 反転・回転を考慮しないn-ominoを列挙し、個数を数えた。所要時間は下記の通りだった。 n n-omino elapsed[s] 1 1 0.0…

ポリオミノの敷き詰め問題をDancing LinksとKnuth's Algorithm Xを使って解く

ポリオミノの敷き詰め問題を解くプログラムを書いた。効率的に解くためにDancing Linksというデータ構造を実装し、Knuth's Algorithm Xを使用した。 ポリオミノの敷き詰め問題とは こういうパズルがAmazonで売っている。結構難しい。 Amazon | 明治ミルクチ…

urllibとBeautifulSoupでスクレイピングするときに調べたこと

Python3.6でリクエスト部分にurllib、パース部分にBeautifulSoup4を使って、スクレイピングをするときに調べたことを中心に使い方をまとめた。

Python3, C++11, JavaScriptでの実行時間計測

Python3,C++11,JSの実行時間計測まとめ

Anacondaで環境構築するときの一例

Anaconda便利ですね。WindowsでPython使うとインストールが不便なパッケージがたくさんあって困ります。 Anaconda使いましょう。 今回はソースコードを整形してくれるautopep8を使いたかったので環境を新しく作ってインストールしてみました。 conda create …

ツイート時刻から生活リズムの可視化をする

もう10年も前の映画になるらしいですが、デスノートでLが被害者の死亡時刻を重ねると容疑者が大学生であることを割り出すシーンがあったのを覚えていますか? あるいはGitHubでPunch cardって出るじゃないですか。なんとなく格好良くて好きです。 同じような…

もっと気持よくyukicoderで遊ぶためにテストケースを自動実行する。

solorab.net このブログを読んだんですが、謎の呪文が1行だけ貼ってあって????ってなりました。 テストケースは自動で確かめる ちょうどTwitterでも強い人はテストケースを自動実行しているようだということを見ていたので、自分もオシャレに自動でテス…

シフトを自動で組むプログラムをPythonで書いた

アルバイトのシフトを組むのって大変らしいですね。 調べてみると「ナーススケジューリング問題はNP困難」などと出てきます。 ただ、頭のなかで考えていた問題は労働者ごとの職能に差がないものだったので、ナーススケジューリング問題よりは簡単かもしれな…

paizaのプログラミングで彼女を作るやつを全クリアした

paiza.jp 彼女欲しいって言ってたら友達にオヌヌメされたので解いた。全体的に制約が超ゆるいので何でも通っちゃう。 一応水着も手に入れたけど、僕がほしいのは生身の彼女なんだ! 「めがね」ゲットチャレンジ! 本当にやるだけ。制約が小さいので全部見れ…

SymPyで辛い計算をちょっと辛い計算にする

この記事はPython Advent Calendar 2015 - Adventarの7日目の記事です。 SymPyというシンボル計算ライブラリを使ったことがありますか? 最近、卒論のお手伝いをしてもらっているライブラリです。 日本語の情報が少なくて困ったので自分用にという意味も込め…

スペース区切りの文字列をリストに格納する方法の比較

競技プログラミングの入力では、一行にいくつかの数字がスペース区切りで並んでいるケースをよくみる。 例えば、No.16 累乗の加算 - yukicoderの Python3でこれらを一つのリストに格納したい時、一番早い方法はなんだろうか。 map関数を使ってからlistにする…

川渡りパズルを解く

川渡りパズル(男が狼、ヤギ、キャベツを持って川を渡るが船には1つしか積めないみたいなやつ)をPython3で解いてみました。

ABC#027の感想

すっかり存在を忘れていて残り時間30分からの挑戦。 Cの解法は解説読んでも釈然としません。 http://abc027.contest.atcoder.jp/ A: 長方形 - AtCoder Beginner Contest 027 | AtCoder a,b,c = [int(x) for x in input().split()] if b==c: print(a) elif c=…

python3で最大スタック回数の変更

深さ優先探索を書いていたら、おそらく再帰呼び出し回数の上限が原因っぽいrun time errorが発生したので、 最大の再帰呼び出し数を変更する方法を調べた。 import sys sys.setrecursionlimit(10000) 28.1. sys — システムパラメータと関数 — Python 3.3.6 …

複数のフォルダの中に入っている画像ファイルを一つのフォルダにコピーする

やること 複数のフォルダの中に入っている画像ファイルを一つのフォルダにコピーする。 なぜやることになったのか サークルのホームページのデータが1画像ファイルごとに別のフォルダに保存されていて、手動で管理するのが非常に不便だったため。 解決方法 o…

pythonで基数変換する

基数変換するコードを書いてみた。 def radix_convert(number, radix): s = [] while number>0: s.append(number%radix) number = number//radix return s[::-1] print(radix_convert(13,2)) print(radix_convert(15,2)) で実行すると [1, 1, 0, 1] [1, 1, 1,…

手書きのメールアドレスが読み間違えていた時に候補を出力してくれるコードを書いた。[python]

手書きのメールアドレスが読み間違えていた時に候補を出力してくれるコードを書いた。 毎年新歓でメールアドレス書いてもらってもaとuとか判読できなくて、メールが送れない子がいる。 貴重な出会いを無駄にしてしまうのはもったいない! =>読み間違えそうな…