Python

Pythonでmixiのプロフィール画像を変更する

あけましておめでとうございます。 早起きしてPython書き初めしたのでご報告です。 今年はmixiのプロフィール画像を日ごとに変更したいと思った。mixiはプロフィール用画像を複数設定できて、その中から一枚をメインの画像にする。APIとか分からないので mec…

Instagramがエンジニアを見つけるために出題した独創的な課題をやってみた

面白そうなのでやってみた。 あなたは解ける? Instagramがエンジニアを見つけるために出題した独創的な課題:Don't be lame http://kenichinishimura.blogspot.com/2011/11/instagram.html 縦に分割された画像をゴチョゴチョやって元に戻す。 これを こうす…

PythonでPDFを分割する (すべての自炊派バンドマンに捧げる)

やりたいこと バンドスコアをスキャンする → 楽曲ごとに分割したPDFにしたい やりかた pyPdfっていうモジュールを使うとできる。 sudo easy_install pypdfサンプルを参考に練習がてら書いた。 #!/usr/bin/env python # -*- coding: utf-8 -*- from pyPdf imp…

Pythonで英語CDを分割してみた

蒸し暑くなってきて、もともと少ないやる気がさらに無くなってきたのだけど、 多少は何かしないといけないなぁと思って、なんとなくDUO3.0の例文でも覚えようかと思った。 で、英語CDにありがちな1トラックにいくつかのセンテンスが入っているのが鬱陶しい…

PyAudio で MMLインタプリタを書いてみた

昨日簡単なMMLのプログラムを書いたけど、 ゴミ収集車みたいな単音しか出ないので、もうちょっと良く動くものを書いてみた。 ソース: https://github.com/mohayonao/PyMMLPlayer デモ: TODO: ノイズの音の高低の作り方が分からなくて格好悪い ポルタメントの…

Python+PyAudio+MMLでスーパーマリオの地上BGMを

MML http://ja.wikipedia.org/wiki/Music_Macro_LanguagePyAudioで何か作ってみようと思って書いた。 簡単な機能しかついていないし、汎用性に欠ける。 音もゴミ収集車みたいだし #!/usr/bin/env python # -*- coding: utf-8 -*- import re import math impo…

PyAudioでドレミファソラシド

PyAudioというAudio I/Oライブラリがあると知ったのでさっそく使ってみた。 easy_installではエラーになったので、以下のURLからdmgをダウンロードしてインストールしたらOKだった。 http://people.csail.mit.edu/hubert/pyaudio/ とりあえずドレミファソラ…

状態空間表現で色々な問題を解く

勉強と練習。 解き方は分からないけどルールとゴールは決まっている。そういう問題を解く場合、与えられた問題を状態空間表現により定義する。 状態空間表現を使うことで問題定義が厳密になるし、直接的解法が分からない問題の解く手続きの探索が簡単になる…

Python + goo.gl の API で短縮URL

Googleの短縮URLのAPIが提供されたので、Pythonでとりあえず短縮だけしてみた。 http://code.google.com/intl/ja/apis/urlshortener/v1/getting_started.html #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib2 import simplejson API_URL = 'h…

PythonでYahoo!辞書をつかって言葉の意味を調べる

ツイッターのボット用に作っていたのを分割した。https://gist.github.com/759520 BeautifulSoupを使っているので、適当にeasy_installするなりして下さい。 こんな感じで使う import yahoodict results = yahoodict.lookup(word=word, yomi=yomi) print yah…

単語を抽象化する

こういうことがしたい。 変換前: ヨーグルト を 食べる。 変換後: 乳製品 を 食べる。 こんな感じに言葉を抽象的にしたい。 WordNetを使えば簡単にできる。hypernym(上位語)をたどればそれだけでOK。 そして、日本語WordNetを使うのは以下のコードを使うとす…

ひらがなをカタカナに、カタカナをひらがなに

短く簡単に。 コード中の & #12436; っていうのは「ゔ」です(何故か変換できない) import re def make_function_hiragana(): re_katakana = re.compile(ur'[ァ-ヴ]') def hiragana(text): """ひらがな変換""" return re_katakana.sub(lambda x: unichr(ord…

Project Euler Problem 051

