 Интересные задачи по программированию и логике
 Интересные задачи по программированию и логике 
Создана: 09 Августа 2009 Вск 17:07:11.
Раздел: "Интернет-флейм"
Сообщений в теме: 585, просмотров: 252937
- 
просто Паха писал : :
 bits=(1<<sequence)-1;Лохмастерье писал:for(i=0; i<sequence; i++) bits=(bits<<1)+1;
 сорри, не удержался  
 
 Я всегда за конструктивные поправки. Спасибо, Паха. Никогда не держись  
 Меня ещё (n&bits) != bits смущает - коряво как-то.
- 
(n&bits) < bits - всего две ассемблерных инструкции 
 хотя и в исходном варианте будет так же. нечего тут оптимизировать 
- 
 
 Для программиста это много. Мой друг работает в блумберге сейчас уже за $125к и постоянно ходит на интервью в голден сакс и другие богатые конторы где платят больше. Мечтает, о $300-400 к  
 
 
 
 
 P.S. Знаешь что такое CFA ?
- 
Эрхафан писал :  Предлагаю усложнить задачку с шарами до поисков алгоритма для числа шаров b (варьирующегося между 1 и числом этажей) :  Предлагаю усложнить задачку с шарами до поисков алгоритма для числа шаров b (варьирующегося между 1 и числом этажей)
 N - высота небоскрёба.
 n - высота, эквивалентная предельной прочности шара (- 1).
 b - чиcло шаров.
 
 Задача по-моему эквивалентна следующей.
 Есть произвольное целое число n изменяющееся от 0 до N-1
 Мы хотим записать его в системе счисления с основанием S чтобы потребовалось разрядов не более чем b.
 
 Сколько максимально измерений потребуется для преобразования величины n в эту систему счисления?
 Похоже что S*b.
 
 Чему равно S?
 На первый взгляд N^(1/b) (корень степени b из N).
 
 То есть потребуется b * N^(1/b) измерений.
 
 Какая процедура измерения?
 Каждый разряд в новой системе счисления начиная со старшего заканчивая младшим увеличиваем от 0 до S-1 с шагом 1 пока полученное число меньше n.
 
 Как это использовать для шаров?
 Сначала проводим испытания с шагом S^(b-1) пока не разобьём шар, затем с шагом S^(b-2) от последнего успешного испытания пока не разобьём шар, ..., в конце с шагом 1 (S^0) пока не разобьём последний шар.
 
 Гораздо интереснее оценить среднее число испытаний, но для этого нужно знать распределение целочисленной случайной величины n.
- 
GENA_DJ писал :Мы хотим записать его в системе счисления с основанием S чтобы потребовалось разрядов не более чем b. :Мы хотим записать его в системе счисления с основанием S чтобы потребовалось разрядов не более чем b.
 Это подход "в лоб" (как раз пример с десятками в задаче про 100 этажей и 2 шара). Но "14" показало неэффективность такого подхода с использованием разрядов целиком.
- 
GENA_DJ писал :Гораздо интереснее оценить среднее число испытаний, но для этого нужно знать распределение целочисленной случайной величины n. :Гораздо интереснее оценить среднее число испытаний, но для этого нужно знать распределение целочисленной случайной величины n.
 Если не указывается иное, то распределение равномерное. Т.е. любое допустимое значение n равновероятно.
 
 ========
 Сложно излагаете. Паха, кажись, просто сформулировал: при определении интервала, содержащего число n - начинаем стоять перед той же задачой, но уже в миниатюре (небоскрёб пониже предыдущего). И так далее. Рекурсия наклёвывается, причем оправданная.
 
 ========
 Среднее число испытаний можно получить довольно просто, а вот как с "социалкой" быть - не знаю (Получившийся подинтервал(ы) может оказаться любым). При b=2 было просто - фиксаж в 14 при первоначальном шаге, откуда следовало, что "социалка"=14.
 Не допираю. Хелп!
- 
да 
 
 А если основание s сделать нецелым?Эрхафан писал : Но "14" показало неэффективность такого подхода с использованием разрядов целиком. : Но "14" показало неэффективность такого подхода с использованием разрядов целиком.
- 
- 
 
 Ага, 14 ровно. То решение которое я выше привел дает точный ответ и для среднего и для всех моментов распределения.  
 
 Самое интересное, что некоторые могут решить эту задачу в голове, я не могу  
 
 Ее как раз дают на интервью на работу с зарплатой $400к

 Интернет-флейм
 Интернет-флейм















 
  
