Главное меню

Новости:

SMF - Just Installed!

Как решить задачу про бар для необщительных людей?

Автор Moha, Март 15, 2024, 23:56

« назад - далее »

Moha

В бар ходят необщительные посетители. Вдоль барной стойки расположены 25 мест. Всякий раз, когда входит новый посетитель, он обязательно садится на самое дальнее, насколько это возможно, место от остальных гостей. Никто не садится рядом с кем-то: если посетитель входит и видит, что "свободных" мест нет, он тут же разворачивается и уходит из бара. Бармену, естественно, хочется, чтобы за стойкой сидело как можно больше клиентов. Если ему разрешено усадить первого посетителя на любое место, куда выгоднее его посадить с точки зрения бармена?

Kantua

Задача решается путем перебора возможных вариантов решения.
Если бармен посадит первого посетителя с края, то следующий посетитель сядет с другого края. Соответственно третий сядет по центру.
Если он посадит первого по центру, то второй и третий сядут по краям барной стойки.
Если он посадит клиента в любое место, то просчитать как будут рассаживаться посетители для бармена не представляется возможным. Соответственно этот вариант не имеет никакого смысла.
Таким образом. Бармен должен будет усадить первого гостя либо по центру, либо с самого края. Так как только в этих случаях ситуация может быть просчитана и спрогнозирована.
                                                                              

Hevi

Если посадить первого посетителя на третий стул от края, то будет следующее
00100000000000000000�00000
00100000000001000000�00000
00100000000001000010�00001
00100000100001000010�00001
00100000100001000010�01001
00100100100001000010�01001
00100100100101000010�01001
00100100100101010010�01001
10100100100101010010�01001
Таким образом, можно усадить 10 посетителей.
Если посадить первого с краю, будет следующая картина
10000000000000000000�00000
10000000000000000000�00001
10000000000010000000�00001
10000010000010000000�00001
10000010000010000010�00001
10010010000010000010�00001
10010010010010000010�00001
10010010010010010010�00001
10010010010010010010�01001
посетителей всего 9.
Аналогичная картина будет, если посадить первого посетителя по центру.