昔のアルゴリズム系記事をリライトしてみた

アルゴリズム
スポンサーリンク

はじめに

このブログを始めてから年月が経ち、書き方や構成もずいぶんと変わってきました。今では「はじめに」「おわりに」を明確に書くスタイルや、1文ごとに改行せず段落でまとめる構成、そして章ごとに分けて書く方式がすっかり定着しています。しかし昔の記事は、そうしたスタイルではなく、今読むと少し読みにくいものも多く残っています。

今回は、思い出深かった記事や気になっていた記事をリライトし、現代のブログスタイルに合わせて加筆・修正したものをまとめて紹介します。

書き直した記事

ソート系の記事

衝撃を受けた「ネタ系ソート」アルゴリズムを扱った記事です。どれも実用性より発想勝負のソートばかりですが、プログラミングの面白さを感じることができます。C言語やHSP言語による実装をメインに、当時は説明不足だった部分を補足しました。

男は黙ってボゴソート

男は黙ってボゴソート
はじめにこんにちは。突然ですが、「ソート(並べ替え)」と聞いて、みなさんはどんなアルゴリズムを思い浮かべますか?バブルソート、クイックソート、マージソート…。世の中には実用的なソートがたくさんありますが、今日はとびきり非効率なソート、「ボゴ...

実用性ゼロ!?でも発想だけは天才的な「sleep sort」

実用性ゼロ!?でも発想だけは天才的な「sleep sort」
はじめに最近、「sleep sort(元ネタ)」という変わり種ソートアルゴリズムを知りました。これは一言でいえば「指定した値だけスリープしてから出力する」というだけの、発想がぶっ飛んでいるソートです。元ネタは海外の掲示板4chanで紹介され...

乱数系

「指定した範囲の乱数を作る際の罠」というわけで3章に分けて書いた記事です。konpeito.jsという数値計算ライブラリの乱数実装の調査も兼ねて執筆したものとなります。WordPress.comから引っ越した際、表が崩れたり文章が途切れてしまっていた部分も全体的に修正しました。

指定した範囲の乱数を作る際の罠(前編)
はじめにみなさん。「指定した範囲で乱数を作りたい」と思ったとき、普段どうしていますか?今日は、そんな乱数生成の小ネタをご紹介します。 指定した範囲の乱数を作る際の罠(前編)←いまこちら 指定した範囲の乱数を作る際の罠(後編) 指定した範囲の...
指定した範囲の乱数を作る際の罠(後編)
はじめにみなさん、こんにちは!今回は引き続き「指定した範囲の乱数を作る際の罠」の後編で、「解答編」となります。 指定した範囲の乱数を作る際の罠(前編) 指定した範囲の乱数を作る際の罠(後編)←いまここ 指定した範囲の乱数を作る際の罠(実戦編...
指定した範囲の乱数を作る際の罠(実戦編)
はじめにみなさん、こんにちは。これまで2回にわたって、指定した範囲で乱数を作る方法や、その「罠」について紹介してきました。改めて振り返ると、乱数って意外と奥が深いですね。読み忘れた方のためにリンクを貼っておきます! 指定した範囲の乱数を作る...

アルゴリズム系

画像処理プログラムを作成したり、数値計算ライブラリを作成する際に、気になったことを記事にしたものです。

線分計算のBresenhamアルゴリズムって本当には早いのかな

途中文章が意味不明になっていた部分があったのですが主張したい部分を修正しました。また段落の構成も修正。

線分計算のBresenhamアルゴリズムって本当には早いのかな
はじめに「線を描画する」というのはグラフィックプログラミングの基本です。一見単純に思える直線描写にも、さまざまなアプローチや工夫があります。この記事では、自作した素直な直線描写法から、有名なブレゼンハムのアルゴリズム、さらには整数演算だけで...

RSA暗号の解説に出てくる数値の逆数のmod

数式はワードで作成して画像化したものを張っていたのですが、Mathjax-Latexで書き直しました。​

RSA暗号の解説に出てくる数値の逆数のmod
はじめにRSA暗号を学ぶとき、必ずと言っていいほど登場する式があります。初めて見ると「えっ?逆数?」「modってなに?」と疑問がわいてきますよね。今回は、このモジュラ逆数(modular inverse)の意味や使い方について解説します。R...

MATLAB系

研究室で信号処理や統計的なことを計算したりMATLABを使っていたことがあったのですが、MATLABのバージョンの新旧で動作する/しないがあり、同じような動きをするコードをどうにか実装できないかということで調べた時に作成した記事です。どれも説明不足の記事だったため、説明を加筆しました。

MATLABのbsxfunを独自実装する

MATLABのbsxfunを独自実装する
はじめにMATLABの配列演算でよく使われる便利な関数のひとつにbsxfunがあります。bsxfunは、サイズの異なる配列同士を自動的に拡張(ブロードキャスト)して、要素ごとの演算をしてくれる関数です。例えば、ベクトルやスカラーとの演算も簡...

重複しないランダムなインデックス列をJavaとMATLABで作る

重複しないランダムなインデックス列をJavaとMATLABで作る
はじめにランダムにデータを並び替えたい、ランダムな順番でアクセスしたい…そんな時に役立つのが「重複しないランダムなインデックス列」です。この記事では「一様分布かつ重複しないランダムなインデックス列」を生成するプログラムをJavaとMATLA...

MATLABを用いた相関係数のt検定

MATLABを用いた相関係数のt検定
はじめに統計解析でよく登場する「相関係数のt検定」。「相関が本当に有意なのか?」を確かめるためには、相関係数をもとにt検定を行い、“偶然”でないかどうかを確かめる必要があります。MATLABでは、この検定もシンプルに実装できます。今回はMA...

MATLABでExcelのTDISTとTINVを使う

MATLABでExcelのTDISTとTINVを使う
はじめにみなさん、Excelの統計関数をMATLABで使いたいと思ったことはありませんか?Excelにはt検定などでよく使うTDIST関数やTINV関数がありますが、MATLABには同じ名前の関数はありません。そこで今回は、ExcelのTD...

おわりに

昔書いた記事を振り返り、今の自分の書き方や読みやすさの基準で見直してみるのは、意外と楽しい作業でした。

これまで目にしたことのなかった記事や、少しでも気になる内容があれば、この機会にぜひ読んでいただけると嬉しいです。

最後までお読みいただき、ありがとうございました。

コメント

タイトルとURLをコピーしました