Варианты опроса учеников

تم الإنشاء في: ٥ يناير ٢٠٢٥

تمت الإجابة باستخدام OpenAI 01 بواسطة OpenAI01

سؤال

В классном журнале записаны по алфавиту фамилии 18 учеников. Когда учитель проводит опрос, он вызывает некоторых учеников. Учитель никогда не вызывает двух учеников, чьи фамилии записаны подряд. Но среди невызванных не бывает больше двух учеников, чьи фамилии записаны подряд. Сколько разных вариантов существует для проведения опроса?

الفكرة

Mapping the constraints

I’m identifying the constraints: no two adjacent students are called, and no more than two consecutive students remain uncalled.

Defining the sequence

I’m working on counting valid binary sequences of length 18 that avoid consecutive 1's and triple consecutive 0's. Establishing a recurrence relation is the next step.

Tracking sequences

I’m identifying valid sequences by their endings: '1', '0' with a single trailing 0, and '00' with two trailing 0's, establishing recurrence relations for each.

Establishing recurrence

I’m clarifying that b(n) is derived from sequences ending in '1'. For n=1, b(1) is '0', while a(1) and c(1) are 1 and 0 respectively.

Refining sequence rules

I’ve clarified recurrence relations: a(n) combines sequences ending in '0' or '00', b(n) forms from sequences ending in '1', and c(n) springs from sequences ending in '0' with run length 1.

Calculating valid sequences

OK, let me see. I’ve defined recurrence relations for sequences ending in '1', '0', and '00'. Summing these, I calculated the total valid sequences for n from 1 to 18, arriving at S(18)=265.

Thought about варианты проведения опроса pendant 18 secondes

الإجابة

Нам нужно сосчитать количество способов выбрать подмножество из 18 учеников (каждому ученику ставим «вызван» = 1 или «не вызван» = 0) так, чтобы:

  1. Не было двух подряд вызванных (то есть в последовательности не встречалось "11").
  2. Не было трёх подряд невызванных (то есть не встречалось "000").

Иными словами, мы считаем количество бинарных последовательностей длины 18 без подряд идущих единиц и без трёх подряд идущих нулей.


Идея решения через динамику

Обозначим через S(n)S(n) количество таких «хороших» последовательностей длины nn. Удобно ввести более тонкое разбиение:

  • a(n)a(n) — число хороших последовательностей длины nn, заканчивающихся на 11;
  • b(n)b(n) — число хороших последовательностей длины nn, заканчивающихся на 00, причём в конце стоит ровно один ноль (то есть последний фрагмент 10\dots 10);
  • c(n)c(n) — число хороших последовательностей длины nn, заканчивающихся на 0000 (то есть последний фрагмент 100\dots 100).

Заметим, что трёх нулей подряд быть не может (это запрещено), поэтому ситуации 000\dots 000 мы в отдельных состояниях не учитываем: такие последовательности недопустимы.

Тогда общее число хороших последовательностей длины nn равно

S(n)  =  a(n)+b(n)+c(n).S(n) \;=\; a(n) + b(n) + c(n).

Как переходить между состояниями

Рассмотрим, из каких состояний могут получаться другие при добавлении ещё одного символа (0 или 1) к «хвосту»:

  1. a(n)a(n) (заканчивается на 11) может получиться, если в (n1)(n-1)-ой позиции был ноль (один или два). Значит,

    a(n)=b(n1)+c(n1).a(n) = b(n - 1) + c(n - 1).

    (Из a(n1)a(n-1) перейти нельзя, так как это дало бы две подряд идущие единицы.)

  2. b(n)b(n) (заканчивается на одинарный 00) может получиться, если предыдущая последовательность закончилась на 11. Значит,

    b(n)=a(n1).b(n) = a(n - 1).
  3. c(n)c(n) (заканчивается на 0000) может получиться, если предыдущая последовательность закончилась на одинарный ноль b(n1)b(n-1). Тогда мы добавляем ещё один ноль:

    c(n)=b(n1).c(n) = b(n - 1).

