LINUX.ORG.RU
решено ФорумTalks

число-палиндром


0

1

пришел только что с городской олимпиады по информатике. Вот одна из задач оттуда:

Требуется написать программу, которая вычисляет количество палиндромов, состоящих из K цифр, в P-ичной системе счисления. Одноразрядные числа также считаются палиндромами.
Технические требования:
Имя входного файла: PAL.IN
Имя выходного файла: PAL.OUT
Ограничения: 1⩽P⩽16, 1⩽K⩽20, 1 секунда

Возникает вопрос. Если K=1 (одна цифра в числе), сколько таких чисел-палиндромов получится? Например, P=10. Как правильнее: 0;1;2;3;4;5;6;7;8;9 (10 чисел), или 1;2;3;4;5;6;7;8;9 (9 чисел)?
Иными словами, является ли 0 числом-палиндромом?

★★★★★

Последнее исправление: TheAnonymous (всего исправлений: 1)

>В частности, палиндромами являются все строки из 1 символа, а также пустая строка (строка из 0 символов).

devl547 ★★★★★
()

по условию «Одноразрядные числа также считаются палиндромами», а ведь ноль - не одноразнядное число

TheAnonymous ★★★★★
() автор топика
Ответ на: комментарий от TheAnonymous

>ну там же нули во всех разрядах. Значит (по логике) у числа разрядов нет

Пустая строка тоже палиндром.

devl547 ★★★★★
()
Ответ на: комментарий от leiche

Интуитивно голосую за второе, так что рассматривать надо, имхо, наборы символов (в данном случае - цифр), а не заморачиваться над характеристиками чисел.

leiche ★★
()
Ответ на: комментарий от devl547

Почему? Как можно перевернуть то, чего не существует?

alfix
()
Ответ на: комментарий от alfix

Нет, ну ясно же, что надо искать палиндромы в рамках принятой математической нотации, а так числа всё-таки не записываются.

Когда ищут слова-палиндромы, не засчитывают же ведь бессмысленные наборы букв. То же самое и с числами.

leiche ★★
()
Ответ на: комментарий от strangeman

нет. Например, в 1000 - самый старший разряд, содержащий отличное от нуля число - третий (справа, нумерация с нуля), следовательно число четырёхразрядное. (у числа 4 разряда - нулевой, первый, второй и третий, который с единицей)

TheAnonymous ★★★★★
() автор топика
Ответ на: комментарий от static_lab

Типа того, задача так то простая. Вопрос возник только в случае с нулём.

TheAnonymous ★★★★★
() автор топика
Ответ на: комментарий от TheAnonymous

чо за чушь? разряд есть? есть. что там стоит - другое дело. тебя послушать, так 0 - вообще не число. да и не существует вовсе

xsektorx ★★★
()

Такие вещи нужно узнавать у устроителей олимпиады.

Deleted
()
Count(0) = 1
Count(K) = (P-1) * P^[(K-1)/2], K > 0

Где [x] - целая часть x. И где здесь программирование?
segfault ★★★★★
()

какое слово в фразе «одноразрядные числа являются палиндромами» тебе не понятно?

AndreyKl ★★★★★
()

Осталось понять, причем тут олимпиада по информатике, ибо такое на МК-52 можно посчитать. Правда не за 1 секунду, а за 20, но все равно :)

ну разве что принять во внимание, что 90% «информатиков» в математике полный швах.

dikiy ★★☆☆☆
()
Ответ на: комментарий от TheAnonymous

>по условию «Одноразрядные числа также считаются палиндромами», а ведь ноль - не одноразнядное число

а какое это число по-твоему? Двухразрядное чтоли?

dikiy ★★☆☆☆
()
Ответ на: комментарий от static_lab

>Я что-то не пойму, в этой задаче всего лишь тупая комбинаторика требуется?

причем простейшая:

K - четное: N=(1-1/P)*P^(K/2) K - нечетное P^((K+1)/2)-P^((K-1)/2)

ну и просуммировать по K=1..K

PS писал по-быстрому, может где и просмотрел ошибку.

dikiy ★★☆☆☆
()
Ответ на: комментарий от TheAnonymous

Вопрос, собственно, к товарищу капитану. А вот меня интересует где в этой задаче требуется программирование?

segfault ★★★★★
()
Ответ на: комментарий от segfault

ну как же

Требуется написать программу, которая вычисляет количество палиндромов, состоящих из K цифр, в P-ичной системе счисления. Одноразрядные числа также считаются палиндромами.

TheAnonymous ★★★★★
() автор топика

Короче, сегодня сказали, что в данной задаче ноль тоже надо учитывать.
Все расходимся, вопрос решен

TheAnonymous ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.