Круглый стол, 7 гномов и 3 литра молока

denis24

Была такая интересная школьная задачка: за круглым столом сидят 7 гномов. Перед каждым гномом стоит кружка, в кружки разлито 3 литра молока. Первый гном берёт свою кружку и разливает всё своё молоко поровну остальным. Затем эту процедуру проделывает следующий гном и т.д. После того, как 7-й гном разлил молоко из своей кружки, у каждого гнома стало столько молока, сколько было до всех переливаний. Вопрос: сколько молока у каждого гнома?
Довольно понятно, что у 7-го гнома молока нет, т.к. он разлил своё молоко остальным, после чего у каждого стало столько, сколько было изначально. Значит у него изначально ничего и не было. Но вот что делать дальше - вопрос.
Ответ к задаче, естественно, легко гуглится. Но вот как её решить, даже зная ответ - неясно. Я попробовал решить в лоб для 3-х и 4-х гномов. Но как перейти от 4-х к 7ми - не понял. Подскажите, как надо рассуждать в данном случае?

antcatt77

если просто расписать систему уравнений, то это не поможет?

blackout

Понятно, что если после 7-го переливания ситуация такая-же, как и после 0-го, то значит после 8-го она такая-же, как и после 1-го и т.д.
Дальше естественно предположить, что после каждого переливания ситуация просто циклически сдвигается.
Из этого предположения легко получаем, что в начале молоко было разделено в пропорции 6:5:4:3:2:1:0. После первого переливания 0:6:5:4:3:2:1 и т.д., после седьмого снова 6:5:4:3:2:1:0.

Lene81

Отличное решение! А вот как решил ее я :o (octave)
  
clear;

%% How many dwarfs
ngn = 7;

%% Matrix of ladling
for k=1:ngn
g(:, :, k) = eye(ngn);
t = ones(ngn,1)/(ngn-1);
t(k) = -1;
g(:, k, k) += t;
end

res = eye(ngn);
for k=1:ngn
res = g(:,:,k)*res;
end

%% Desired solution is the eigenvector of res with eigenvalue 1
[V, lambda] = eig(res);
[lambda, ind] = sort(diag(lambda;
V = V(:, ind);

%% Printing
lambda(end V(:,end)

KpyTou_yokep

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

KpyTou_yokep

ответ вроде
6/7, 5/7, 4/7, 3/7, 2/7, 1/7, 0.

denis24

На самом деле если через х1, х2 ... х7 обозначим количество молока, которое разливал каждый гном, то задача решается в 2 действия.
В самом деле, раз у 7-го гнома изначально молока не было, то перед тем, как он начал разливать своё молоко у него в кружке было х1+х2+...+х6. Это означает, что х7=(х1+х2+...+х6)/6. Если теперь мы рассмотрим 6-го гнома, то после того, как он вылил своё молоко ему наливал только 7-й гном. Значит у него в кружке изначально было х7 молока. А сколько ему налили до того, как он начал разливать сам? Очевидно х1+х2+...+х5. Значит х6=(х1+х2+х3+х4+х5+х7)/6. Теперь рассмотрим 5-го. После того как он вылил своё молоко ему наливали только 6-й и 7-й. Значит у него изнеачально в кружке было х6+х7. И.т.д.
Их этих двух уравнений нетрудно вывести, что х6=х7. После этого аналогичными рассуждениями можно получить, что х1=х2=...=х7.
А уж после этого совсем нетрудно получить правильный ответ.
Когда решил задачу, так стало приятно. Блин, оказывается ещё не всё я забыл.

iri3955

 

rrr

У 6 гномов по 0.5 л и у седьмого 0 литров.
Оставить комментарий
Имя или ник:
Комментарий: