В команде есть: 1. Синьерестый аналитик
2. 2 разработчика: джун и сеньор
3. Мидл тестировщик
Аналитик разговаривает с заказчиком, после чего пишет спецификацию. Эта спецификация попадает разработчикам, которые пишут код. А после этого тестировщик проверяет, что всё сделано в соответствии с требованиями.
Каждый раз, когда задача уходит на прод (после каждой итерации разработки), заказчик оценивает своё недовольство по шкале от 0 до 10. Где 0 - это, всё замечательно, а 10 - ужасно.
Аналитик с вероятностью 0.1 допускает ошибку в требованиях, что приводит к повышению недовольства заказчика на 4.
С вероятностью 0.4 задачу делает джун разработчик. При этом, после разработки джун генерирует задачу на техдолг с вероятностью 0.5, а синьор с вероятностью 0.2.
Тестировщик пропускает баг на прод с вероятностью 0.2, что повышает недовольство заказчика на 3. Если баг был найден, то задача остаётся на следующую итерацию. С задачей всё ок в 60% случаев.
Сейчас в бэклоге есть 10 задач. В одну итерацию от анализа до разработки берется 2 задачи. Если есть задачи на тех-долг, то хотя бы одна задача должна быть сделана в итерации. Каждый раз, когда задача заказчика не берётся из бэклога в работу это приводит к росту недовольства на 1.
Нужно определить:
1. Количество итераций за которые будут сделаны все задачи в самом хорошем случае и какова вероятность наступления этого события. То же самое для самого плохого случая.
2. Общий уровень недовольства заказчика в самом плохом случае по 5 итераций и какова вероятность наступления этого события.
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.
Тестовое решение:
2 1 7 3 3 2 7
9 2 9 2 0 5 5
4 2 6 9 4 6 0
1 0 3 5 4 5 9
6 3 6 0 2 0 8
0 8 4 3 2 1 8
6 0 4 4 5 4 0
Кол-во элементов на [1,5]: 27
Вариант "совсем для школы"
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.
Исключа́ющее «или» (сложе́ние по мо́дулю 2, XOR, строгая дизъюнкция, поразрядное дополнение, инвертирование по маске, жегалкинское сложение, логическое вычитание, логи́ческая неравнозна́чность) — булева функция, а также логическая и битовая операция, в случае двух переменных результат выполнения операции истинен тогда и только тогда, когда один из аргументов истинен, а другой — ложен. Для функции трёх (тернарное сложение по модулю 2) и более переменных — результат выполнения операции будет истинным только тогда, когда количество аргументов, равных 1, составляющих текущий набор, — нечётное. Такая операция естественным образом возникает в кольце вычетов по модулю 2, откуда и происходит название операции.