|
|
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
Вокруг считающего стоит N человек, из которых выделен первый, а остальные занумерованы по часовой стрелке числами от 2 до N. Считающий, начиная с кого-то, ведет счет до M. Человек на котором остановился счет, выходит из круга. Счет продолжается со следующего человека и так до тех пор, пока не останется один человек. Определить a) номер оставшегося человека, если известно M и то, что счет начинался с первого человека; b) номер человека c которого начинался счет, если известно M и номер оставшегося человека L. можно определить за количество итераций меньше O(N)? С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2009, 12:59:27 |
|
||
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
Если m = 2, то можно найти так: n записывается в бинарном виде, делается left rotate на одну позицию, полученное число и будет ответом. Например, Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2009, 16:09:15 |
|
||
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
RT183.1Если m = 2, то можно найти так: n записывается в бинарном виде, делается left rotate на одну позицию, полученное число и будет ответом. Например, Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2009, 16:39:31 |
|
||
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
> как получили, если не секрет? плин, вычитал конечно где-то (не сам ведь открыл ) To get a(n), write n in binary, rotate left 1 place. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2009, 16:52:31 |
|
||
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
Для m = 2 https://www.spoj.pl/problems/DANGER/ , например; да, left rotate; полагаю, для m > 2 то же самое, только n надо записывать в системе с основанием m. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2009, 18:27:47 |
|
||
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
нифига подобного: m = 3 n = 121(3) n_ = 211 (> 121) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2009, 20:08:16 |
|
||
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
RT183.1> как получили, если не секрет? плин, вычитал конечно где-то (не сам ведь открыл ) To get a(n), write n in binary, rotate left 1 place. Могу ошибаться за давностью чтения, но по моему это подробно разбирается в "Конкретной математике" Кнута и Ко. называется задача Иосифа Флавия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2009, 12:36:48 |
|
||
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
Naf можно определить за количество итераций меньше O(N)? Определяется за O(N-1) итераций, следуя описанному а формулировке задачи алгоритму :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2009, 23:44:12 |
|
||
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
RAndrewNaf можно определить за количество итераций меньше O(N)? Определяется за O(N-1) итераций, следуя описанному а формулировке задачи алгоритму :)такого понятия нет, точнее это все равно O(N) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 10:07:34 |
|
||
|
Считалочка?
|
|||
|---|---|---|---|
|
#18+
JartisanRT183.1> как получили, если не секрет? плин, вычитал конечно где-то (не сам ведь открыл ) To get a(n), write n in binary, rotate left 1 place. Могу ошибаться за давностью чтения, но по моему это подробно разбирается в "Конкретной математике" Кнута и Ко. называется задача Иосифа Флавияточно! и как всегда выручает вики: http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%98%D0%BE%D1%81%D0%B8%D1%84%D0%B0_%D0%A4%D0%BB%D0%B0%D0%B2%D0%B8%D1%8F ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 10:13:01 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=115&tid=1344149]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 362ms |

| 0 / 0 |
