Собаки 50 Кошки 60 если в документах упоминаются только Собаки или только Кошки, то документов было бы 50+60 = 110 Однако Собаки + Кошки = 80 ( операция | или + ) следовательно есть 110-80=30 документов в которых есть [ Собаки & Кошки ]
Собаки 50 Лемуры 70 50+70=120 тоже самое и с Собаками и Лемурами [ Собаки | Лемуры ] = 100 120-100=20 документов в которых есть [ Собаки & Лемуры ]
Лемуры & (кошки | собаки) = 20 [ Лемуры & Кошки | Лемуры & Собаки ] = 20 из этого следует что документов в которых есть [Лемуры И Кошки] не больше 20
Кошки & (Собаки | Лемуры) = Кошки & Собаки | Кошки & Лемуры = 30 документов | (меньше или равно 20 документов) = 30 документов.
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('n='); var v:=SeqRandom(n,-99,99).Select(t->0.1*t).ToArray; v.Println; var imin:=v.Select(t->Abs(t)).ToArray.IndexMin; Writeln('Номер минимального по модулю элемента- ',imin+1); var fn:=v.Select((x,i)->(x,i)).Where(t->t[0]<0).First[1]; Writeln('Сумма модулей элементов после первого отрицательного равна ', v[fn+1:].Sum(t->Abs(t))); var (a,b):=ReadReal2('Введите границы интервала значений для удаления:'); v:=v.Where(t->not t.Between(a,b)).ToArray; var m:=n-v.Length; if n>0 then begin SetLength(v,n); for var i:=v.Length to n-1 do v[i]:=0.0 end; v.Println end.
Пример n= 15 -9.4 3.9 6.2 -2.5 -5.2 9 4.9 -9.5 4.4 2.4 -8.8 3.1 -7.7 5.6 8.9 Номер минимального по модулю элемента- 10 Сумма модулей элементов после первого отрицательного равна 82.1 Введите границы интервала значений для удаления: -20 2 3.9 6.2 9 4.9 4.4 2.4 3.1 5.6 8.9 0 0 0 0 0 0
Кошки 60
если в документах упоминаются только Собаки или только Кошки,
то документов было бы 50+60 = 110
Однако Собаки + Кошки = 80 ( операция | или + )
следовательно есть 110-80=30 документов в которых есть
[ Собаки & Кошки ]
Собаки 50
Лемуры 70
50+70=120
тоже самое и с Собаками и Лемурами
[ Собаки | Лемуры ] = 100
120-100=20 документов в которых есть
[ Собаки & Лемуры ]
Лемуры & (кошки | собаки) = 20
[ Лемуры & Кошки | Лемуры & Собаки ] = 20
из этого следует что
документов в которых есть [Лемуры И Кошки]
не больше 20
Кошки & (Собаки | Лемуры) =
Кошки & Собаки | Кошки & Лемуры =
30 документов | (меньше или равно 20 документов) = 30 документов.
ответ: 30 документов.
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
var v:=SeqRandom(n,-99,99).Select(t->0.1*t).ToArray;
v.Println;
var imin:=v.Select(t->Abs(t)).ToArray.IndexMin;
Writeln('Номер минимального по модулю элемента- ',imin+1);
var fn:=v.Select((x,i)->(x,i)).Where(t->t[0]<0).First[1];
Writeln('Сумма модулей элементов после первого отрицательного равна ',
v[fn+1:].Sum(t->Abs(t)));
var (a,b):=ReadReal2('Введите границы интервала значений для удаления:');
v:=v.Where(t->not t.Between(a,b)).ToArray;
var m:=n-v.Length;
if n>0 then begin
SetLength(v,n);
for var i:=v.Length to n-1 do v[i]:=0.0
end;
v.Println
end.
Пример
n= 15
-9.4 3.9 6.2 -2.5 -5.2 9 4.9 -9.5 4.4 2.4 -8.8 3.1 -7.7 5.6 8.9
Номер минимального по модулю элемента- 10
Сумма модулей элементов после первого отрицательного равна 82.1
Введите границы интервала значений для удаления: -20 2
3.9 6.2 9 4.9 4.4 2.4 3.1 5.6 8.9 0 0 0 0 0 0