岐阜だからさElixir

試していることなど...需要がないかもしれないけど細々とアウトプットしてます

Algorithm

スタックサーバーを実装しながらElixirでOTPへ入門する

そもそもOTPとは 一言で言えば、Erlangで用意された便利なライブラリなどの集合体で便利ツールをまとめたものという認識をしている OTPとはopen telecom platoformの略で当初は堅牢性が重要な電話交換機を開発するために使用されていた 今になってはElixirで…

Elixirでk近傍法を実装して近しいデータを予想する

k近傍法とは ざっと説明するとAというデータとBというデータが どれだけ近しいかを予測するためのアルゴリズム 仕組みは超簡単で以下のようなデータがあったとする size(大きさ)は1~5の5段階 is_red(見た目)は1~5の5段階 has_seed(種があるかないか)は0or1 a…

Elixirで最長共通部分列使ってタイプミスしてるかを調べる

プログラムでタイプミスを修正する難しさ 以下のような変数があったとする user_input_textは自身で入力したテキストで"apple"と入力したつもりが 間違えて"anpple"と入力してしまっている user_input_text = "anpple" answer_text = "apple" 他にもタイプミ…

ElixirのMapSet(集合)の使い方と集合カバー問題を解いてみる

Setは非推奨 元々、Elixirに実装されていたSetという集合のモジュールは現在、非推奨となっており MapSetを使ってくれよなと公式が言っている なのでよほどの理由がない限りはMapSetを使えばいいんじゃないかなと MapSetの使い方 MapSetモジュールを使うこと…

最短経路を求めるためにElixirでダイクストラ法を実装する

グラフと最短経路 こんなグラフのネットワークがあったとする Start, A, B, Goalをそれぞれノードといい 6,2,3...のような数字をエッジの重み(ここでは距離)という StartからGoalへの最短経路は見て分かるように Start -> B -> A -> Goal になるかと思う こ…

Elixirでqueue使って幅優先探索を実装する

Elixirにqueueがなかった件 しかし、Erlangには用意されていた Erlangの公式ドキュメントにばっちしqueueについて記述されている Elixirで解決できない時はErlangのドキュメントを見るというのは本当ですね Elixirからのqueueの使い方 新規のqueue作成 2つの…

セレクトソートとクイックソートをElixirで実装する

ソートの必要性について 前回の記事で実装した二分探索は 対象のリストがソートされていることが前提 つまりはリストをソートしてくれるアルゴリズムが必要になる え?もうEnum.sort()あるけど?とは言わない約束 一度自分で実装することが大事なんじゃないか…

ゆるく理解する二分探索とElixirでの実装

二分探索の生まれた背景 昇順ソート済みのリスト(配列)から特定の値のindex番号を取得したいとする #8のindex番号はいくつ?(7が知りたい) item = 8 lst = [1,2,3,4,5,6,7,8,9,10] これを単純に配列の頭から探索していくと index番号の0から初めて7番目、すな…