Главная
Новости
Статьи
Строительство
Ремонт
Дизайн и интерьер
Строительная теплофизика
Прочность сплавов
Основания и фундаменты
Осадочные породы
Прочность дорог
Минералогия глин
Краны башенные
Справочник токаря
Цементный бетон





















Яндекс.Метрика

Задачи на взвешивание


Задачи на взвешивание — тип олимпиадных задач по математике, в которых требуется установить тот или иной факт (выделить фальшивую монету среди настоящих, отсортировать набор грузов по возрастанию веса и т. п.) посредством взвешивания на рычажных весах без циферблата. Чаще всего в качестве взвешиваемых объектов используются монеты. Реже имеется также набор гирек известной массы.

Очень часто используется постановка задачи, требующая определить либо минимальное число взвешиваний, потребное для установления определённого факта, либо привести алгоритм определения этого факта за определенное количество взвешиваний.

Реже встречается постановка, требующая ответить на вопрос, возможно ли установление определённого факта за некоторое количество взвешиваний. Часто такая постановка является не очень удачной, так как при положительном ответе на вопрос задача чаще всего сводится к построению алгоритма, а отрицательный почти не встречается в олимпиадной практике.

При решении задач на взвешивание часто совершается типичная ошибка: требуется определить минимальное количество взвешиваний. При решении строится алгоритм, который позволяет решить задачу за m {displaystyle m} шагов. При этом m {displaystyle m} действительно является верным ответом на вопрос «каково минимальное количество взвешиваний», но этот факт в решении не доказан. Иногда эта ошибка допускается и самими составителями задач.

Анализ с точки зрения теории информации

При решении этих задач часто используется следующее соображение: весы могут пребывать в одном из трёх состояний:

  • перевесила левая чашка;
  • перевесила правая чашка;
  • чашки находятся в равновесии.

Таким образом, единственное взвешивание сообщает нам один разряд в троичной системе счисления, а m {displaystyle m} взвешиваний позволяют разделить не более чем 3 m {displaystyle 3^{m}} различных ситуаций. Особенно это соображение полезно при доказательстве минимальности необходимого количества взвешиваний и при доказательстве невозможности определить некий факт за данное количество взвешиваний (в последнем случае обычно требуется комбинаторный анализ пространства возможных ответов).

Пример: за два взвешивания невозможно наверняка выделить самую тяжелую из 10 гирек, поскольку два взвешивания дают возможность разделить только 9 возможных ответов, а самой тяжёлой может оказаться любая из 10 гирек.

Иногда совершается ошибка, когда производятся, вообще говоря, правильные рассуждения, но упускается из виду «нейтральное» положение весов, и считается, что при каждом взвешивании сообщается один из двух, а не один из трёх возможных результатов.

Задача отыскания одной фальшивой монеты, вес которой может быть больше или меньше веса правильной монеты

Из нетривиальных задач на взвешивание изучена и хорошо известна задача, в которой требуется определить, имеется ли среди 12 монет фальшивая и, если имеется, найти ее и определить ее относительный вес. Эта задача и ее решение впервые были опубликованы в 1945 Р. Л. Гудстейном в «The Mathematical Gazette» (см. статью ). В данной задаче существует статический алгоритм (т. е. алгоритм, в котором взвешивания определены заранее и не зависят от результатов предыдущих взвешиваний), обеспечивающий нахождение фальшивой монеты за 3 взвешивания. Этот алгоритм можно представить следующей таблицей:

0 0 1 0 0 2 2 2 1 1 1 2 0 1 0 2 2 2 1 0 0 1 2 1 1 0 0 2 1 0 0 2 2 2 1 1

В таблице номера столбцов соответствуют номерам монет, а строки определяют взвешивания: 0 – монета не участвует во взвешивании, 1 – кладется на первую чашу, 2 – кладется на вторую чашу. В результате трех взвешиваний определяется так называемый синдром, т. е. тройка чисел, которая однозначно указывают на номер фальшивой монеты. Этот номер равен номеру столбца с соответствующим синдромом. Например, если синдром равен (2,2,0), то фальшивой является монета с номером 6 и она тяжелее эталонных монет.

В других вариантах подобных задач может быть указано, что нужно найти фальшивую монету среди 13 (без определения ее относительного веса), если известно, что в тестируемой группе точно одна фальшивая монета. Очевидно, для такой задачи можно использовать уже построенный выше алгоритм, предварительно отложив одну монету и сделать вывод о ее подлинности по результатам взвешиваний остальных 12-ти монет.

