KristyLis
19.03.2022 00:33

Два игрока, Два игрока, Петя и Ваня, играют в следующую игру. Перед
игроками лежат две кучи камней. Игроки ходят по очереди, первый ход
делает Петя. За один ход игрок может добавить в одну из куч (по своему
выбору) один камень или увеличить количество камней в куче в два раза.
Игра завершается в тот момент, когда суммарное количество камней в кучах
становится не менее 77. Победителем считается игрок, сделавший
последний ход, т.е. первым получивший такую позицию, что в кучах всего
будет 77 камней или больше.
Задание 1. Для каждой из начальных позиций (10, 33), (12, 32) укажите, кто
из игроков имеет выигрышную стратегию. В каждом случае опишите
выигрышную стратегию; объясните, почему эта стратегия ведёт к
выигрышу, и укажите, какое наибольшее количество ходов может
потребоваться победителю для выигрыша при этой стратегии.
Задание 2. Для каждой из начальных позиций (10, 32), (11, 32), (12, 31)
укажите, кто из игроков имеет выигрышную стратегию.
Задание 3. Для начальной позиции (11, 31) укажите, кто из игроков имеет
выигрышную стратегию. Постройте дерево всех партий, возможных при
указанной вами выигрышной стратегии. Представьте дерево в виде рисунка
или таблицы.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Joker455
08.06.2023 07:23
C++

#include <iostream>#include <cstdlib>#include <ctime>using namespace std;int main(){ srand(time(0)); int mas[5][5]; int sum=0,sum1=0,sum2=0; for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ mas[i][j]=10+rand()%50; } } for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(i==j)sum+=mas[i][j]; if(i>j)sum1+=mas[i][j]; if(i<j)sum2+=mas[i][j]; } } for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ cout<<mas[i][j]<<" "; } cout<<endl; } cout<<endl; cout<<sum<<" "<<sum1<<" "<<sum2<<endl; return 0;}
0,0(0 оценок)
Ответ:
sashanatashakes
08.06.2023 07:23
// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк (столбцов) в матрице:');
  Writeln('*** Исходная матрица ***');
  var a:=MatrRandom(n,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var (su,sd,sl):=(0,0,0);
  for var i:=0 to n-1 do
    for var j:=0 to n-1 do
      if i<j then su+=a[i,j]
      else
        if i=j then sd+=a[i,j]
        else sl+=a[i,j];
  Writeln('Суммы элементов:');
  Writeln(' - верхней треугольной матрицы ',su);
  Writeln(' - главной диагонали ',sd);
  Writeln(' - нижней треугольной матрицы ',sl)
end.

Пример
Количество строк (столбцов) в матрице: 4
*** Исходная матрица ***
 -73 -89   4  39
  77 -32  23 -45
 -29 -70 -88 -40
 -83   9  21 -46

Суммы элементов:
 - верхней треугольной матрицы -108
 - главной диагонали -239
 - нижней треугольной матрицы -75

"Школьный" вариант

const
  nn=20; { максимальный размер }

var
  a:array[1..nn,1..nn] of integer;
  i,j,n:integer;
  su,sd,sl:longint;
 
begin
  Write('Количество строк (столбцов) в матрице:');
  Readln(n);
  Randomize;
  Writeln('*** Исходная матрица ***');
  su:=0; sd:=0; sl:=0;
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=Random(199)-99;
      Write(a[i,j]:4);
      if i<j then su+=a[i,j]
      else
        if i=j then sd+=a[i,j]
        else sl+=a[i,j]
      end;
      Writeln
    end;
  Writeln('Суммыа элементов:');
  Writeln(' - верхней треугольной матрицы ',su);
  Writeln(' - главной диагонали ',sd);
  Writeln(' - нижней треугольной матрицы ',sl)
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота