Есть 3 рубля мелочью. Как разложить их по 9-ти кошелькам, чтобы можно было набрать любую сумму в пределах 3-х рублей включительно, не раскрывая кошельков.
1,2,4,8....128, Ну что осталось 45 для девятого кошелька
Админ:
Вася Пупкин 2012-10-11 06:56:14 пишет:
Ну, пронумеруем кошельки от нуля, и в восемь положим по 2^(номер кошелька) копеек. Записав побитово требуемое число, возьмем кошельки, соотв. единичкам, вот и наша сумма. Так мы наберем от 1 до 2.55, а оставшиеся 45 копеек положим в девятый кошелек, и если сумма больше 2.55, сразу хапнем его, а остаток будем набирать тем же способом из наших восьми битов.
Админ, уточните, пожалуйста - "мелочью" = "по одной копейке"? ;) Или как? 8))) Задача может не иметь решения при определенных комбинациях мелочи другого номинала. :Р Если по копейке, то складываем по степеням двойки. Восемь кошельков - 1, 2, ... 128. В девятый ссыпаем все остальное. Если надо будет отсчитать сумму, большую, чем 2р.55коп. - то берем девятый сразу и задача сводится к предыдущей, - отсчитать сумму Х-45коп.