Достаточно общую картину о числе монет n, из которых можно найти одну фальшивую за m взвешиваний, можно составить из . Пусть из данного количества монет можно найти фальшивую за m взвешиваний. Тогда максимально возможное количество монет равно:

  • если относительный вес фальшивой монеты известен заранее – 3 m {displaystyle 3^{m}} (независимо от наличия запаса настоящих монет);
  • если относительный вес не известен и его требуется узнать:

– при отсутствии запаса настоящих монет – ( 3 m − 3 ) / 2 {displaystyle (3^{m}-3)/2} ;

– при наличии – ( 3 m − 1 ) / 2 {displaystyle (3^{m}-1)/2} ,

  • если не требуется узнать относительный вес:

– при отсутствии запаса настоящих монет – ( 3 m − 1 ) / 2 {displaystyle (3^{m}-1)/2} ;

– при наличии – ( 3 m + 1 ) / 2 {displaystyle (3^{m}+1)/2} .

Обобщения

Обобщенное описание задач такого типа приведено в .

Пусть R n {displaystyle mathbb {R} ^{n}} -- n {displaystyle n} -мерное евклидово пространство, [ e 1 , e 2 ] {displaystyle [mathrm {e} ^{1},mathrm {e} ^{2}]} -- скалярное произведение векторов e 1 {displaystyle mathrm {e} ^{1}} и e 2 {displaystyle mathrm {e} ^{2}} из R n , {displaystyle mathbb {R} ^{n},} Для элементов e = ( e 1 , … , e n ) ∈ R n {displaystyle mathrm {e} =(e_{1},dots ,e_{n})in mathbb {R} ^{n}} и подмножеств E = { e j } ⊆ R n , {displaystyle E={mathrm {e} ^{j}}subseteq mathbb {R} ^{n},} используются операции ( ⋅ ) ∗ {displaystyle (cdot )^{*}} и ( ⋅ ) + {displaystyle (cdot )^{+}} результаты применения которых определяются соотношениями e ∗ = ( s i g n ( e i ) ) i {displaystyle mathrm {e} ^{*}=(sign(e_{i}))_{i}} ; E ∗ = { ( e j ) ∗ } {displaystyle E^{*}={(mathrm {e} ^{j})^{*}}} , e + = ( | s i g n ( e i ) | ) i {displaystyle mathrm {e} ^{+}=(|sign(e_{i})|)_{i}} , E + = { ( e j ) + } . {displaystyle E^{+}={(mathrm {e} ^{j})^{+}}.} Символом I n {displaystyle I^{n}} будем обозначать дискретный [−1; 1]-cube в R n {displaystyle mathbb {R} ^{n}} ; т. е. множество всех последовательностей длины n {displaystyle n} над алфавитом I = { − 1 , 0 , 1 } {displaystyle I={-1,0,1}} . Множество I t n = { x ∈ I n | w ( x ) ≤ t } ⊆ I n {displaystyle I_{t}^{n}={mathrm {x} in I^{n}|w(mathrm {x} )leq t}subseteq I^{n}} представляет собой дискретный шар радиуса t {displaystyle t} (в метрика Хэмминга w ( ) {displaystyle w()} ) с центром в точке 0 . {displaystyle mathrm {0} .} Пусть имеются n {displaystyle n} объектов, относительные веса которых задаются вектором x = ( x 1 , … , x n ) ∈ I n , {displaystyle mathrm {x} =(x_{1},dots ,x_{n})in I^{n},} определяющим конфигурацию весов множества объектов: i {displaystyle i} -й объект имеет стандартный вес, если x i = 0 ; {displaystyle x_{i}=0;} вес i {displaystyle i} -го объекта больше (меньше) на постоянную (неизвестную) величину, если x i = 1 {displaystyle x_{i}=1} (соответственно, x i = − 1 {displaystyle x_{i}=-1} ). Вектор x + {displaystyle mathrm {x} ^{+}} характеризует типы объектов: стандартный, нестандартный (т. е. конфигурацию типов), и не содержит информации об относительных весах нестандартных объектов.

