clear
set more off
capture program drop buffon
program define buffon, rclass
version 11.1
syntax [, obs(integer 1000), grade(int 100) ]
drop _all
local obs2 = int(`obs’*1.5)
set obs `obs2'
tempvar x0 y0 x1 y1 x2 y2
gen `y 0’ = uniform()
gen `x0’ = uniform()
keep if `y0’^2+`x0’^2<=1
keep if _n<=`obs’
gen `x1’ = uniform()*100
gen `y1’ = uniform()*100
gen `x2’ = `x1’+`x0’/sqrt(`x0’^2+`y0’^2)
gen `y2’ = `y1’+`y0’/sqrt(`x0’^2+`y0’^2)
gen hit = (int(`x1')~=int(`x2'))
sum hit
local temp = r(mean)
local pi = 2/`temp'
return scalar pi = `pi'
end
simulate pi=r(pi) , reps(1000): buffon, obs(10000)
此程序运行后,提示
`obs’ invalid name
an error occurred when simulate executed buffon
r(198);
end of do-file
怎么解决呀?