Konchenko1980
?>

Зінформатики з клас на кмітливість. є три коробки , в кожній з яких три кульки, дві зелені, дві червоні й одна зелена та одна червона, але всі підписи на коробках не правильні. з якої коробки потрібно взяти одну кульку, щоб з'ясувати, які кульки лежать у якій коробці насправді?

Информатика

Ответы

Inozemtseva Korolev1271
Якщо всі підписи неправильні, то потрібно взяти кульку з коробки, на якій написано "Одна червона, она зелена". Обидві кульки будуть однакового кольору. Далі, у коробці, колір якого витягнули, також будуть дві кульки однакового кольору. Кульки різного кольору будуть у третій коробці.
Espivak

10101

Объяснение:

Надо занимать единицу из старшего разряда, при этом помнить, что в случаях, когда занимается единица старшего разряда, она дает две единицы младшего разряда (одну из которых держим в уме).

Если занимается единица через несколько разрядов, то она дает по одной единице во всех промежуточных нулевых разрядах и две единицы в том разряде, для которого занималась.

То есть что бы из последнего 0 вычесть единицу. идем в третий разряд от конца (где есть 1), забираем ее оттуда, там становится 0, во втором разряде становится 1, и в последнем разряде становится 1 и единица в уме. Из той которая в уме вычитаем единицу внизу, в итог идет 1

К сожалению не знаю как это понятно можно нарисовать.

Okunev1034

--- PascalABC.NET 3.6.2 ---

procedure MatrTransform<T>(var Matr: Array[,] of T; TransformRule: T -> T; IndicesPredicate: (integer,integer) -> boolean := nil);

begin

 if IndicesPredicate = nil then begin

   for var i:= 0 to Matr.GetLength(0)-1 do

   begin

     for var k := 0 to Matr.GetLength(1)-1 do

     begin    

       Matr[i,k] := TransformRule(Matr[i,k]);

     end;    

   end;

 end

 else

   for var i:= 0 to Matr.GetLength(0)-1 do

   begin

     for var k := 0 to Matr.GetLength(1)-1 do

     begin  

       if (IndicesPredicate(i,k)) then

       Matr[i,k] := TransformRule(Matr[i,k]);

     end;    

   end;

end;

begin

 var (n,m) := ReadInteger2('Enter dimensions of matrix: ');

 var A := ReadMatrInteger(n,m);

 A.Println;

 MatrTransform(A, x -> x mod 7, (row, col) -> (row+col) mod 2 = 0);

 println('');

 A.Println;

end.

З.Ы Решение представлено для текстовой версии задачи, в которой говориться о трансформации двумерного массива

З.Ы 2 Generic-Процедура MatrTransform<> Может изменять элементы матрицы как обращая внимание на позицию элемента в матрице, так и нет. По этому в ней больше кода, чем вам, возможно, нужно.

З.Ы 3 MatrTransform<> Может работать с двумерными массивами любого типа данных

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Зінформатики з клас на кмітливість. є три коробки , в кожній з яких три кульки, дві зелені, дві червоні й одна зелена та одна червона, але всі підписи на коробках не правильні. з якої коробки потрібно взяти одну кульку, щоб з'ясувати, які кульки лежать у якій коробці насправді?
Ваше имя (никнейм)*
Email*
Комментарий*