Loading [MathJax]/jax/output/SVG/jax.js

Областная олимпиада по математике, 2023 год, 10 класс


На карточках написаны 0,1,2,,p1, где p - простое. Сколькими способами можно выбрать несколько карточек так чтобы сумма чисел на карточках делилась на р?
посмотреть в олимпиаде

Комментарий/решение:

  6
2 года назад #

Рассмотрим некоторое подмножество 0,1,...,p1(остатки по модулю p) из p>k>0 чисел с суммой всех его элементов s. Увеличим все его элементы на 1, тогда сумма его элементов будет равна s+k. Повторим операцию ещё p2 раза и получим p наборов с суммами s,s+k,s+2k,...,s+(p1)k. Они образуют полную систему вычетов по модулю p, а значит ровно одна из них делится на p. Разобьём все наборы из k элементов на такие группы из p наборов. Количество k-элементных подмножеств элементов равно (pk), выбрав из каждой группы наборы с суммами, делящимися на p, получаем (pk)p наборов. Поэтому искомое количество равно (p1)p+(p2)p+...+(pp1)p+1=2p2p+1

пред. Правка 4   6
2 года назад #

Рассмотрим многочлен f(x)=(x0+1)(x1+1)(xp1+1). Тогда искомое количество равно сумме коэффициентов при одночленах вида xpk,k>0. Воспользуемся техникой roots of unity filter. Пусть ω - корень из 1, то есть 1+ω1++ωp1=0ωp=1 и S={1,ω1,,ωp1}. Тогда искомая сумма равна 1pxSf(x)1. В свою очередь xSf(x)=f(1)+(p1)(ω0+1)(ω1+1)(ωp1+1)=2p+2p2(ωi+1) посчитаем, как произведение корней уравнения (x1)p1, по теореме Виета оно противоположно свободному члену -2. Таким образом ответ 2p2p+1.

Аналогичное решение