【发布时间】:2011-06-30 10:24:15
【问题描述】:
面试题:
给定一个函数 f(x),1/4 次返回 0,3/4 次返回 1。 用 f(x) 写一个函数 g(x),1/2 次返回 0,1/2 次返回 1。
我的实现是:
function g(x) = {
if (f(x) == 0){ // 1/4
var s = f(x)
if( s == 1) {// 3/4 * 1/4
return s // 3/16
} else {
g(x)
}
} else { // 3/4
var k = f(x)
if( k == 0) {// 1/4 * 3/4
return k // 3/16
} else {
g(x)
}
}
}
我说的对吗?你的解决方案是什么?(你可以使用任何语言)
【问题讨论】:
-
返回 0 / 1 还是打印 0 / 1?
-
返回。很抱歉造成混乱。
-
你的函数可能会陷入无限循环
-
@Dave,可以,但不太可能。 ;p
-
x的参数是干什么用的?好像没什么用。
标签: algorithm random probability