Elixir
Elixir | 99-Haskell Problems 問題 11 – 20 解答例
前回の記事に引き続き、99 Haskel Problems の問題を Elixir で解答します。 前回記事はこちらです。 なお、一部 Elixir の標準関数の仕様に合わせてアレンジしている問題があります。 Problem 11 問題 Modified run-length encoding. ランレングス符号化... Elixir
Elixir | 99-Haskell Problems 問題 1 – 10 解答例
関数型プログラミングの練習問題として 99 Haskel Problems というのがあります。 この記事では、Elixir を用いて問題の解答例を紹介します。 Problem 1 問題 Find the last element of a list. リストの末尾要素を見つけよ。 iex> Prob01.my_last([1,... C++
C++ | 変数やパラメータの型を出力する【gcc, clang, Visual Studio】
C++ を実装していると、auto 変数や template パラメータなどに対してコンパイル時の型が知りたくなることがあります。例えば、 Effective Modern C++ の Item1 としてテンプレートの型推論の解説があり、次のような雰囲気のコードがあります。 template &... C++
C++ | 処理時間を計測する – std::chrono
C++ にて処理時間を計測する方法を紹介します。標準ライブラリの chrono を利用したプログラム例です。 処理時間の計測 システム時刻は chrono::system_clock::now 関数で取得することができます。戻り値は time_point 型です。 time_point の差分を取得す... C++
C++ | 2つの vector から unordered_map を初期化する
C++ での主とした辞書型に unordered_map があります。通常は key/value をセットとしたアイテムから要素を構築すると思います。 この記事では、通常の方式ではなく、 2つの vector (キー用 vector とバリュー用 vector)から unordered_map を構築する例... C++
C++ | 自動微分でニュートン法を改善する
以前の記事で C++ でのニュートン法プログラム例を紹介しました。ニュートン法は、方程式を解くための求根アルゴリズムの一種ですが、対象関数の微分式が必要であるという特徴があります。 別の記事で、二重数による自動微分のプログラム例を紹介しました... C++
C++ | ニュートン法で方程式を解く
方程式を解くための求根アルゴリズムのひとつにニュートン法があります。\(x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}\) の漸化式を反復的に計算して \(x\) の収束値を算出するアルゴリズムです。 この記事では、C++ でのニュートン法のプログラム例を紹介し... C++
C++ | 二重数で自動微分を計算する
関数の微分値を計算する方法はいくつかあります。この記事では、二重数を用いて自動で一次微分を計算する方法を紹介します。 二重数とは、\(a + b\varepsilon\) で表される数値です。ここで \(\varepsilon\) は、二乗すると 0 になる元を表します。 例えば... C++
C++ | 二分法 プログラム例
二分法は、数値形跡における求根アルゴリズムのひとつです。反復法によって任意の方程式を解くためのアルゴリズムです。 \(x\) の上限と下限を初期値として、区間を半分ずつ狭めていくことにより、\(f(x) = 0\) を満たすような \(x\) を探索する手法です。... Python
Python | dict を toml 形式の文字列に変換する
Python 3.11 にて標準ライブラリに tomllib が追加され、toml ファイルを dict として読み込むことが可能になりました。しかし、dict を toml として出力する機能がないため、これを実現したい場合は他の手段を検討する必要があります。 toml の構造を厳密...







