nashidos’s diary

アルゴリズムとか機械学習とか色々

モンテカルロ法【カジノ】は負けるのかシミュレートしてみた

本記事では、モンテカルロ法と呼ばれるカジノにおける攻略法についてシミュレーションを行います。行ったシミュレーション結果から長期的にモンテカルロ法を使った場合にどうなるのか分析していこうと思います。 モンテカルロ法とは シミュレーション ソース…

デプスチャートをPythonで描写してみる

本記事では仮想通貨のデプスチャートをPythonで描写する方法について紹介します。今回は例としてbitflyerのBTC_JPYのデプスチャートを作成してみたいと思います。実際にソースコードも載せているのでご自由にお使いください。 デプスチャートとは bitFlyer A…

PythonでOR演算、XOR演算を使った全探索を実装してみる-ABC197

この記事ではOR演算、XOR演算を用いた全探索をPythonで実装していきます。一緒に例題を解きつつOR演算、XOR演算を使った全探索について理解しましょう。 OR演算、XOR演算の出力表 OR演算 XOR演算 例題 問題文 制約 実装 まとめ OR演算、XOR演算の出力表 それ…

.gitignoreファイルの簡単な作り方

本記事では、.gitignoreファイルを簡単に作る方法について紹介していきます。どうやって.gitignoreファイルを作ればいいかわからない、.gitignoreファイルをもっと簡単に作成したいという方向けの記事です。 .gitignoreのテンプレ コマンドラインから利用 お…

Pythonで半分全列挙を実装してみる-ABC184

本記事では、半分全列挙をPythonで実装していきます。実際に一緒に問題を解きながら半分全列挙を理解しましょう。 半分全列挙とは 例題 問題文 制約 実装 まとめ 半分全列挙とは 半分全列挙は、その名の通り個の要素を半分に分けてそれぞれを全列挙し、半分…

/usr/bin/env:そのようなファイルやディレクトリはありませんの解決法

LinuxでPythonのスクリプトを実行しようとしたところ、以下のエラーが出てきました。/usr/bin/env:そのようなファイルやディレクトリはありません。本記事では、このエラーの原因と解決法について述べていきます。

Dockerでよく使うコマンド&オプション一覧

dockerでよく使うコマンドとオプションをまとめてみました。 イメージのダウンロード コンテナ、イメージの詳細を表示 コンテナの起動 起動&生成 起動 コンテナの停止 特定のコンテナを停止 全てのコンテナを停止 プロセスの表示 起動中のコンテナのプロセ…

Windows10でDocker Desktopが起動しなくなった時の対処法

Docker Desktopが以前までは通常通り動いていましたが、急に動かなくなってしまいました。一応解決したので対処法について記します。 環境 Windows10 Docker version 19.03.12 状況 以前までは普通に動いていました。しかし突如として、Docker Desktopのアイ…

すぐにできるパワーポイントの資料を見やすくする3つの方法

最近では、学生から社会人まで多くの人がパワーポイントで資料を作成することがあります。資料を作成する中で、「見やすいパワーポイントの資料を作りたいけど、どうすれば見やすくなるのかがわからない」という悩みに誰しも遭遇したことがあるのではないか…

競プロ・AtCoderで頻出の数学的知識まとめ

AtCoderのような競技プログラミングの世界では数学的知識が求められる問題が存在します。本記事ではその中でも頻出の数学的知識とその知識を使って解ける問題を列挙しました。Pythonでの実装例も合わせて載せています。 基数変換 基数変換とは「ある進数で表…

yarn installでerror : The engine "node" is incompatible with this module. が出たときの対処法

本記事ではyarn installの実行時に遭遇したエラーの対処法について記します。 環境 Ubuntu 16.04 node 12.18.3 エラー内容 yarn installをしたときに下記のようなエラーメッセージが表示されて実行できませんでした。 error @: The engine "node" is incompa…

Pythonでエラトステネスの篩(ふるい)を実装してみる-ABC084

本記事ではエラトステネスの篩(ふるい)をPythonで実装していきます。実際に問題を解きながらエラトステネスの篩の動きを確認していきましょう。 エラトステネスの篩とは 例題 問題文 制約 実装 まとめ エラトステネスの篩とは エラトステネスは古代ギリシ…

Pythonで英語のストップワードを取得する方法

ストップワードとは 自然言語処理においては、出現頻度が高いにも関わらず特別な意味をもたない不要な単語を削除する必要があります。この不要な語をストップワードと言います。日本語で言えば、「は」、「です」、「する」などがストップワードに相当します…

matplotlib.animationでアニメーションが表示されないときの対処法

アニメーションが表示されない matplotlib.animationでエラーは出ていないもののアニメーションが表示されずに困ったので、その解決法について記します。アニメーションが表示されなかったのは以下のコードです。挿入ソートをアニメーションで可視化しようと…

Pythonでデータ分析を始める人におすすめの学習リソース

はじめに Pythonでデータ分析をするためには多くの知識が求められます。データの可視化、回帰分析、機械学習、特徴量生成、ファイル操作など必要な知識は多岐にわたります。そこで本記事では、ファイル操作やデータの可視化、回帰分析などの基礎的な知識を学…

累積和と尺取り法の複合問題をPythonで解いてみる-ABC172

この記事では累積和と尺取り法を駆使することで解ける問題をPythonで実装していきます。それぞれのアルゴリズムについての説明はこの記事では省略しますが、別記事で解説していますので累積和と尺取り法についてまず知りたいという方は以下にリンクを載せて…

Pythonで余弦定理の問題を解いていく-ABC168

競技プログラミングではしばしば数学の知識が問われる問題が出されることがあります。今回は高校で習う余弦定理を利用して解ける問題をPythonで解いていきます。 余弦定理 例題 問題文 制約 実装 まとめ 余弦定理 余弦定理は一言で説明すると2つの辺の長さと…

Chrome拡張の開発中にファイル内容の変更を自動で反映する方法

この記事ではコードの変更を自動で検知して更新する方法について解説します。Chrome拡張の開発ではホットリロードのファイルをダウンロードし、manifest.jsonで設定するだけで自動更新が可能になります。 ホットリロード ホットリロードとはコードを変更した…

Pythonで順列全探索を実装してみる-ABC150

本記事では順列全探索をPythonで実装していきます。Pythonではitertoolsを使うことで簡単に順列を生成することができます。 順列全探索とは 例題 問題文 制約 実装 まとめ 順列全探索とは 順列全探索とは通りの順列の組み合わせを全探索する手法です。例えば…

Pythonで解くナップサック問題【動的計画法(DP)入門】

この記事では競技プログラミング等で頻出のアルゴリズムである「動的計画法」をナップサック問題を通して解説していきます。まず動的計画法についての解説をしてから、実際にナップサック問題をPythonで解いていきます。 そもそも動的計画法(DP)とは ナッ…

XAMPPのMySQL起動時に起こるError: MySQL shutdown unexpectedlyの解決法

(adsbygoogle = window.adsbygoogle || []).push({}); 久しぶりにXAMPPのMySQLを起動したら以下のようなエラーが出てきました。 Error: MySQL shutdown unexpectedly. This may be due to a blocked port, missing dependencies, improper privileges, a cra…

スクリーンショットを撮って保存するChrome拡張を作ってみる

Webページ全体のスクリーンショットを撮りたい!スクリーンショットを撮った時にタスクバーや開いてるタブまで一緒に写ってほしくない!というわけでページ全体のスクリーンショットを撮って保存をしてくれるChrome拡張を開発していきます。 html2canvas Chr…

Pythonでダイクストラ法(Dijkstra's algorithm)を実装してみる-ABC012

本記事ではダイクストラ法の全体的な流れを確認したあとに実際に例題をPythonで解いていきます。ダイクストラ法の基本的な考え方は貪欲法です。最短距離でいけるところを選んで距離をひたすら更新していきます。

【初心者向け】Google Chrome拡張を3分で開発してみる

この記事ではGoogle Chrome拡張機能をこれから開発をしたい初心者のために3分で拡張機能を開発していきます。とりあえずChrome拡張を簡単なものでいいから作って動かしたい人向けに記事になります。それでは3分スタート! 目標物 manifest.json content.js …

スクレイピングエラーの解決方法-Only the following pseudo-classes are implemented: nth-of-type

PythonのBeautifulSoupでスクレイピングをしようとしたときに下記のようなエラーがでました。 NotImplementedError: Only the following pseudo-classes are implemented: nth-of-type.これはBeautifulSoupではコロンが疑似クラスとして認識されてしまうこと…

Pythonで平方根(ルート)の精度を上げる方法-パナソニックプロコン

この記事では、Pythonで平方根の計算の精度を上げる方法を記します。Pythonで平方根の計算をただすること自体は難しくありません。例えば以下のように”**”を使う方法や print(2**0.5) #1.4142135623730951 numpyを用いて求める方法もあります。 import numpy…

Jupyterで競技プログラミングをするならスニペットを使おう

AtCoderなどの競技プログラミングではコーディングのスピードは非常に重要視されます。そこで本記事では、コーディング時間を短縮するためにスニペットを利用する方法について紹介します。 (adsbygoogle = window.adsbygoogle || []).push({}); 実行環境 拡…

Windows10で自分のパソコンに使われているSSDの規格を確認する方法

自分のパソコンに使われているSSDがSATAだということは型番を検索したらすぐわかったものの、2.5インチなのかM.2 なのかがわかりませんでした。なので、この記事ではWindows10でSSDの規格を調べる方法を記していきます。 (adsbygoogle = window.adsbygoogle …

bit全探索で解ける問題をPythonでひたすら解いていく

この記事ではタイトルにある通りbit全探索の問題をひたすら解いていきます。bit全探索自体の解説は以下の記事を参照してください。 nashidos.hatenablog.com 例題1(難易度:茶) 問題文 実装 例題2(難易度:茶) 問題文 実装 例題3(難易度:緑) 問題文 …

Pythonで動的計画法(Dynamic Programming)を実装してみる

この記事ではPythonを使って動的計画法(DP)の問題を解いていきます。本記事ではこれから動的計画法の勉強を始める入門者向けに解説していきます。動的計画法のイメージをつかむために簡単な問題を解いていきますので、がっつりDPを勉強をしたい人にとっては…