// pascalabc.net 3.3, сборка 1555 от 21.10.2017 // внимание! если программа не работает, обновите версию! begin var a: =arrrandom(16,-20,20); foreach var n in a do write(n: 4); writeln; writeln('сумма первого и последнего элементов: ', a.first+a.last) end. пример 4 4 12 -2 -7 13 -15 -13 2 1 -20 -4 -3 20 15 7 сумма первого и последнего элементов: 11
natasham-716
18.04.2023
Пусть выбраны гирьки с массами m1, m2, mn и ими удалось массу x. тогда имеет место равенство x = a1 * m1 + a2 * m2 + + an * mn, где ai = 0, если i-ая гирьке не участвовала в взвешиваниях, -1, если лежала на той же чаше весов, что и масса, которкю нужно отмерить, и +1, если на другой чаше весов. каждый из коэффициентов принимает одно из трёх значений, тогда при n гирек можно отмерить не более, чем 3^n различных масс. 3^3 < 40 + 1 < 3^4, значит, гирек нужно не менее четырёх. докажем, что взяв гирьки с массами 1, 3, 9 и 27, можно отмерить любую массу от 1 до 40. будем это делать по индукции, доказав, что при гирек 1, 3, 9, 3^k можно отмерить любую массу от 1 до (3^k - 1)/2. база индукции. при одной гирьки массой 1 действительно можно отмерить массу 1. переход. пусть для k = k' всё доказано. докажем и для k = k' + 1. - если нужно отмерить массу x < = (3^k' - 1)/2, то это можно сделать при k' гирек. - пусть надо отмерить массу (3^k' - 1)/2 < x < = (3^(k' + 1) - 1)/2. кладём на другую чашу весов гирьку массой 3^k'. тогда остаётся нескомпенсированная масса |x - 3^k'| < = (3^k' - 1)/2, которую, по предположению, можно получить. ура! ответ. 1, 3, 9, 27.