今までC言語しかやったことなくて、Pythonは初めてです。よろしくお願いします。

【 課題 】
g(x_1,x_2,...,x_n)=f_a(X_a)f_b(X_b)...f_k(X_k)
と書けるとする.ただし,X={x_1,x_2,...,x_n},X_aやX_bはXの部分集合である.

確率伝播法(Sum-Product Algorithm)によって,周辺化関数の計算量が減少していることを示すプログラムをかけ.
ただし,計算量は(足し算を行う回数)と(掛け算を行う回数)の和とする.
また,関数g,f_a,f_b,...,f_kはプログラムの中で定義すること.
例:g=x(y+z),f_a=x,f_b=y+z などとプログラムに書き,その時の周辺化関数の計算量について調べる

ヒント:このプログラムにおいて,
入力:関数gやf_a
出力:確率伝播法を使う前の計算量&使ったあとの計算量
だが、計算量をはかる代わりに、確率伝播法を使ったあとの方が
「計算にかかった時間」が短ければそれで計算量が減少したことを示せる.

【 用語 】
簡単な定義と例はこちらで.簡単に作成しました.
https://docs.google.com/file/d/0BwsJZI6jzfNzMnV3dUVvazBGODA/

【 期限 】期限:8/18
【 Ver  】Python2.3 か Python3.3 OS:Windows7
【 補足 】初心者なんでお願いします.Pyscripterというのを使っています.