http://projecteuler.net/index.php?section=problems&id=51 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2051 *1290601139*57の第1桁を置き換えることで, 157, 257, 457, 557, 757, 857という6つの素数が得られる. 56**3の第3桁…

Project Euler Problem 050

http://projecteuler.net/index.php?section=problems&id=50 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2050 素数41は6つの連続する素数の和として表せる: 41 = 2 + 3 + 5 + 7 + 11 + 13. 100未満の素数を連続する素数の和で表…

Project Euler Problem 049

http://projecteuler.net/index.php?section=problems&id=49 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2049 項差3330の等差数列1487, 4817, 8147は次の2つの変わった性質を持つ。 (i)3つの項はそれぞれ素数である。 (ii)各項…

Project Euler Problem 048

http://projecteuler.net/index.php?section=problems&id=48 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2048 次の式は、1^1 + 2^2 + 3^3 + ... + 10^10 = 10405071317 である。 では、1^1 + 2^2 + 3^3 + ... + 1000^1000 の最…

Project Euler Problem 047

http://projecteuler.net/index.php?section=problems&id=47 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2047 連続する2つの数がそれぞれ2つの異なる素因数を持つのは 14 = 2 × 7 15 = 3 × 5 の場合である. 同様に連続する3つの…

Project Euler Problem 046

http://projecteuler.net/index.php?section=problems&id=46 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2046 Christian Goldbachは全ての奇合成数は平方数の2倍と素数の和で表せると予想した. 9 = 7 + 2 * 1^2 15 = 7 + 2 * 2^…

Project Euler Problem 045

http://projecteuler.net/index.php?section=problems&id=45 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2045 三角数, 五角数, 六角数は以下のように生成される. 三角数 Tn=n(n+1)/2 1, 3, 6, 10, 15, ... 五角数 Pn=n(3n-1)/2 …

Project Euler Problem 044

http://projecteuler.net/index.php?section=problems&id=44 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2044 五角数は Pn = n(3n-1)/2で生成される. 最初の10項は 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ... である. P4 + P…

Project Euler Problem 043

http://projecteuler.net/index.php?section=problems&id=43 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2043 数1406357289は0から9のPandigital数である (0から9が1度ずつ現れるので). この数は部分語が面白い性質を持っている…

Project Euler Problem 042

http://projecteuler.net/index.php?section=problems&id=42 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2042 三角数のn項は t(n) = n(n+1) / 2 で与えられる. 最初の10項は 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... である. …

Project Euler Problem 041

http://projecteuler.net/index.php?section=problems&id=41 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2041 n桁の数がPandigitalであるとは, 1からnまでの数を各桁に1つずつもつことである. 例えば2143は4桁のPandigital数で…

Project Euler Problem 040

http://projecteuler.net/index.php?section=problems&id=40 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2040 正の整数を順に連結して得られる以下の10進の無理数を考える: 0.123456789101112131415161718192021... 小数第12位…

Project Euler Problem 039

http://projecteuler.net/index.php?section=problems&id=39 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2039 辺の長さが{a,b,c}と整数の3つ組である直角三角形を考え, その周囲の長さをpとする. p = 120のときには3つの解が存…

Project Euler Problem 038

http://projecteuler.net/index.php?section=problems&id=38 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2038 192を1, 2, 3で掛けてみよう. 192 × 1 = 192 192 × 2 = 384 192 × 3 = 576 積を連結することで1から9のPandigital数…

Project Euler Problem 037

http://projecteuler.net/index.php?section=problems&id=37 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2037 3797は面白い性質を持っている. まずそれ自身が素数であり, 左から右に桁を除いたときに 全て素数になっている (379…

Project Euler Problem 036

http://projecteuler.net/index.php?section=problems&id=36 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2036 585 = 10010010012 (2進) は10進でも2進でも回文数である. 100万未満で10進でも2進でも回文数になるような数の総和…

Project Euler Problem 035

http://projecteuler.net/index.php?section=problems&id=35 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2035 197は巡回素数と呼ばれる. 桁を回転させたときに得られる数 197, 971, 719 が全て素数だからである. 100未満には巡…

Project Euler Problem 034

http://projecteuler.net/index.php?section=problems&id=34 http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2034 145は面白い数である. 1! + 4! + 5! = 1 + 24 + 120 = 145となる. 各桁の数の階乗の和が自分自身と一致するような数…