需要使用R在公式中使用随机生成的数字的帮助吗

需要使用R在公式中使用随机生成的数字的帮助吗,r,random,montecarlo,R,Random,Montecarlo,这是我下面的代码,我得到的只是一个相同值的列表,看起来R并不是随机生成的值,运行方程,然后给出结果 montecarlo = function(r,v,t,x,k,n) { y = rnorm(n) stockprice = x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t)) MCOP = exp(-r*t)*(stockprice-k) return(MCOP) } 如果我设置n=100,则此代码的输出仅为单个值的100倍。让我们添加一些pr

这是我下面的代码,我得到的只是一个相同值的列表,看起来R并不是随机生成的值,运行方程,然后给出结果

montecarlo = function(r,v,t,x,k,n) {
   y = rnorm(n)
   stockprice = x*exp((-v*sqrt(t)*y)+((r-(.5*v^2))*t))
   MCOP = exp(-r*t)*(stockprice-k)
   return(MCOP)
}
如果我设置n=100,则此代码的输出仅为单个值的100倍。让我们添加一些
print()
语句(您也可以使用
debug(montecarlo)
以交互方式逐步执行函数):

现在尝试以下功能:

set.seed(101)
m <- montecarlo(.45,65,1,30,29,100)
[1] -2232.440 -1961.294  ## exponent values
[1] 0 0                  ## stockprice values
set.seed(101)

m传递给调用的其他值是什么?任意设置这些值,我可以生成
n=100
值。可能您正在将函数降低到极限情况?设置
montecarlo(n=100,r=1,v=1,x=1,t=1,k=1)
会导致
n=100
不同的值您为r,v,t,x,k输入了哪些值?当我输入‘montecarlo(1,2,3,4,5,10)’时,我会得到不同的值。这是我给montecarlo(45,65,1,30,29100)的命令,我也会使用。45在某些情况下,比如montecarlo(.45,65,1,30,29100)谢谢你,Ben,我已经弄明白了,你是对的,这些值中的一些需要小一点,尽管情绪受到赞赏,StackOverflow反对;如果这个答案有用,你可以投票给它(如果你有足够的声誉),在任何情况下,如果它满意地回答了你的问题,你被鼓励点击复选标记接受它。
set.seed(101)
m <- montecarlo(.45,65,1,30,29,100)
[1] -2232.440 -1961.294  ## exponent values
[1] 0 0                  ## stockprice values