2つの確率変数X,Yをとる確率関数 を表現するのに適したデータ構造を教えて下さい
C++言語において、確率P(x,y)を実装しています。
P(x)については実装してみました。といってもmap
を利用してkey
が何回出現したかをsecond
のカウンターを利用して全体で割ったものですが、
std::map<int,int> P;
for(int i=0;i<10;i++)
P.insert(std::make_pair(i,0));
P.find(rand())->second++;
のような形で、P(x)と見立てたものです。
しかし、P(a,b)のような2つの変数となるとどのような実装方法が適切かわかりません。
P(a,b)を実装したい理由は、P(a,b,c)のように変数が3つの場合に、cは任意とした場合、cについて全て走査する必要があり効率的で無いからです。
どのようなデータ構造を利用すればよいでしょうか。