С одной стороны, можно было бы пойти самым дорогостоящим путём - если даже не слетать из одного города в другой, то хотя бы купить в онлайне билеты на все возможные рейсы и потом разложить их в алфавитном порядке. Например, "Агород - Бгород", "Агород - Вгород" ... "Сгород - Тгород". Но, согласитесь, это слишком разорительных подход к делу, с которым можно справиться гораздо проще. Причём на столько проще, что давным давно математики придумали формулу, с помощью которой всё считается абсолютно бесплатно в течение нескольких секунд.
Но, друзья мои, любая формула всегда лучше запоминается, если вы понимаете её смысл. Для этого я предлагаю разобраться с ней буквально на пальцах. Посмотрите на свою левую (или правую) ладонь:
Как видно, от одного большого пальца мы с вами можем провести четыре уникальные стрелки - соответственно, четыре рейса авиакомпании. От следующего удастся протянуть не более трёх, потому что между первой и второй точкой у нас уже имеется установленная связь. И так далее - от третьего пальца только два пути, а от четвёртого и вовсе один - только к пятому. В итоге мы получаем на пять аэропортов = 4 + 3 + 2 + 1 = 10 авиалиний.
Возьму на себя смелость заявить, что при добавлении в условие задачи второй руки мы получим аналогичную последовательность, которая будет начинаться с девяти и заканчиваться всё той же единицей = 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 45.
Но не будем забывать, что ещё десяток пальцев мы имеем на своих нижних конечностях, к которым подобным образом можно провести мысленные маршруты. В итоге получится длинный ряд чисел, которые необходимо будет сложить = 19 + 18 + 17 +16 + 15 + 14 + 13+ 12 + 11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 190. Следует заметить, что в каждом случае мы имеем соответствующие ряды натуральных чисел 1..4, 1..9 или 1..19.
Теперь осталось разобраться с их суммами. При этом для простоты понимания дальнейших рассуждений предлагаю вернуться к миниатюрной версии вопроса, когда у нас всего пять городов. Давайте вместо чисел 4, 3, 2 и 1 изобразим самолётики:
Визуально всё понятно. Но нам с вами нужна именно формула для расчётов. Как же её получить. И тут мне в голову пришла идея - добавить к имеющемуся треугольнику ещё один, отображённый зеркально относительно первого. Если их объединить, в результате получится прямоугольник (квадрат никак не выходит) со сторонами 5 * 4.
Для количества аэропортов N, равного в конкретном случае пяти, мы можем обобщить и написать следующее выражение: N * (N-1). Это общее количество самолётиков (маршрутов) в прямоугольнике. Для двадцати пунктов взлёта-посадки само выражение сохранится, но нас интересует количество самолётов только в одном из двух треугольников. Нет ничего проще - разделите промежуточный результат на два и вы получите искомую формулу:
Хотите проверить? Пожалуйста: 20*(20-1)/2 = 20*19/2 = 380/2 = 190. Сходится с предыдущим ответом, полученным экспериментальным путём? И не удивительно. Да, вам уже показывали эту формулу, но я попытался объяснить простым языком, почему именно так, а не иначе всё это считается.