1)ラプラス分布は、パラメータとしてに実装することができる$ \ mathbf {R} $から$ [0,1] $までの関数である明示密度(hereを参照)そのメンバ変数には、たとえば、分布のパラメータが含まれているクラスの関数です。何か:
class LaplaceRandomVariable
{
double _b;
double _mu;
public:
LaplaceRandomVariable(double b, double mu)
{
_b = b;
_mu = mu;
}
double Distribution(double x) const
{
return (0.5/_b) * exp(-abs(x - _mu)/_b); //you'll need error checking for _b could be zero
}
};
あなたに画像を与えます。
2)正規分布については、正規乱数変数は$ \ mathbf {R} $の値を持ち、分布も同様です。 double
をint
にキャストするのではなく、私はむしろ、与えられた平均と分散を持つ正規確率変数の離散近似をバイナリランダム変数で使用したいと思います。 (例えば、thisを参照してください)大まかに言えば、正規分布を見たい場合、char
の数字は無限大になります。それはまさに上記の二項近似が為されたものです。
より正確には、$ B(n、p)$分布を考えてみましょう(私たちが共通の基準を持つためのウィキペディアの表記法)。 nが$ + \ infty $に収束するとき、$ B(n、p)$は正規分布$ N(np、np(1-p))$に近似する傾向があります。あなたは、あなたのchar
の正規分布の平均mと分散vを与えられます。したがって、m = npおよびv = np(1-p)。 B(n、p)は{0、...、n}の値を持ち、char
のスパン{97、...、122} = {0、...、25} +97これは、p = m/25およびv = m *(1-m/25)を誘発する。 {0、...、25}の値を持つB(m/25、m *(1-m/25))をシミュレートしようとしています。あなたは97を追加し、対応するchar
を取得するにはstatic_cast<char>
このintになります。
この時点で残っていることは、以前に確立されたnとpの値でB(n、p)をシミュレートすることです。そして、このために、使用すること自由に感じ:
http://www.cplusplus.com/reference/random/binomial_distribution/
から構成することができケース相当品)?例えば、それは、例えば、文字が連続して符号化されるASCIIまたは他の符号化。 –
あなたはそれを試しましたか?そのソリューションのあなたの問題は何ですか? – Hayt
Boostのソリューションを使用できない場合。org、なぜStackOverflow.comのソリューションを使用できると思いますか?ライセンスはそれほど違いはありません。 – MSalters