2008年12月14日日曜日

確率的な発注枚数

最大建て可能枚数の半分+コイントスの連続成功回数を売買枚数とするようにするには以下のようにカスタマイズします。

C:\Documents and Settings\ユーザ名\Local Settings\Application Data
 \CLICK-SECHatchukunPlus.exe_なんちゃら\なんちゃらのuser.config
の中の<configuration>要素内の<usersettings>要素内の<tomorrowplusplus.mimohuta.properties.settings>要素内に

<setting name="TransactionQuantityDecider" serializeas="String">
<value>
using System;
using System.Linq;
namespace Tomorrowplusplus.Mimohuta{
public class TransactionQuantityDecider{
Random random=new Random();
public int decide(int max){
int min=(int)Math.Ceiling(max/2.0);
return min+Enumerable.Repeat(1,max-min)
.TakeWhile((i)=&gt;random.NextDouble()&lt;0.5).Sum();
}
}
}
</value>
</setting>
<setting name="TransactionQuantityDecider_RequiredAssemblies" serializeas="String">
<value>System.Core.dll, mscorlib.dll</value>
</setting>

と記述します。

Linqが便利すぎて泣けてくる。それにC#コードで直接動作をカスタムするなんて高級な機能がいとも簡単に実現するCODEDOMとか本当C#って素敵。C#コードとは言えxml中に記述するので不等号や&を文字実体参照に置き換えなければいけないのが面倒だけど。

出た当初には見向きもせずにV3.0になってから使い出したから手放しに絶賛できるんだろうなあ。

0 件のコメント: