アルゴリズム

5/5ページ
C#

[C#] モンテカルロ法で円周率πを求める

モンテカルロ法とは モンテカルロ法 とは、乱数を使っていろいろ計算してみよう、みたいなことです。詳しくはWikipediaをご覧下さい。 モンテカルロ法のアルゴリズムを使って、円周率πを計算してみます。 円周率πのを求める考え方 1辺が1の正方形を用意します。 そこに半径1の円の1/4を書きます。 正方形の内側にランダムに1点選び、円の内側かどうかを判定します。 3の処理をn回繰り返します。 円の […]

C#

[C#] Xorshiftの実装

XorShiftとは 疑似乱数生成方法の一つにXorshiftというものがあります。 wikipediaによると、Xorshiftとは、演算が排他的論理和とビットシフトのみであるため高速である、という特徴があります。 Xorshiftによる乱数生成をC#で書いてみました。 C#の実装例 public class Xorshift { // 内部メモリ private UInt32 x; priva […]

C#

[C#] UnixTimeを変換する方法

C# で UnixTime を変換する方法 UnixTimeとは、1970年1月1日からの経過秒数で表される日付の形式です。文字通りUnix系のOSで使われる表現方法でもあります。 .NET4.6以降では、標準での変換方法が提供されていますが、それ以前では変換関数を用意する必要があります。 DateTime型からUnixTimeへの変換とその逆の変換について、サンプルを以下に示します。 .NET […]

[Haskell] 10進数からN進数への変換処理

Haskellのお勉強 今日もHaskellの勉強がてら10進数からN進数(1..16進数)への変換処理を書いてみようと思います。関数に変換する数値と、何進数に変換するかの数値を渡すと、変換された文字列がかえってくるイメージです。 早速ですがHaskellのコードです。N進数の適当な言葉が英語で見つからなかったのでNStringとしました。 Haskellのコード intToNString :: […]

[Haskell] 素数判定(試し割り,エラトステネスの篩)

Haskellのお勉強 絶賛Haskell強化週間中です。これまでハノイの塔、ユークリッドの互除法、それぞれのアルゴリズムをHaskellで実装しましたが、今回は素数判定をしてみようと思います。 素数判定にはさまざまな判定法があるらしいのですが、今回は単純な試し割りによる素数判定とエラトステネスの篩をHaskellで書いてみます。 いずれも Wikipediaに記事が有りますのでそれを参考にしてい […]

[Haskell] ユークリッドの互除法で最大公約数を求める

Haskellのお勉強 ハノイの塔の記事のときと同じように、今回もHaskellのお勉強のためにユークリッドの互除法による最大公約数の取得処理をHaskellで実装してみました。 まずは実装したコードを載せます。 main = print $ getGcd 1071 1029 -- 21 -- 最大公約数を求める関数 getGcd :: Int -> Int -> Int getGcd […]

1 5