1 0 随机模拟 只要你自己试试模拟随机现象几次,就会加强对概率的了解,比读很多页的数理统计和概率论的文章还有用
学习模拟,不仅是为了解模拟本身,也是为更了解概率而了解模拟
1 伪随机数 生成(0,1)之间均匀分布的伪随机数的函数为 u niform() di uniform() di uniform() di uniform() 每次都得到一个大于零小于 1 的随机数
如果要生成一位数的随机数(即 0,1,2,3,4,5,6,7,8,9),可以取小数点后第一位数,通常用下面的命令 di int(10*uniform()) 两位随机数(0-99)则取小数点后两位小数,即 di int(100*uniform()) 任意均匀分布随机数(a,b)由下述函数得到 a+(b-a)*u niform() 任意均匀分布整数随机数(a,b)由下述函数得到 a+int((b-a)*u niform()) 也可以同时生成多个随机数,然后将该随机数赋给某个变量
要注意的是,电脑中给出的随机数不是真正的随机数,而是伪随机数,因为它是按照一定的规律生成的
如果给定基于生成伪随机数的初始数值(即 set seed #),则对相同的初始数值,生成的伪随机数序列完全一样
*============================begin==================================== clear set obs 10 gen x1=uniform() gen x2=uniform() //注意到 x1 与 x2 不一样 set seed 1234 gen y1=uniform() set seed 1234 gen y2=uniform() gen y3=uniform() //注意到 y1 与 y2 一样,但均与 y3 不同 set seed 5634 gen z