avva: (Default)
[personal profile] avva
Давно у меня не было интересных задач!

У вас есть N монет, и вес каждой монеты равен либо X, либо Y (два заранее фиксированных числа). У вас есть весы с двумя чашами, позволяющие за одно взвешивание сравнить - но не измерить - вес любого количества монет на левой и правой чашах. Вы хотите узнать: верно ли, что все монеты одного веса? Сколько взвешиваний вам надо в худшем случае, чтобы это определить?

Можно перевернуть вопрос и задать его так: если в вашем распоряжении есть k взвешиваний, какое количество монет вы сможете гарантированно проверить (т.е. узнать, все ли они одного веса)?

1) Найдите алгоритм, позволяющий для любого k проверить за k взвешиваний 2^k монет.

2) Докажите, что есть верхний предел для числа монет N, которые можно проверить с помощью данного числа k взвешиваний (это кажется тривиальным, но только кажется).

3) Найдите алгоритм, позволяющий с помощью 3 взвешиваний проверить больше, чем 8=2^3 монет.

Комментарии скрывать не буду - учтите, если сами хотите решить. Сам я ответил еще пока не на все из этих вопросов :)

верхняя оценка (part 2)

Date: 2009-03-17 11:01 am (UTC)
From: [identity profile] falcao.livejournal.com
ПРОДОЛЖЕНИЕ

На пространстве R^m зададим частичное отношение порядка, где u<=v означает, что для всех i от 1 до m,
i-я координата вектора u не превосходит i-й координаты вектора v. Если u<=v, и при этом u не равно v, то полагаем u < v.

Ненулевое решение системы U(k) назовём минимальным, если не существует меньшего ненулевого решения этой системы (в целых неотрицательных числах). Например, при k=2 решение z(L,L)=z(R,R)=1 при нулевых значениях остальных переменных, будет минимальным. Другой пример: z(L,L)=z(R,0)=z(0,R)=1 при нулевых значениях остальных переменных. Минимальное решение не обязано состоять из нулей и единиц: достаточно рассмотреть пример z(L,L)=1, z(R,L)=1, z(0,R)=2.

Утверждается, что минимальных решений системы U(k) имеется конечное число. Это следует из такой леммы: если имеется бесконечное множество S векторов в Z_+^m, то среди них найдутся два вектора u, v такие, что u < v.

Это доказывается при помощи индукции по m. Если m=1, то всё очевидно. Если m>1, то рассмотрим какой-то вектор из множества S. Пусть это u=(u_1,...,u_m). Если условие u < v не выполнено ни при каком v=(v_1,...,v_m), то найдётся i такое, что v_i<=u_i. Тогда хотя бы для одного i подмножество в S, состоящее из всех v таких, что v_i<=u_i, будет бесконечным. При этом v_i принимает одно из значений конечного списка 0, 1, ..., u_i. Следовательно, при некотором b из этого списка, подмножество всех v из S с условием v_i=b, бесконечно. Осталось спроектировать это подмножество на Z_+^{m-1} и применить к нему предположение индукции.

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

Если n>=f(k), то всякая система из k уравнений от x(1), ..., x(n), соответствующая взвешиваниям, обязана иметь нетривиальное решение. В самом деле, если для каждого типа T обозначить через r(T) число неизвестных типа T в данной системе, то (3^{k}-1)-мерный вектор, состоящий из компонент r(T), будет решением системы U(k). Оно соответствует единичному решению системы от x(1), ..., x(n). При этом сумма компонент решения равна n>=f(k), и это больше, чем сумма компонент любого минимального решения. Поэтому решение, состоящее из значений z(T)=r(T) не будет минимальным. Это означает, что существует ненулевое решение системы U(k) из компонент p(T) такое, что p(T)<=r(T) для всех T, и хотя бы одно из этих неравенств является строгим.

Из этого очевидным образом строится нетривиальное решение рассмотренной нами системы от n переменных. А именно, надо взять все r(T) переменных типа T, и ровно p(T) из них положить равными 1, а остальные сделать нулевыми.

Нахождение явного вида функции f(k) связано с анализом всех минимальных решений системы U(k). Для их нахождения, скорее всего, можно как-то применить симплекс-метод. Интересно было бы в явном виде найти хотя бы значение f(3) с использованием компьютерных вычислений.

P.S. Прошу прощения за то, что пришлось несколько раз удалять и помещать один и тот же коммент ввиду неполадок с "тегами".

