edo1z blog

プログラミングなどに関するブログです

2017-02-01から1ヶ月間の記事一覧

Python3 - 対数

Pythonで対数を出すには、math.logを使います。import mathで使えるようになります。 import math print(math.log(2, 10)) 0.30102999566398114 これは、10を何乗したら2になるか?です。log102です。 試しに、10を0.30102999566398114乗してみます。 print(…

Python3 - xのn乗のグラフ(matplotlibのsubplotとアニメーション)

GIFアニメーション matplotlibのアニメーション作成は2つ種類があって、ArtistAnimationとFuncAnimationとがある。 参考:matplotlib でアニメーションを作る ArtistAnimation は、あらかじめ全てのグラフを配列の形で用意しておき、それを1枚ずつ流すという…

Python3 - 変数のスコープについて

下記コードのとき結果は1と表示されます。 n = 1 def hoge(): print(n) hoge() 下記コードのときエラーになります。 n = 1 def hoge(): n += 1 print(n) hoge() UnboundLocalError: local variable 'n' referenced before assignment 参考:なぜ変数に値があ…

Python3 - matplotlibでアニメーションGIFをつくる

matplotlib.animatioを使うとアニメーションがつくれます。自分の環境ではgifで保存しようとしたら、imagemagickがなくてエラーになりました。imagemagickのインストールとかはここに書いてありました。 Imagemagick http://www.imagemagick.org/script/bina…

Python3 - 素因数分解

素因数分解 正の整数 n を素因数分解するための最も単純な方法は、2 から順に √n までの素数で割っていく方法である(Trial division(英語版))。しかし、n が大きくなると、この方法では困難である。 結果 [3, 79, 519507173] 参考:Python Finding Prime…

Python3 - timeitを使ってコマンドライン上で関数の実行速度を計る

コマンドラインで実行できるので、プログラムに計測用のコードを書かなくてよくて便利。 timeit — 小さなコード断片の実行時間計測 計測方法 自分の環境だと、実行したいpythonファイル(hoge.py)がおいてあるディレクトリで、下記のようにやると動きます。(…

Python3 - 素数

エラトステネスの篩 エラトステネスの篩 結果 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197,…

強化学習 - Python3でSarsaを使って行動価値を出す

これからの強化学習という本の31頁にのってる状態遷移グラフの行動価値をSarsaを使って出してみます。ちなみにこの本の数式誤字多くないですか??Python3で書いてみます。

Let's Encryptの更新方法と更新の自動化

この投稿でLet's Encryptで無料でSSL証明書を作りましたが有効期限が切れそうなので更新します。 環境は、サーバはさくらのVPS、OSはUbuntu16.04、webサーバはnginxです。 更新方法 参考:https://certbot.eff.org/#ubuntuxenial-nginx Automating renewal …

Ubuntu - cron

Ubuntu16.04です。 cronを使うには、crontabコマンドを使います。 crontab -e とやるとcronの編集ができますが、cron -rとやるとcronの設定内容が消えるので、危ないので気を付けるようにとネットでよく書いてあります。紹介されているのは、crontab -eで直…

Python3 - Seleniumの使い方

Selenium http://www.seleniumhq.org/ 作業環境 私の環境は、下記です。 Windows10 Python3.5 Firefox 51.0.1 Chrome 56.0 ChromeDriver 2.27 Selenium WebDriver SeleniumRCはJavascriptでブラウザを操作してたけどセキュリティ的に難しくなってSelenium We…

Python3 - アルゴリズム(重み付きグラフ・最短経路探索・ダイクストラのアルゴリズム)

参考:欲張り法 (greedy strategy) 重み付きグラフ networkxでつくった重みグラフ networkxのコードサンプル 上記は重み付きのグラフです。これはnetworkxで書きました。コードは下記です。 import numpy as np import matplotlib.pyplot as plt import netw…