C# プログラム小品集    

練習、学習、腕試しのために作ったプログラムのソースコードを掲載しています。プログラミングの学習、アルゴリズムの学習にお役に立てれば幸いです。
さらに、掲載するプログラムの数を増やしてゆく予定です。
※ Silverlightの記述があるものは、画面上で動作を確認することができます。
■初等数学関連■ 
階乗の計算 再帰を使ったコード
素数の計算 エラトステネスのふるいで素数を求める
メビウス関数 素因数分解しないで求めています 
フィボナッチ数列 yield return 構文を使って、数列を作りだす
最大公約数 ユークリッドの互除法 (Silverlight)
最小公倍数 最大公約数を利用し求める (Silverlight)
素因数分解 Brute force methodによる素因数分解 (Silverlight)
完全数を求める メルセンヌ素数から完全数を導く(Silverlight)
友愛数を求める 真の約数を求めて友愛数を導く (Silverlight)
婚約数を求める   友愛数に似てます。ListBoxに結果をバインド(Silverlight)
ゴールドバッハの予想 偶数は2つの素数の和で表される? を検証してみる (silverlight)
三角数 三角数に関連する3つの短いコード(silverlight)
円周率を10000桁まで求める マチンの公式を使い1万桁まで求める(Silverlight)
カプレカ数 String.SubStringで文字列を分割(Silverlight)
N寄生数(Parastic Number) 筆算と同様の方法で巨大な数(N寄生数)を求める(silverlight)
エマープかつ上昇数 Emirpでかつ上昇数である自然数を求める(Silverlight)
二乗して回文数となる非回文数 1〜100000の整数で、二乗して回文数となる非回文数を求める(Silverlight)

■組み合わせ■
順列を求める 与えられたすべての要素を使った順列を求めています
順列を求める(2) n個の異なる要素の中から m個を選ぶ順列 (Silverlight)
組合せ n個の異なる要素の中から m個を選ぶ組合せ (Silverlight)
攪乱順列 (完全順列) i番目の要素が i でない順列を求める (Silverlight)

■図形■
凸多角形の完全グラフ 凸多角形の完全グラフの一筆書き (Silverlight)
凸多角形の外周を引く 複数の点から凸多角形の外周を引く(Silverlight)
ヒルベルト曲線 フラクタル図形の再帰処理で描く (Silverlight)
ドラゴン曲線 フラクタル図形の再帰処理で描く-第2弾。(Silverlight)
コッホ曲線 フラクタル図形の再帰処理で描く-第3弾。(Silverlight)
リサジュー曲線 互いに直交する二つの単振動を合成して得られる曲線を描く (Silverlight)

■シミュレーション■
2次元ランダムウォーク 2次元ランダムウォークの動きを可視化 (Silverlight)
1次元ランダムウォーク ±5%で遷移する1次元ランダムウォーク(Silverlight)
交通流のモデル (ASEPモデル) 100個のスレッドを起動して交通流をシミュレート (Silverlight)

■セルオートマトン■
ルール30 ルール30と呼ばれる1次元セルオートマトン (Silverlight)
シェルピンスキーのギャスケット ルール90と呼ばれる1次元セルオートマトン (Silverlight)
ラングトンのアリ ランダムな動きが一転し、直線へ変わる不思議 (Silverlight)

■パズル関連■
MagicStarを解く MagicStar(星陣)を深さ優先探索で解く(Silverlight)
8クィーンパズル N-Queenに対応しています。
碁石拾い 日本古来の碁石を使ったパズルを再帰で解く (Silverlight)
ナイト(騎士)巡回問題 バックトラックでナイト巡回問題を解く
ナイト(騎士)の最適配置 チェス盤に騎士を配置し効き筋で埋めます (Silverlight)
ステインハウスの三角形  整数のビットパターンで組合せを求める (Silverlight)
Triangle15パズル 順列が問題を解くカギ (Silverlight)
コイン150 100円玉と50円玉をつかったパズルを深さ優先探索で解く (Silverlight)
覆銭問題 Eventを発行し途中経過を知らせる (Silverlight)
割り切れる4桁の逆転数 逆転した数で割り切れる4桁の数を得る
巡回数 n倍すると巡回する自然数を求める (Silverlight)
小町算  1-9の数字と+−で100にする:LINQで組合せを求める 
2乗した値が1-9で構成 2乗した値と求めた値が1-9で構成される3桁の数を得る
小町数となる単位分数 約分して1/nとなる数の分母と分子が小町数 (Silverlight)
3つの式が等しくなる小町数 ○○-○=○○/○=○+○*○が小町数 (Silverlight)
素因数分解小町 素因数分解した結果の値が1-9で構成される数を求める (Silverlight)
小町リング 円の中の数の合計が等しくる小町数 (Silverlight)
センチュリーパズル K + N / D = 100 のK,N,Dが小町数 (Silverlight)
リングナンバーの最大公約数 16個の数字の最大公約数を求める(Silverlight)
二乗して回文となる非回文数 例えば264は、264*264=69696 で結果が回文となる (Silverlight)

■ボードゲーム(の一部)■
梅花碁の勝ち判定 梅花碁の勝ちパターンを見つける (Silverlight)
8クィーンゲーム 8Queenパズルのゲーム版. 単純な思考ルーチン (Silverlight)

■その他■
部分和問題を解く 部分和問題(Subset Sum Problem)を動的計画法で解く (Silverlight)
逆ポーランド記法の計算 逆ポーランド記法をスタックを用い計算する (Silverlight)
逆ポーランド記法への変換 数式を逆ポーランド記法に変換し計算をする(Silverlight)
マージソート マージソートのサンプルコード。ジェネリックス利用で型に非依存。
FizzBuzz問題 FizzBuzzの一般化を試みています。
簡易catコマンド IEnumerable<T>の実装サンプル
簡易tailコマンド リングバッファーの実装サンプル
2次元配列の回転 基本機能の組み合わせで多機能化を実現 (Silverlight)
最大面積の領域を求める マウスのドラッグに対応する(Silverlight)

Silverlightアプリは、無償で利用できる 「Visual Web Developer Express」 +  Microsoft Silverlight  Tools で作成しています。