2016-10-27 2 views
-1

Я пытаюсь выяснить подход к этой проблеме, которую я пытаюсь решить. Проблема заключается в том, что у нас есть голосование за создание нового объекта в какой-то компании, и в политике компании указано, что выигрышный объект должен получить строго более половины голосов, которые должны быть построены, т. Е. Пусть n будет общее количество голосов, если n = 20, мы должны получить не менее 11 голосов для победы; если n = 21, нам также нужно 11 голосов для победы.Разделить алгоритм и разрешить реальную ситуацию

Моя задача - выяснить, какой объект является победителем, учитывая все голоса, или решить, что новый объект не строится.

Ввод этого алгоритма - это список «голосов» всех объектов, где каждый элемент является объектом объекта. Этот список может выглядеть следующим образом:

votes = [ 
    Bathroom, gym, food court, Bathroom, 
    spa, gym, Bathroom, Bathroom,Bathroom, game room, Bathroom 
] 

Наш алгоритм должен возвращать объект объекта, который является победителем голосования или вернуться None если ничего не имеет большинства голосов. Обратите внимание, что мы НЕ МОЖЕМ сортировать список голосов, потому что результат операции сравнения между объектами объектов, таких как «Ванная < спортзал» НЕ определен. Тем не менее, мы можем проверить равенство между объектами-кандидатами, потому что результат теста на равенство «Ванная == Ванная комната» хорошо определен

Я просто пытаюсь вычислить псевдокод для этого алгоритма и как этот алгоритм быть рекурсивно представленным с использованием техники разделения и покорения любая помощь, которую следует приветствовать.

+0

Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [по теме] (http://stackoverflow.com/help/on-topic) и [как спросить] (http://stackoverflow.com/help/how-to-ask) применяются здесь. StackOverflow не является кодовым или учебным сервисом. – Prune

+0

Почему, по-вашему, это требует рекурсии? – pjs

ответ

0

Решите в Python; build a Счетчик словарь от голосов. Извлечь самый популярный выбор и подсчет голосов с max по подсчету. Если vote_count> len (votes)/2.0, верните выбор - else return None.

Я не вижу, где это алгоритм разделения и покоя. Даже если вам приходится самостоятельно строить счетчик, это прямая итеративная проблема.

Смежные вопросы