Взвешивание (проверка) задается вектором h ∈ I n , {displaystyle { extbf {h}}in I^{n},} при этом результат взвешивания для ситуации x ∈ I n {displaystyle { extbf {x}}in I^{n}} равен s ( x , h ) = s i g n ( [ x , h ] ) . {displaystyle s({ extbf {x}},{ extbf {h}})=sign([{ extbf {x}},{ extbf {h}}]).} Взвешивание, определенное вектором h = ( h 1 , … , h n ) , {displaystyle { extbf {h}}=(h_{1},dots ,h_{n}),} имеет следующую интерпретацию: при данной проверке i {displaystyle i} -й объект участвует во взвешивании, если h i ≠ 0 ; {displaystyle h_{i} eq 0;} он кладется на левую чашку весов, если h i < 0 {displaystyle h_{i}<0} и на правую -- если h i > 0. {displaystyle h_{i}>0.} При каждом взвешивании h {displaystyle { extbf {h}}} на обеих чашках должно быть одинаковое число объектов, недостающее на какой-либо чашке число объектов пополняется эталонными объектами, число которых равно r ( h ) = [ h , 1 ] . {displaystyle r({ extbf {h}})=[{ extbf {h}},{ extbf {1}}].} Результат взвешивания s ( x , h ) {displaystyle s({ extbf {x}},{ extbf {h}})} описывает случаи: при s ( x , h ) = 0 {displaystyle s({ extbf {x}},{ extbf {h}})=0} -- равновесие, при s ( x , h ) = − 1 {displaystyle s({ extbf {x}},{ extbf {h}})=-1} -- левая чашка перевешивает, при s ( x , h ) = 1 {displaystyle s({ extbf {x}},{ extbf {h}})=1} -- правая чашка перевешивает. Взвешивание, не использующее дополнительных эталонных объектов ( r ( h ) = 0 {displaystyle r({ extbf {h}})=0} ), называется центрированным. Неполнота исходной информации относительно распределения весов рассматриваемой группы объектов характеризуется множеством допустимых распределений весов объектов Z ⊆ I n , {displaystyle Zsubseteq I^{n},} которое также называется множеством допустимых ситуаций, элементы z ∈ Z {displaystyle { extbf {z}}in Z} называются допустимыми ситуациями.

Каждое взвешивание h {displaystyle { extbf {h}}} определяет разбиение множества I n {displaystyle I^{n}} плоскостью [ x , h ] = 0 {displaystyle [{ extbf {x}},{ extbf {h}}]=0} на три части W ( s | I n , h ) = { x ∈ I n | s ( x , h ) = s } , s ∈ I , {displaystyle W(s|I^{n},{ extbf {h}})={{ extbf {x}}in I^{n}|s({ extbf {x}},{ extbf {h}})=s},sin I,} и соответствующее разбиение множества Z = W ( 0 | Z , h ) + W ( 1 | Z , h ) + W ( − 1 | Z , h ) , {displaystyle Z=W(0|Z,{ extbf {h}})+W(1|Z,{ extbf {h}})+W(-1|Z,{ extbf {h}}),} где W ( s | Z , h ) = W ( s | I n , h ) ∩ Z . {displaystyle W(s|Z,{ extbf {h}})=W(s|I^{n},{ extbf {h}})cap Z.} С учетом этого будем говорить, что взвешивание h {displaystyle { extbf {h}}} классифицирует элементы z ∈ Z {displaystyle { extbf {z}}in Z} по типам, соответствующим подмножествам W ( s | Z , h ) ; {displaystyle W(s|Z,{ extbf {h}});} при этом величина d ( Z , h ) = max s ∈ I | W ( s | Z , h ) | {displaystyle d(Z,{ extbf {h}})=max _{sin I}|W(s|Z,{ extbf {h}})|} называется диаметром классификации множества Z {displaystyle Z} взвешиванием h . {displaystyle { extbf {h}}.}

