М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
xaker228lol
xaker228lol
28.12.2021 21:54 •  Информатика

Водномерном массиве, состоящем из n целых элементов, вычислите произведение элементов массива, стоящих на нечетных позициях и расположенных между первым и вторым нулевыми элементами.

👇
Ответ:
polyaketoztt67
polyaketoztt67
28.12.2021
Var a: array[1..100] of integer;
    i,n,bg,nd,s: integer;
begin
  write('n = '); readln(n);
  randomize;
  bg:=0;  nd:=0;
  for i:=1 to n do 
  begin
    a[i]:=random(10);
    write(a[i],' ');
    if a[i]=0 then
       if (bg>0) and (nd=0) then nd:=i
       else if bg=0 then bg:=i;
  end; 
  writeln;
  if bg+nd>1 then
  begin
    if (bg mod 2=0) then inc(bg)
    else bg:=bg+2;
    if (nd mod 2=0) then dec(nd)
    else nd:=nd-2;
    writeln('начало: ',bg,'  конец: ',nd);  
    s:=1;
    repeat
      s:=s*a[bg];
      bg:=bg+2;
    until bg>nd;
    writeln('произведение: ',s);
  end
  else writeln(0);
end.

n = 15
4 4 7 0 3 5 6 1 1 8 8 4 0 1 9 
начало: 5  конец: 11
произведение: 144
4,6(51 оценок)
Открыть все ответы
Ответ:
Natte1
Natte1
28.12.2021

Самая оптимальная стратегия угадывания - дихотомия, то есть деление отрезка пополам и задавание вопроса больше? (или меньше?)

Например, загадано 50

Последовательность

32   64/2            больше

48   (32+64)/2   больше

56   (48+64)/2   меньше

52   (48+56)/2   меньше

50   (48+52)/2   попал

 

Теперь о задаче. Вопрос очень некорректный, если бы он звучал, как сколько попыток нужно сделать, чтобы угадать? , то решение простое

64 = 2^6, поэтому нужно 6 попыток 6 = 110b, значит 3 бит достаточно, чтобы в них разместить это количество попыток.

НО в задаче вопрос-то другой! Потому что в процессе отгадывания на каждом шаге нужно знать 1. Концы отрезка, 2. ответ

Концы это 6 бит и 6 бит +ответ 1 бит, итого 13 бит на шаг *6 = 78 бит. Можно ещё сократить немного, так как в последующем вопросе используется информация из предыдущего(один из концов интервала).

Уточни, что имеется в виду под фразой "какое количество информации", иначе задача неопределена и допускает многочисленные толкования.

 

 

4,6(61 оценок)
Ответ:
lizokf8
lizokf8
28.12.2021
Delphivar  a1, a2: array of integer;  n, c, i: integer; procedure PrintDescending(a: array of integer); var i, j, max: integer; begin  for i := 0 to Length(a) - 1 do  begin    for j := 0 to Length(a) - 1 do      if a[j] > a[max] then max := j;    Write(a[max], ' ');    a[max] := -10001;  end; end; begin  //Запрашиваем ввод длины массива:  Write('Введите длину массива: ');  Read(n);    //Устанавливаем длину массивов:  SetLength(a1, n);  SetLength(a2, n);    //Заполняем первый массив случайными числами:  for i := 0 to n - 1 do    a1[i] := Random(201) - 100;    //Заполняем второй массив только нечётными элементами первого:  for i := 0 to n - 1 do    if Abs(a1[i]) mod 2 = 1 then      begin      a2[c] := a1[i];      c := c + 1;    end;    //Урезаем второй массив:  SetLength(a2, c);    //Выводим первый массив:  for i := 0 to n - 1 do    Write(a1[i], ' ');  Writeln;    //Выводим второй массив в порядке убывания:  if c = 0 then Write('Нечётных элементов нет.')  else PrintDescending(a2); end.

Пример работы:


Дан одномерный массив целого типа. Получить другой массив, состоящий только из нечетных чисел исходн
4,7(53 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