Построим диаграмму Эйлера-Венна и обозначим каждую область цифрой. Тем самым получается, что: • Евклид & Аристотель & Платон - это область под номером 4 и она равна 120 • Евклид & Платон - это область под номерами 5 и 4 и их сумма равна 280 • Евклид & Аристотель - это область под номерами 2 и 4 и их сумма равна 780
Нам надо найти сколько страниц будет найдено по следующему запросу Евклид & (Аристотель|Платон), т.е. получается что нам надо найти сумму 2, 4 и 5 области.
Далее мы знаем, что 4ая область равна 120, тогда мы можем найти чему равна 5 область (от 280 отнимаем 120 получаем 160) Находим 2 область, а это 780-120 получаем 660. Зная все эти области складываем их 660+120+160 получаем 940
// PascalABC.NET 3.3, сборка 1555 от 21.10.2017 // Внимание! Если программа не работает, обновите версию!
begin Writeln('*** Исходный массив A ***'); var a:=MatrRandom(10,10,0,20); a.Println(3); Writeln(3*a.ColCount*'-'); var b:=a.Rows.Select(row->row.Sum).ToArray; Writeln('*** Массив B ***'); b.Println end.
Тем самым получается, что:
• Евклид & Аристотель & Платон - это область под номером 4 и она равна 120
• Евклид & Платон - это область под номерами 5 и 4 и их сумма равна 280
• Евклид & Аристотель - это область под номерами 2 и 4 и их сумма равна 780
Нам надо найти сколько страниц будет найдено по следующему запросу Евклид & (Аристотель|Платон), т.е. получается что нам надо найти сумму 2, 4 и 5 области.
Далее мы знаем, что 4ая область равна 120, тогда мы можем найти чему равна 5 область (от 280 отнимаем 120 получаем 160)
Находим 2 область, а это 780-120 получаем 660. Зная все эти области складываем их 660+120+160 получаем 940
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('*** Исходный массив A ***');
var a:=MatrRandom(10,10,0,20);
a.Println(3); Writeln(3*a.ColCount*'-');
var b:=a.Rows.Select(row->row.Sum).ToArray;
Writeln('*** Массив B ***'); b.Println
end.
Пример
*** Исходный массив A ***
9 15 8 17 18 10 17 15 19 18
18 0 10 5 20 2 16 3 20 17
1 11 3 8 4 19 14 10 15 13
4 2 14 11 4 13 10 2 5 3
8 5 16 19 1 9 14 16 18 10
2 14 13 19 19 18 11 20 12 20
16 7 0 6 13 16 7 20 1 7
12 14 18 16 9 16 16 5 7 16
4 19 12 5 10 11 9 16 12 6
1 10 10 6 7 0 5 10 5 5
*** Массив B ***
146 111 98 68 116 148 93 129 104 59