Таким образом, получаем систему рекуррентных соотношений:

{a(n)=b(n1)+c(n1),b(n)=a(n1),c(n)=b(n1),S(n)=a(n)+b(n)+c(n).\begin{cases} a(n) = b(n-1) + c(n-1),\\ b(n) = a(n-1),\\ c(n) = b(n-1),\\ S(n) = a(n) + b(n) + c(n). \end{cases}

Базовые случаи

Для n=1n = 1:

  • a(1)a(1) — последовательности длины 1, оканчивающиеся на 11. Такая всего одна: [1][\,1\,]. Значит a(1)=1a(1) = 1.
  • b(1)b(1) — последовательности длины 1, оканчивающиеся на 00, и там ровно один ноль. Это [0][\,0\,]. Значит b(1)=1b(1) = 1.
  • c(1)c(1) — последовательности длины 1, заканчивающиеся на 0000. Это невозможно, значит c(1)=0c(1) = 0.

Тогда

S(1)=a(1)+b(1)+c(1)=1+1+0=2.S(1) = a(1) + b(1) + c(1) = 1 + 1 + 0 = 2.

Далее аккуратно считаем по рекурсиям:

n=2n = 2

  • a(2)=b(1)+c(1)=1+0=1a(2) = b(1) + c(1) = 1 + 0 = 1,
  • b(2)=a(1)=1b(2) = a(1) = 1,
  • c(2)=b(1)=1c(2) = b(1) = 1,
  • S(2)=a(2)+b(2)+c(2)=1+1+1=3S(2) = a(2) + b(2) + c(2) = 1 + 1 + 1 = 3.

n=3n = 3

  • a(3)=b(2)+c(2)=1+1=2a(3) = b(2) + c(2) = 1 + 1 = 2,
  • b(3)=a(2)=1b(3) = a(2) = 1,
  • c(3)=b(2)=1c(3) = b(2) = 1,
  • S(3)=2+1+1=4S(3) = 2 + 1 + 1 = 4.

Дальше можно либо продолжать вручную, либо (что проще на экзамене/контрольной) аккуратно «прогнать» эти соотношения. Ниже таблица значений:

na(n)b(n)c(n)S(n)11102211133211442215532276432975431287541699752110129728111612937122116124913282116651437282186154937281141665493715117866549200181148665265\begin{array}{c|ccc|c} n & a(n) & b(n) & c(n) & S(n) \\ \hline 1 & 1 & 1 & 0 & 2 \\ 2 & 1 & 1 & 1 & 3 \\ 3 & 2 & 1 & 1 & 4 \\ 4 & 2 & 2 & 1 & 5 \\ 5 & 3 & 2 & 2 & 7 \\ 6 & 4 & 3 & 2 & 9 \\ 7 & 5 & 4 & 3 & 12 \\ 8 & 7 & 5 & 4 & 16 \\ 9 & 9 & 7 & 5 & 21 \\ 10 & 12 & 9 & 7 & 28 \\ 11 & 16 & 12 & 9 & 37 \\ 12 & 21 & 16 & 12 & 49 \\ 13 & 28 & 21 & 16 & 65 \\ 14 & 37 & 28 & 21 & 86 \\ 15 & 49 & 37 & 28 & 114 \\ 16 & 65 & 49 & 37 & 151 \\ 17 & 86 & 65 & 49 & 200 \\ 18 & 114 & 86 & 65 & 265 \\ \end{array}

Из последней строки видно, что для n=18n=18:

S(18)  =  a(18)+b(18)+c(18)  =  114+86+65  =  265.S(18) \;=\; a(18) + b(18) + c(18) \;=\; 114 + 86 + 65 \;=\; 265.

Ответ: 265\boxed{265}.

مشاركة هذا السؤال والجواب