Определение 1. Алгоритм взвешивания A {displaystyle {mathcal {A}}} длины m {displaystyle m} -- это последовательность A = ⟨ A 1 , … , A m ⟩ {displaystyle {mathcal {A}}=langle mathrm {A} _{1},dots ,mathrm {A} _{m} angle } , где A j : I j − 1 → I n {displaystyle mathrm {A} _{j}:I^{j-1} o I^{n}} -- функция, определяющая проверку h j = A j ( s j − 1 ) , {displaystyle { extbf {h}}^{j}=mathrm {A} _{j}({ extbf {s}}^{j-1}),} h j ∈ I n , {displaystyle { extbf {h}}^{j}in I^{n},} на каждом j {displaystyle j} -м , j = 1 , 2 , … , m , {displaystyle ,j=1,2,dots ,m,} шаге алгоритма по результатам взвешиваний на предыдущих шагах s j − 1 = ( s 1 , … , s j − 1 ) ∈ I j − 1 {displaystyle { extbf {s}}^{j-1}=(s_{1},dots ,s_{j-1})in I^{j-1}} ( h 1 = A 1 ( ) {displaystyle ({ extbf {h}}^{1}=mathrm {A} _{1}()} -- заданная исходная проверка).

Пусть S ( Z A ) {displaystyle S(Z{mathcal {A}})} -- множество всех ( Z , A ) {displaystyle (Z,{mathcal {A}})} -синдромов, W ( s | A ) ⊆ I n {displaystyle W({ extbf {s}}|{mathcal {A}})subseteq I^{n}} -- множество ситуаций, имеющих одинаковый синдром s , {displaystyle { extbf {s}},} т. е. W ( s | A ) = { z ∈ I n | s ( z | A ) = s } ; {displaystyle W({ extbf {s}}|{mathcal {A}})={{ extbf {z}}in I^{n}|{ extbf {s}}({ extbf {z}}|{mathcal {A}})={ extbf {s}}};} W ( s | Z , A ) = W ( s | A ) ∩ Z . {displaystyle W({ extbf {s}}|Z,{mathcal {A}})=W({ extbf {s}}|{mathcal {A}})cap Z.}

Определение 2. АВ A {displaystyle {mathcal {A}}} называется

a) идентифицирующим ситуации в множестве Z {displaystyle Z} , если для всех s ∈ S ( Z , A ) {displaystyle {{ extbf {s}}in S(Z,{mathcal {A}})}} выполняется условие | W ( s | Z , A ) | = 1 ; {displaystyle |W({ extbf {s}}|Z,{mathcal {A}})|=1;}

b) идентифицирующим типы объектов в множестве Z {displaystyle Z} , если для всех s ∈ S ( Z , A ) {displaystyle { extbf {s}}in S(Z,{mathcal {A}})} выполняется условие | W + ( s | Z , A ) | = 1. {displaystyle |W^{+}({ extbf {s}}|Z,{mathcal {A}})|=1.}

В доказано, что для установленного класса множеств Z {displaystyle Z} (называемых подходящими) алгоритм, идентифицирующий типы объектов, идентифицирует также ситуации в Z {displaystyle Z} .

В качестве примера построены динамические (двухкаскадные) алгоритмы взвешивания с параметрами n {displaystyle n} = 11, m {displaystyle m} = 5, t {displaystyle t} = 2, которые соответствуют параметрам совершенного код Голея (Virtakallio-Golay code).

Каждый из построенных алгоритмов за 5 взвешиваний находит из 11 тестируемых монет до двух фальшивых, веса которых могут быть больше или меньше веса настоящей монеты на фиксированную величину. В этом случае область неопределенности содержит 1 + 2 C 11 1 + 2 2 C 11 2 = 3 5 {displaystyle 1+2C_{11}^{1}+2^{2}C_{11}^{2}=3^{5}} ситуаций, т. е. построенный АВ лежит на верхней граница Хэмминга и в этом смысле является совершенным (см. троичный код Голея). В то же время установлено, что статического АВ (кода взвешивания) с параметрами n {displaystyle n} = 11, m {displaystyle m} = 5, t {displaystyle t} = 2 не существует.

К настоящему времени неизвестно, существуют ли другие совершенные АВ, идентифицирующие ситуации в I t n {displaystyle I_{t}^{n}} при каких-либо значениях t {displaystyle t} . Более того, не известно, существуют ли при некотором t > 2 {displaystyle t>2} решения уравнения ∑ i = 0 t 2 i C n i = 3 m , {displaystyle sum _{i=0}^{t}2^{i}C_{n}^{i}=3^{m},} соответствующего граница Хэмминга для троичных кодов, что, очевидно, является необходимым для существования совершенного АВ. Известно лишь, что при t = 1 {displaystyle t=1} совершенных АВ не существует, а при t = 2 {displaystyle t=2} указанное уравнение имеет единственное нетривиальное решение, определяющее параметры n , m , t {displaystyle n,m,t} построенного совершенного АВ.

«Нестандартные» задачи на взвешивание

Иногда встречаются «нестандартные» задачи на взвешивание, например:

  • в них фигурируют весы, непосредственно показывающие вес
  • в них фигурируют рычажные весы с циферблатом, показывающим разность веса грузов на чашах
  • в них фигурирует безмен
  • в них фигурируют неравноплечие весы

К. Кноп придумал такую задачу. Мы имеем n монет, одна из которых фальшивая (не известно большего или меньшего веса, чем настоящие монеты, которые имеют одинаковый вес). Имеется 2 рычажных весов, которые могут использоваться параллельно. Каждое взвешивание занимает минуту времени. Каково максимальное число монет n, среди которых можно найти фальшивую монету за 5 минут?

Имя:*
E-Mail:
Комментарий: