Больше цитат

betacolinsgmailcom

3 декабря 2022 г., 22:05

- Представь себе группу воинов, которых захватили в плен враги. Несчастным грозит жестокая казнь, и они решились на коллективное самоубийство. Так вот, пленные сели в круг и договорились, что каждый убивает соседа слева. То есть номер один убьёт сидящего от него по левую руку, и так далее. В конце концов, выживет только один. Какое место должен занять тот, кто хочет выжить?

- И ты не можешь справиться с такой простой задачей? Хотя она по- своему интересна. Она решается с ходу, если число воинов можно представить в виде "два в степени n", то есть если оно является какой- то степенью двойки - 4, 8, 16, 32 и так далее. В этом случае всегда будет выживать номер первый, то есть тот, с кого началась цепочка убийств. Поэтому тому, кто хочет остаться в живых, для начала нужно посчитать число сидящих в кругу и вычесть из него наибольшее число, являющееся степенью двойки. Скажем, воинов 19. Наибольшая степень двойки, содержащаяся в этом числе, - 16. Вычитаем из 19 16, получаем 3. Далее тройку нужно удвоить, потому что воины умирают через одного, и прибавить номер того, с которого всё начинается, то есть единицу. 3 умножаем на 2, получаем 6. 6 + 1 = 7. То есть желающий выжить должен сесть седьмым, считая от того, кто начинает.