如何使用..命令

时间:2014-10-03 19:38:19

标签: loops

这就是我所做的。我需要5个随机数,所以第一个命令没问题。之后,我想要概率公式,但我无法正确编写。 我需要找到五个随机数中每一个的概率。之后我需要找到从1到89的所有n个数字的概率,并在这里做一个像这样的图形..

2 个答案:

答案 0 :(得分:2)

prod(1:365)(例如,365!)评估为Inf,因此无效。相反,使用这个:

b <- function(n) 1 - prod(365:(365-(n-1))/365)

这利用了两个事实:

  1. 365!/(365-N)! = prod(365,364,...,365-(n-1)),即只有n个项的乘积。
  2. 每个术语除以365(在分母中通过365 ^ n)。
  3. 所以结果与:prod(1,364 / 365,363 / 365,...,(365-(n-1))/ 365))相同。这个产品是可以计算的。

    但还有一个问题:在plot(...)中使用此函数必须“向量化”,即必须将向量作为参数并返回与结果相同长度的向量。为此,请使用R。

    中的Vectorize(...)功能
    b <- Vectorize(function(n) 1 - prod(365:(365-(n-1))/365))
    

    现在您可以使用plot(...)

    plot(1:89,b(1:89), type="l")
    

答案 1 :(得分:0)

你的函数中有一个额外的括号,应该是

b <- function(n){
   x<- prod(1:365)
   P <- ((x)/(365^n)*(prod(1:365-n)))
   Pn <- 1-P
}