写Factor Graphic Model 的Gibbs 抽样的时候,一直纠结怎么结果一直没变,后来的经过是这样的。
我又发现了我在循环之中传种子(时间),这也是不好的,因为两次种子很相近,导致每次生成的随机变量都很接近,这样就不是均匀分布了!
(1)偶然发现了为了生成U(0,1)分布的随机变量,我居然这样干了:
int a = rand()/INT_MAX;
(2)等我修改完之后:
int a = rand()/RAND_MAX; //RAND_MAX 比INT_MAX 小了好几个数量级
我又发现了我在循环之中传种子(时间),这也是不好的,因为两次种子很相近,导致每次生成的随机变量都很接近,这样就不是均匀分布了!
(3)值得注意的是mod n 求余的技巧 和 U(0,1)放大的异同。