Вопрос из интервью: О вероятности

Вопрос на собеседовании:

Дана функция f (x ), который 1/4 раза возвращает 0, 3/4 раза возвращает 1. Напишите функцию g (x), используя f (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)
            }       
    }
}

Я прав? Какое у вас решение? (Вы можете использовать любой язык)

36
задан Jim Lewis 19 February 2011 в 17:10
поделиться