сайты - меню - вход - но­во­сти


Задания
Версия для печати и копирования в MS Word

В ан­глий­ском клубе ве­че­ром со­бра­лись n его чле­нов  левая круг­лая скоб­ка n боль­ше или равно 3 пра­вая круг­лая скоб­ка . По тра­ди­ци­ям клуба каж­дый при­нес с собой сок того вида, ко­то­рый он пред­по­чи­та­ет, в том ко­ли­че­стве, ко­то­рое он пла­ни­ру­ет вы­пить в те­че­ние ве­че­ра. Со­глас­но пра­ви­лам клуба, в любой мо­мент любые три его члена могут при­сесть за сто­лик и вы­пить сока (каж­дый  — сво­е­го) в любом ко­ли­че­стве, но обя­за­тель­но все трое по­ров­ну. До­ка­жи­те, что для того, чтобы все члены могли в те­че­ние ве­че­ра пол­но­стью вы­пить при­не­сен­ный с собой сок, не­об­хо­ди­мо и до­ста­точ­но, чтобы доля сока, при­не­сен­но­го любым чле­ном клуба, не пре­вос­хо­ди­ла одной трети от об­ще­го ко­ли­че­ства.

Спрятать решение

Ре­ше­ние.

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

До­ка­жем до­ста­точ­ность.

Спо­соб I. Про­ве­дем ин­дук­цию по числу чле­нов клуба. Если n=3, то по усло­вию за­да­чи доля каж­до­го из трех чле­нов клуба равна одной трети от об­ще­го ко­ли­че­ства, и они смо­гут вы­пить весь свой сок, при­сев за сто­лик один раз. База ин­дук­ции уста­нов­ле­на.

Пе­рей­дем к слу­чаю n боль­ше или равно 4 . Пред­по­ло­жим, что мак­си­маль­ная доля сока была лишь у од­но­го члена клуба. В этом слу­чае за сто­лик при­са­жи­ва­ют­ся член клуба с мак­си­маль­ной долей и два  — с ми­ни­маль­ной. Пока они пьют, доля каж­до­го из них в общем объ­е­ме умень­ша­ет­ся, а доли всех остав­ших­ся воз­рас­та­ют. Пусть они про­дол­жа­ют пить до тех пор, пока один из чле­нов клуба с наи­мень­шей долей не до­пьет все до конца (тогда остав­ши­е­ся члены клуба смо­гут до­пить весь свой сок в со­от­вет­ствии с пред­по­ло­же­ни­ем ин­дук­ции), либо наи­боль­шая из долей чле­нов клуба, не си­дя­щих за сто­ли­ком, не срав­ня­ет­ся с мак­си­маль­ной (при­над­ле­жа­щей од­но­му из си­дя­щих за сто­ли­ком).

Таким об­ра­зом, оста­ет­ся рас­смот­реть слу­чай, когда не менее чем у двух чле­нов клуба доля сока мак­си­маль­на. Пе­рей­дем к рас­смот­ре­нию этого слу­чая.

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

Пред­по­ло­жим, что доля мак­си­маль­на у k боль­ше или равно 3 чле­нов клуба. Опи­шем ал­го­ритм, поз­во­ля­ю­щий всем чле­нам клуба вы­пить весь при­не­сен­ный сок. Пусть Δ — раз­ни­ца в объ­е­ме сока между мак­си­маль­ной и сле­ду­ю­щей по ве­ли­чи­не до­ля­ми. Члены клуба с мак­си­маль­ной долей по­оче­ред­но пьют в трой­ках «по кругу» (то есть сна­ча­ла пер­вый со вто­рым и тре­тьим, затем вто­рой с тре­тьим и чет­вер­тым и т. д., a в конце k с пер­вым и вто­рым), при этом каж­дая трой­ка вы­пи­ва­ет по  дробь: чис­ли­тель: \Delta, зна­ме­на­тель: 3 конец дроби . После этого ко­ли­че­ство чле­нов клуба с мак­си­маль­ной долей уве­ли­чи­ва­ет­ся по край­ней мере на од­но­го. Так про­дол­жа­ем до тех пор, пока доли всех чле­нов клуба не ста­нут оди­на­ко­вы­ми. Далее все до­пи­ва­ют оста­ток таким же спо­со­бом  — в трой­ках «по кругу».

Спо­соб II. Разо­бьем окруж­ность еди­нич­ной длины на n дуг, длины ко­то­рых равны со­от­вет­ствен­но долям сока, при­не­сен­но­го каж­дым из n чле­нов клуба. Рас­по­ло­жим в круге «трой­ник»  — фи­гу­ру из трех ра­ди­у­сов, об­ра­зу­ю­щих по­пар­но углы в 120° (см. рис.). По­сколь­ку длина каж­дой дуги не пре­вос­хо­дит  дробь: чис­ли­тель: 1, зна­ме­на­тель: 3 конец дроби , ни при каком по­ло­же­нии трой­ни­ка раз­ные его концы не будут ука­зы­вать на внут­рен­ние точки дуги, со­от­вет­ству­ю­щей од­но­му члену клуба.

По­ста­вим трой­ник в про­из­воль­ное на­чаль­ное по­ло­же­ние, в ко­то­ром все его концы по­ка­зы­ва­ют на внут­рен­ние точки дуг. За сто­лик по­са­дим чле­нов клуба, со­от­вет­ству­ю­щих дугам. Будем вра­щать трой­ник по ча­со­вой стрел­ке и со­по­став­лять по­во­ро­ту вы­пи­ва­ние каж­дым из чле­нов клуба, си­дя­щим за сто­ли­ком, доли сока (от­но­си­тель­но об­ще­го на­чаль­но при­не­сен­но­го объ­е­ма), рав­ной длине дуги, вдоль ко­то­рой про­шел со­от­вет­ству­ю­щий конец трой­ни­ка. В мо­мент, когда хотя бы один из кон­цов трой­ни­ка про­хо­дит край­нюю точку дуги, будем про­во­дить смену чле­нов клуба, си­дя­щих за сто­ли­ком: сто­лик будет по­ки­дать участ­ник, из чьей дуги вы­хо­дит конец трой­ни­ка, а при­са­жи­вать­ся участ­ник, в дугу ко­то­ро­го вхо­дит этот конец трой­ни­ка.

Не­слож­но ви­деть, что по­во­рот трой­ни­ка на 120° обес­пе­чит спо­соб вы­пи­ва­ния чле­на­ми клуба всего сока, ко­то­рый они при­нес­ли с собой.