Артур1807
?>

100 волчий остров размером 20х20 заселен дикими кроликами, волками и волчицами. имеется по нескольку представителей каждого вида. кролики довольно глупы: в каждый момент времени они с одинаковой вероятностью 1/9 передвигаются в один из восьми соседних квадратов (за исключением участков, ограниченных береговой линией) или просто сидят неподвижно. каждый кролик с вероятностью 0, 2 превращается в двух кроликов. каждая волчица передвигается случайным образом, пока в одном из соседних восьми квадратов не окажется кролик, за которым она охотится. если волчица и кролик оказываются в одном квадрате, волчица съедает кролика и получает одно очко. в противном случае она теряет 0, 1 очка. волки и волчицы с нулевым количеством очков умирают.

Информатика

Ответы

IInessa44478
Мое предложение - в массиве 20 на 20 храниться структура struct cell { int rabbit; // кол-во зайцев int* wolfs; // очки волков int* she_wolfs;// очки волчиц } очки предлагаю хранить умноженными на 10 во избежания проблем вещественным сравнением. Но есть одна проблема с задачей в целом. Это порядок ходов. Если в двух соседних клетках находятся заяц и волк, и первый ходит заяц, то волк может остаться голодным. Если же первый ходит волк - он то зайца может скушать. Поэтому, я предлагаю, что вначале ходят все зайцы, потом все волки - по очереди.
mospaskrasnogorbukh
Program arr_length;

const
  IN_FILENAME = 'INPUT.txt';
  OUT_FILENAME = 'OUTPUT.txt';

var
  fileIn,fileOut: TextFile;
  s,t: string;

begin
  writeln('Загружаю входные данные...');
  t := '';
  AssignFile(fileIn, IN_FILENAME);
  AssignFile(fileOut, OUT_FILENAME);
    reset(fileIn);
    while not eof(fileIn) do
      begin
        readln(fileIn, s);
        if (s = '0') then
             break
        else
          t := t + s;
      end;
    CloseFile(fileIn);
    rewrite(fileOut);
    writeln(fileOut, Length(t));
    CloseFile(fileOut);
end.
oldprince840
PascalABC.NET 3.3.5, сборка 1669 от 21.05.2018
Внимание! Если программа не работает, обновите версию!

1. Функция

function avg(a:array of integer):=a.Where(t->t>0).Average;

begin
  var a:=ReadAllText('input.txt').ToIntegers;
  Writeln('Среднее значение положительных элементов ',avg(a))
end.

2. Процедура

procedure avg(a:array of integer; var m:real);
begin
  m:=a.Where(t->t>0).Average
end;

begin
  var a:=ReadAllText('input.txt').ToIntegers;
  var m:real;
  avg(a,m);
  Writeln('Среднее значение положительных элементов ',m)
end.

Хорошо видно, что решение с функцией имеет явное преимущество.

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

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

100 волчий остров размером 20х20 заселен дикими кроликами, волками и волчицами. имеется по нескольку представителей каждого вида. кролики довольно глупы: в каждый момент времени они с одинаковой вероятностью 1/9 передвигаются в один из восьми соседних квадратов (за исключением участков, ограниченных береговой линией) или просто сидят неподвижно. каждый кролик с вероятностью 0, 2 превращается в двух кроликов. каждая волчица передвигается случайным образом, пока в одном из соседних восьми квадратов не окажется кролик, за которым она охотится. если волчица и кролик оказываются в одном квадрате, волчица съедает кролика и получает одно очко. в противном случае она теряет 0, 1 очка. волки и волчицы с нулевым количеством очков умирают.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Daletskaya982
peshnoshamon
Dmitrievna-Dmitrii980
vadimpopov88
Lolira64
Александрович Владимирович
skrepka397412
vorota-grupp
Kalmikova1666
murza2007
Захаров-Иванович
dashanna04225
uzunanna19922488
gena1981007
kulttrop