EurekaMoments

ロボットや自動車の自律移動に関する知識や技術、プログラミング、ソフトウェア開発について勉強したことをメモするブログ

優先度つき待ち行列(Priority Queue)の概要とJuliaサンプルコード

目次

  • 目次
  • 目的
  • 前提知識
    • 待ち行列(キュー)
    • ヒープ
  • 優先度つき待ち行列
    • 概要
    • Juliaサンプルコード
      • 全体
      • メイン処理
      • アップヒープによるソート
      • push関数
      • pop関数
      • ダウンヒープによるソート
      • サンプル実行結果
      • GitHub

目的

  • データ構造の一種である優先度つき待ち行列(Priority Queue)の特徴について理解する。
  • 優先度つきキューを利用したソートを行うサンプルコードを実装して動作を確認する。
続きを読む

文字列の順列チェックをするアルゴリズムの概要とJuliaサンプルコード

問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)

問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)

  • 作者:大槻 兼資
  • 発売日: 2020/10/02
  • メディア: 単行本(ソフトカバー)

目次

  • 目次
  • 目的
  • 順列チェック問題とは
  • アルゴリズムの概要とサンプルコード
    • GitHub
    • 与えられた文字列をソートする方法
    • 同じ文字の数を数える方法
  • 実行例

目的

  • 文字列の順列チェックをするアルゴリズムについて理解する。
  • アルゴリズムを実行するコードを実装してみて動作を確認する。
続きを読む

ユニークな文字列かを判定するアルゴリズムの概要とJuliaサンプルコード

目次

  • 目次
  • 目的
  • アルゴリズムの概要
    • Boolean配列を利用したアルゴリズム
    • ビット演算を利用したのアルゴリズム
  • Juliaサンプルコード
    • Boolean配列を利用したアルゴリズム
    • ビット演算を利用したのアルゴリズム
  • 動作確認

目的

  • ユニークな文字列かを判定するためのアルゴリズムについて理解する。
  • アルゴリズムを実行するコードを実装してみて動作を確認する。
続きを読む

ラビン-カープ法による文字列検索アルゴリズムの概要とJuliaサンプルコード

目次

  • 目次
  • 目的
  • アルゴリズムの特徴と参考資料
  • サンプルコード
    • ハッシュ関数の実装
    • ラビン-カープ法による検索を実行する関数の実行
    • ハッシュ値の逐次計算
  • 動作確認
    • テストケース1
    • テストケース2
    • テストケース3
  • GitHub

目的

  • テキストからパターンを検索するアルゴリズムであるラビン-カープ法について理解する。
  • Juliaでサンプルコードを実装・実行し、動作を確認する。
続きを読む

Juliaでの基本的なユニットテストのやり方メモ

目次

  • 目次
  • 目的
  • 公式ドキュメント
  • @testマクロによるユニットテスト
  • @test_throwsマクロによるユニットテスト
  • @testsetマクロによる複数テストのグループ化
  • @test_nowarnマクロによるユニットテスト
  • GitHub

目的

  • Juliaでユニットテストをするためのテストコードの書き方を学ぶ。
  • 実際にテストコードを書いて実行し、動作を確認してみる。
続きを読む

JuliaとMatplotlibでグラフを作る際のハマりポイントとサンプルプログラム集

目次

  • 目次
  • 目的
  • JuliaのPlotsではなくMatplotlibを使う理由
  • JuliaからMatplotlibを使えるようにするための設定手順
    • 1. Pythonのインストール
    • 2. JuliaにPyCallとMatplotlibをインストール
    • 3. エラー "could not find or load the Qt platform plugin windows"が出た時の対処法
  • サンプルプログラム集
    • JuliaプログラムからのMatplotlib呼び出し
    • 2次元線グラフ
    • 2次元点グラフ
    • 2次元アニメーション
    • アニメーションのGIFファイル作成
    • 複数グラフの重ね合わせ
    • 複数グラフを1つのFigureに並べて表示
    • 2次元散布図
    • ヒストグラム
    • 円グラフ
    • 3次元グラフのためのpyimport
    • 3次元点グラフ
    • 3次元線グラフ
  • GitHub

目的

  • プログラミング言語Juliaと、Pythonのグラフ描画ライブラリであるMatplotlibを組み合わせたグラフ作成の方法についてまとめる。
  • グラフを作成するための準備の中でハマったポイント、その対処方法についてメモしておく。
  • 基本的な各種グラフを作るためのサンプルプログラムをまとめておく。

f:id:sy4310:20200905155935p:plain

続きを読む

Juliaの開発環境構築手順と基本プログラミングのメモ

1から始める Juliaプログラミング

1から始める Juliaプログラミング

目次

  • 目次
  • 目的
  • 開発環境構築手順メモ
    • 1. Juliaをインストール
    • 2. IntelliJ IDEAのインストール
    • 3. GitHubに専用リポジトリを作成
    • 4. IntelliJを起動してリポジトリをクローン
    • 5. Juliaのプラグインの導入
    • 6. Juliaのexecutableの設定
    • 7. IntaliJのTerminalをWindows用のGit bashに変更
    • 8. Juliaの動作確認
  • 基本プログラミングメモ
    • ヘルプモード
    • パッケージモード
    • IntelliJ上での新規ファイル作成
    • Pythonの「if name == 'main'」を真似る
  • 参考資料

目的

  • プログラミング言語Juliaによるソフト開発環境を構築する。
  • 今後のために環境構築手順を整理してまとめておく。
  • Juliaによるプログラミングの基本について、よく使いそうなものをまとめておく。
続きを読む