Re: верхняя оценка (part 2)

Date: 2009-03-17 11:50 am (UTC)
From: [identity profile] avva.livejournal.com
Очень красиво :) большое спасибо!

Re: верхняя оценка (part 2)

Date: 2009-03-17 03:09 pm (UTC)
From: [identity profile] markvs.livejournal.com
Я думаю, что задача может сводиться к reachability problem для сетей Петри или к разрешимости универсальной теории коммутативных полугрупп. Это может дать супер-експ. нижнюю оценку на f(k).

Re: верхняя оценка (part 2)

Date: 2009-03-27 05:30 pm (UTC)
From: [identity profile] markvs.livejournal.com
Анатолий, я хочу послать Вашу задачу (при к = 3) и наше с falcao решение на студенческую олимпиаду в Уральском Гос. Униветрситете (Екатеринбург). Там будет указано, что задача придумана А. Воробьем и Ваше affiliation (Google-Israel?). Вы не против? Меня попросили люди из УрГУ прислать им задачи.

Re: верхняя оценка (part 2)

Date: 2009-03-27 05:39 pm (UTC)
From: [identity profile] avva.livejournal.com
Я совершенно не против, но не указывайте меня, пожалуйста - я в данном случае не более чем посредник. Задача попала ко мне от Ноги Алона (Noga Alon, affiliation - Tel-Aviv University). Я не знаю, он ли ее придумал; если это важно, можно у него спросить.

Re: верхняя оценка (part 2)

Date: 2009-03-27 05:43 pm (UTC)
From: [identity profile] markvs.livejournal.com
Спасибо! Здорово (насчет Алона)! Я сейчас спрошу у него.

Re: верхняя оценка (part 2)

Date: 2009-03-27 11:18 pm (UTC)
From: [identity profile] markvs.livejournal.com
Alon answered. There are three papers on his Web site devoted to the subject. By the way, here is the problem as it was sent to the student olympiad:

Задача 3. Фальшивомонетчик-скрлеротик Абу изготовлял фальшивые копейки образца 1961 года. Отнощение веса фальшивой монеты к весу настоящей выдерживалось строго и было в точности \pi/3 (трансцендентное число). Фальшивые и настоящие копейки валялись вперемешку в одном ведре, Абу не помнил, какая монета фальшивая, а какая - нет. Однажды он взял из ведра горсть монет, и задумал, в виде развлечения, проверить с помощью чашечных весов, все ли эти монеты одного типа (все настоящие или все фальшивые). Абу хочет использовать лишь три взвешивания. За каждое взвешивание, он кладет на обе чашки весов одинаковое число монет из горсти, и проверяет, уравниваются ли чашки. Он хочет проверить, все ли монеты в горсти одинакового веса. Доказать, что

а) Существует стратегия проверки, если в горсти n = 8 или 9 монет.

б) Доказать, что существует число n, для которого искомой стратегии не существует.

в) Оценить n из б).


Re: верхняя оценка (part 2)

Date: 2009-03-27 11:29 pm (UTC)
From: [identity profile] avva.livejournal.com
Замечательно! Не дадите ссылки на эти статьи, если они уже у вас под рукой?

Re: верхняя оценка (part 2)

Date: 2009-03-28 12:13 am (UTC)
From: [identity profile] markvs.livejournal.com
Here is Alon's answer:

-----------
I have a few papers on that and some versions, see (in my webpage):

N. Alon and V. H. Vu, Anti-Hadamard matrices, coin weighing,
threshold gates and indecomposable hypergraphs, J. Combinatorial
Theory, Ser. A 79 (1997), 133-160.

N. Alon, D. N. Kozlov and V. H. Vu, The geometry of coin-weighing
problems, Proc. $37^{th}$ IEEE FOCS, IEEE (1996), 524-532.

N. Alon and D. N. Kozlov, Coins with arbitrary weights, J.
Algorithms 25 (1997), 162-176.
---------
I then asked about the explicit upper bound and here is what he wrote:

We get that n(k) is at most some k^{k/2+o(1)} and that's tight (up to
the o(1) term). There are several proofs that give finiteness. Maybe easiest to look at the FOCS paper. Of course you can send the problem
to any student Olympiad. n(3), by the way, is 10, if I remember correctly
(but getting the tight upper bound here was done with the help of a computer, and is not mentioned in the papers).

January 2026

S M T W T F S
    1 2 3
4 5 6 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 8th, 2026 10:18 am
Powered by Dreamwidth Studios