ios取两个数之间的随机小数_2020-09-18:如何利用Stata生成随机数?

1. 生成(0,1)之间均匀分布的伪随机数的函数为:runiform()

dis runiform()
dis runiform()
dis runiform()
每次都得到一个大于零小于1的随机数。

2.生成整数随机数

若要生成一位数的随机数(即:0,1,2,3,……,9),可以取小数点后第一位数,通常使用如下命令:

dis int(10*runiform())

若要生成两位数的随机数(0~99),则取小数点后两位,命令如下:

dis int(100*runiform() )

生成任意均匀分布随机数(a,b),可由下述函数得到:

a+(b-a)*runiform()

生成任意均匀分布整数随机数(a,b),可由下述函数得到:

a+int((b-a)*runiform())

3.但要注意的是,电脑中给出的随机数并不是真正的随机数,而是伪随机数,因为它是按照一定的规律生成的。

如果给定基于生成伪随机数的初始数值(seed),即:set seed #,则对相同的初始数值,生成的伪随机数序列完全一样。

clear
set obs 10
gen var1=runiform()
gen var2=runiform() 

32b7c5ce17c48059a0c497cdc6687e3d.png
注意:var1 和 var2 数值不一样
set seed 1234
gen var3=runiform()
set seed 1234
gen var4=runiform() 
gen var5=runiform()

108928e8e6214687dfb8ff6c8d01a4c2.png
注意:var3 和 var4 数值一样,但均与var5不同
set seed 1235
gen var6=runiform()
set seed 1234
gen var7=runiform()  

8ee1d2cd2a54fcb4f30fbce915702e6d.png
注:var7 与 var3, var4 数值一样,但var6 与 var7 数值均不相同。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值