Задать вопрос
  • Как угадать возраст за наименьшее кол-во попыток?

    @Mercury13
    Программист на «си с крестами» и не только
    Бинарный поиск, однако точка деления — не (a+b)/2, а медиана куска распределения от a до b (т.е. round(F−1([F(a) + F(b)]/2)); F(·) — функция распределения, тупо переделанная из кусочно-постоянного вида в кусочно-линейный, сплайновый или ещё какой-нибудь).
    Немного неоптимально, но крайне просто.

    З.Ы. Эта штука достаточно оптимальна для «гладких» распределений. В общем случае неоптимальна — например, если у нас три возраста с вероятностями 0,45, 0,1 и 0,45, стоит спросить первый, потом третий и уж при полном невезении второй (среднее 1,65 запроса), а не брать среднее, а затем — первое или второе (в среднем 1,9 запросов).

    Если нужен точный оптимум — решать задачу динамического программирования по критерию
    N[a,b] = min{c} (1 + (N[a,c−1]p[a,c−1] + N[c+1,b]p[c+1,b]) / p[a,b]).
    Граничные условия: при a = b N[a,b] = 1; при a>b N[a,b] = 0.
    p[a,b] — суммарная вероятность от a до b включительно; вычисляется как sum[b]−sum[a−1]; sum[i] = sum{x <= i} p(x).
    N[0,M] = ?

    Или, обозначив Q[a,b] как N[a,b]p[a,b],
    Q[a,b] = min{c} (p[c] + Q[a,c−1] + Q[c+1,b]).
    Так как p[0,M] = 1, то Q[0,M] = N[0,M].
    Граничные условия: при a = b Q[a,b] = p[a]; при a>b Q[a,b] = 0.
    Q[0,M] = ?

    Решается задача за O(M²) операций. Если нужно хранить всю информацию, чтобы в нужный момент прокрутить цепь запросов — O(M²) памяти; если только указать оптимум — можно обойтись O(M).
    Ответ написан
    3 комментария
  • Можно задать вопрос и тут же самому на него ответить - фича или баг?

    Фича
    Ответ написан
    Комментировать
  • Как написать приложение для выгрузки статистики Яндекс.Директ через API «нулю» с нуля?

    Able1991
    @Able1991
    Пишу на рельсах
    напишите скрипт на руби или питоне который будет дергать апи яндекса, и засуньте его вызов в крон или task manager в windows, если выберешь руби то легко найдешь нужные гемы для реализации
    к примеру restclient - для отправки запросов к апи, writeexcel для выгрузки данных в exel, собственно задача не из самых сложных, если посидите денек, разберетесь
    Ответ написан
    1 комментарий
  • Как написать приложение для выгрузки статистики Яндекс.Директ через API «нулю» с нуля?

    viktorvsk
    @viktorvsk
    Предположу, что если Вы решаете практические задачи, то врядли вам очень интересно настраивать *.nix окружение и заниматься всеми остальными инфраструктурными делами.

    Если Вы хотите взаимодействовать с апи (метрики или чего-то еще, оно на то и апи), то я бы написал несколько простых функций на javascript, завернул их в какой-нибудь неказистый интерфейс на html странице и выложил бы ее на гитхаб, что бы доступ был всегда и везде. Опыт работы с апи на javascript будет полезен, например, если захотите вручную управлять целями метрики (что б при копировании текста из блока "достигалась" цель yaCounterID.reachGoal('phone_copy'), к примеру).

    Конечно, javascript так легко не сохранит вам данные в файл или в базу, но для начала можно немного упростить и автоматизировать процессы. В будущем можно использовать localstorage, indexedDB. Может получится удобное расширение для браузера.

    Плюсы:
    - Не требуется установка ПО и ОС (браузер с удобной консолью всегда под рукой)
    - Хостить статику можно бесплатно на гитхабе, что бы получить доступ из любого места
    - Простые операции в javascript можно делать не обладая особо глубокими знаниями
    - Перспектива развития (расширение для браузера, мобильное приложение, backed+frontend)

    Минусы:
    - На начальном этапе нет возможности работать с файловой системой или базой данных
    - Код в опенсорс (минус ли?)
    Ответ написан
    3 комментария
  • Как вы учились управлять своим временем?

    AmonGeeks
    @AmonGeeks
    Как ни крути, но если ты задаёшься таким вопросом, то ты никогда не сможешь управлять временем. Это иллюзия. Время всегда будет управлять тобой. И не пиши мне ничего в ответ. Не трать своё время! )
    Ответ написан
    Комментировать