-6

我用 R 有这个功能。

immediate.amput.EV <- function(Dead.prob=.010,Dead.cost=40000,Alive.prob=.0990,Alive.cost=50000,high=100,p.payoff=1) {
  return((Dead.prob * Dead.cost) + (Alive.prob * Alive.cost))
}     

immediate.amput.EV()

It's supposed to output : (0.010 * 40000) + (0.990 * 50000) = 400 + 49500 = 49900
Instead it gives me: 5350

你能告诉我为什么吗?谢谢..

4

2 回答 2

1

正如 Brian Hannays 所说:更改Alive.probto的定义1-Dead.prob。一个好的编程习惯是尽量避免多余的(然后可能是冲突的)定义......

function(Dead.prob=.010,Dead.cost=40000,Alive.prob=1-Dead.prob,Alive.cost=50000,high=100,p.payoff=1) {
  return((Dead.prob * Dead.cost) + (Alive.prob * Alive.cost))
}
于 2013-10-24T18:36:41.387 回答
0

你的数学是错误的。在您的评论中,您添加了一个额外的 0

400 + 4950   NOT 49500


.01 *40000 =400 and .099*50000= 4950 and 400+4950 =5350

接受答案或删除您的问题。

于 2013-10-24T18:36:33.317 回答