Всем привет, меня зовут Андрей, и это снова я!
Иногда можно встретить задачи, связанные с поиском «зеркальных» чисел.
Имеются ввиду такие числа, которые читаются одинаково и слева направо, и справа налево. Например, 505 или 16961.
Допустим, что стоит задача: вычислить суммарное количество всех 50-значных «зеркальных» чисел. Эту задачу можно решить разными способами, в том числе и с применением эксель.
Сначала разработаем алгоритм для поиска нужных нам чисел.
Если бы речь шла о небольших числах, например, трехзначных, все было бы намного проще. Первая цифра трехзначного числа – это целое при делении числа на 100, последняя цифра – остаток при делении числа на 100, средняя цифра для нахождения «зеркального» трехзначного числа вовсе не нужна. Если всего цифр – три, и при этом первая равна третьей, то можно считать, что число будет «зеркальным». Что подсчитать количество всех трехзначных «зеркальных» чисел, не обязательно проверять каждое число от 101 до 999 включительно, и проверить каждое на «зеркальность». Есть способ намного проще. В наших числах – всего 3 цифры, 3 – это число не четное. Это значит, что у этого числа одна цифра будет слева, одна справа, и одна в середине. Для левой части числа есть всего 9 вариантов (от 1 до 9 включительно). Для каждого варианта левой части есть по 10 вариантов для середины. Умножим 9 на 10, будет 90, это и есть наш ответ. Очевидно, что каким бы ни была левая часть числа, правая его часть будет симметрична левой, но, поскольку всего цифр – три, то правая часть будет не только симметрична левой, но и равна левой.
Итак, всего есть 90 трехзначных «зеркальных» чисел. Это числа 101, 111, 121, 131, 141, ну и так далее. Наибольшее из этих чисел будет 999.
А если бы мы взяли четырехзначные числа, что тогда? 4 – это число четное, поэтому четырехзначные числа будем делить всего на 2 части. Это левая часть и правая часть, правая часть всегда будет симметрична левой. А левая часть будет состоять из чисел от 10 до 99 включительно. Всего таких вариантов (для четырехзначных чисел) будет ровно 90. Это и есть наш ответ. Таким образом, среди четырехзначных чисел ровно столько же «зеркальных», сколько и среди трехзначных. Это будут числа 1001, 1111, 1221, 1331, и так далее. Наибольшее из этих чисел – 9999.
В принципе, с 50-значными числами ситуация такая же. Если первая цифра числа равна 50-й, вторая равна 49-й, и так далее, то число будет «зеркальным». В левой половине этого числа – 25 цифр. Минимальное число для левой половины – это единица, вслед за которой будет 24 нуля:
1000000000000000000000000
Максимум для левой половины – это 25 девяток:
9999999999999999999999999
Всего различных вариантов для левой половины – это
9000000000000000000000000
Это и есть окончательные ответ: ровно столько будет 50-значных «зеркальных» чисел. Потому что, какая бы ни была «левая» часть числа, если ее перевернуть слева направо, то получится правая часть числа. Максимальное количество различных вариантов для левой части чисел мы рассчитали. Если сложить воедино левую и правую части числа, то минимальное из этих чисел (минимальное «зеркальное» 50-значное число) будет равно
10000000000000000000000000000000000000000000000001
Максимальное 50-значное «зеркальное» число будет равно
99999999999999999999999999999999999999999999999999
Как оказалось, эксель нам даже и не понадобился - все варианты мы просчитали даже без калькулятора.