Викторины для программистов
164 subscribers
521 photos
8 links
Канал в игровой форме предлагает интересные задачки и их решения. Интересный и хороший способ поддержать и обновить свои знания. Предлагайте свои вопросы @Nevrotkampot
Download Telegram
Доброе утро. Решил немного продолжить тренд задач по программированию на технических интервью. Итак, вот ещё одна реальная задачка с которой я встретился на одном из собеседований. Компанию называть не буду, скажу лишь что это одна из компаний, в области разработки алгоритмов, связанных с распознаванием голоса, ведущая деятельность в Санкт-Петербурге. Когда группа разрастётся, у меня будет стимул публиковать ответы. А пока вот несколько задачек
Пусть у нас есть компонент (например, API), разработанный не нами и, следовательно, мы не можем его модифицировать.
Этот компонент является по сути Singleton и реализует всего одну функцию:
int Sum (int , int );
Эта функция реализует сложение двух простых чисел.
Однако у компонента есть одна проблема — он не может работать в многопоточной среде,
т. е. данный метод может быть вызван только из одного определенного потока, такого который создал этот компонент.
В качестве аналогии можно привести пример из WinForms - с оконной формой тоже можно работать только из потока, который ее создал.
Кроме того, у нас уже разработано многопоточное приложение каждый из потоков которого обращается к данному компоненту.
Необходимо предложить решение данной проблемы.
Задача 2. Имеется некий конвейер, состоящий из двух пересекающихся в нескольких местах очередей A и B, содержащих простые числа:
Конвейер предполагается использовать следующим образом - проталкивать простые числа по очереди в любую из очередей A или B и получать число на выходе из данной очереди с помощью функций:
int PushA(int);
int PushB(int);

При этом числа, находящиеся на пересечении очередей, принадлежат обеим очередям,
т. е. будут проталкиваться по той очереди, в которую в данный момент проталкивают новое число.
Необходимо предложить хотя бы один способ реализации такого конвейера, рассказать из каких классов будет состоять решение, какие контейнеры и почему будут использованы.
Перед Вами стоит именно задача реализации конвейера, предполагается, что задача инициализации решена,
в конструктор класса Вам передали все необходимые данные для инициализации (точки пересечения, длины рёбер и тд).
Добрый день! Вы должны пройти с нами чтобы ответить на несколько вопросов по экстремальному программированию
XP В соответствии с одной из рекомендаций XP, "Система должна быть собрана и все тесты должны пройти в течении..."
Anonymous Quiz
15%
часа
15%
15-ти минут
15%
30-ти минут
45%
5-ти минут
9%
10-ти минут
XP Какой фактор лежит в центре треугольника управления проектами?
Anonymous Quiz
28%
Объем работ (Scope)
28%
Время (Time)
28%
Качество (Quality)
16%
Цена (Cost)
XP В соответствии с XP, как часто нужно проводить интеграцию своего кода с репозиторием?
Anonymous Quiz
46%
раз в день
11%
раз в неделю
6%
несколько раз в неделю
37%
более раза в день
XP Одна из практик XP предлагает держать этот фактор открытым для маневрирования во время реализации проекта:
Anonymous Quiz
9%
Цена (Cost)
13%
Качество (Quality)
34%
Время (Time)
44%
Объем работ (Scope)
XP Какая техника XP унаследовала методики от "V-образной" (V-Model) модели жизненого цикла?
Anonymous Quiz
52%
Test-Driven Development
10%
40
24%
Planning game
14%
Small releases