Фактический вопрос идет как этотПочему этот математический образец происходит здесь?
Комната имеет N (от 1 до N включительно) луковиц и N переключателей. N людей идут один за другим. 1-й человек отправляется в и не переключает ни один из переключателей. 2-й человек входит и переключает все переключателей, кроме кратных 2 (2, 4, 6 ...). 3-й человек отправляется в и переключает все переключатели, отличные от кратных 3 (3, 6, 9 ...), и поэтому (до N-го человека переключает все переключатели, кроме N-го переключателя). Как только процесс завершен, сколько ламп находится в состоянии «включено». (Предположим, что все луковицы сначала находятся в состоянии «выключено»).
оригинальный вопрос можно найти here
Я попытался решить ее, написав грубую силу решателя первым, но это дало бы мне «максимальное время превышены» приговор, потому что N может быть как 10E9 ,
Во время тестирования решения для некоторых значений N, я ударил по шаблону, который привел к окончательному решению
Это лучше всего объясняется с изображением, наблюдать количество 1-х, которые отделяются друг от друга 0-х - 2 , 4, 6, 8 ...
Но я до сих пор не удалось выяснить, почему эта модель существует? Другими словами, какова математическая причина этого шаблона?
Вот код Жеребьевка (N) Я использовал
def draw(N):
arr=[0]*N
for i in range(2,N+1):
for j in range(0,N):
if((j+1)%i!=0):
arr[j]^=1
print(N,arr)
ans=0
for i in range(0,N):
if(arr[i]==1):
ans+=1
print(ans)
Я немного смущен, если этот вопрос принадлежит SO или МО. –
иногда есть только тонкая линия между программированием и математикой. – user1232296
@NamitSinha Определенно не МО. Я думаю, вы думаете о математике.SE. – Teepeemm