C# 配列、リストへのランダムアクセスの速度

C#

配列を使った時とリストを使った時とで、 ランダムアクセスのスピードがどれくらい違うのかを調べてみた。長さ 5e7 の配列の 0 番目の要素を 5e7 回見るとき、 配列では、86 ms で、 リストでは、95 ms であった。 2割ぐらい違う。ボトルネックがランダムア…

C# リストの連結の測度

C#

リストを要素とするリスト List> の要素を 全て連結させて1つのリストを作りたい。 例えば、{{3,2},{1,0},{-1}} を {3,2,1,0,-1} にしたい。 作戦とは2つ。 2重ループを用いて、要素の要素を全てリストに突っ込む Concat 関数を用いて、for 文1回で IEnu…

C# GetEnumerable<T> の実装

C#

public class MyClass : IEnumerable { public IEnumerator<T> GetEnumerator() { yield return null; } IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } } のようにする。メソッド IEnumerable.GetEnumerator を入れることが、 個</t>…

PDFの図が切れる

tex

問題の環境 matlabで作った図を編集して .eps で保存 .tex で、includegraphics を用いてその図を呼び出す willshell を使って、.dvi, .pdf を作る。 ということをやっていた。 .dvi の時点でそもそも切れていたり .dvi では OK だが、.pdf の時だけ切れたり…

C#でのメルセンヌツイスター

C#

C++マニアック,Mersenne Twister,メルセンヌ・ツイスタ,高性能擬似乱数発生器,C#ポート,Pseudo Random Number,csharp porting にコードがある。暇があるときにアルゴリズムを理解しないと。

ポーカーの役判定(ペア系)

ポーカーの役判定プログラム(C#): amongの雑記 を見た。 ストレート、フラッシュの判定は簡単にできるが、ペア系の判定が面倒だと思ったが、以下のコードでできる。 5枚のカードを持つリスト hand を受け取る。 int cnt = 0; for (int i = 0; i < hand.Co…

C++の動的ライブラリの作り方

C++

チュートリアル: ダイナミック リンク ライブラリの作成と使用 (C++) を見ればできた。 他のHPに書いてあるように、 プロジェクトの新規作成するときに、 クラスライブラリプロジェクトを選択するとよくわからないことになった。 上にあるように、"Win32 …