// PascalABC.NET 3.1, сборка 1200 от 13.03.2016 begin var a:=MatrixRandom(7,7,0,9); var k:=0; for var i:=0 to 6 do begin for var j:=0 to 6 do begin Write(a[i,j]:3); if a[i,j] in [1..5] then Inc(k) end; Writeln end; Writeln('Кол-во элементов на [1,5]: ',k) end.
const n=7; var a:array[1..n,1..n] of integer; i,j,k:integer; begin Randomize; k:=0; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(10); Write(a[i,j]:3); if a[i,j] in [1..5] then Inc(k) end; Writeln end; Writeln('Кол-во элементов на [1,5]: ',k) end.
1. Определить ученика (фамилию, имя и отчество из списка). Делим список на две части и задаем вопрос: "Ты в первой части списка?". По ответу выбираем нужную часть списка и повторяем до тех пор, пока не останутся две строки. После этого спрашиваем: "Ты верхний?". И по ответу устанавливаем ученика. Такой метод при N вариантах позволяет найти ответ за k=㏒₂N вопросов. Или, иначе, k≤2ⁿ 2⁹<560<2¹⁰ ⇒ k=10, т.е. нужно задать 10 вопросов.
2. Количество классов у нас 11. Поступаем аналогично. Разбиваем номера классов на две части, например, с 1 по 6 и с 7 по 11. И спрашиваем: "Ты учишься в классе большем, чем шестой?" По ответу выбираем группу и снова разбиваем её на две части. Например, если ответ "да", то новое разбиение будет на группы 7-9 и 10-11. Повторяем, пока не найдем ответ. И здесь расчет идет по той же схеме. 2³<11<2⁴ ⇒ k=4, т.е. потребуется задать 4 вопроса.
Общее количество вопросов составит 10+4=14
ответ: 14 вопросов
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку