Re[5]: Листья и развилки
От: UgN  
Дата: 21.03.03 15:03
Оценка:
Здравствуйте, Pushkin, Вы писали:


P>
P>N+(N+K-3)/(K-1)
P>


P>Или, если кому милее, так


P>
P>(N*K+K-3)/(K-1)
P>


А как это выводится?
В частности откуда -3?
Re[4]: Объяснение
От: Pushkin Россия www.linkbit.com
Дата: 21.03.03 15:04
Оценка:
Здравствуйте, UgN, Вы писали:

UgN>( N / K + N + ( 2 — ( N % K + N — 1 ) / N ) );


Давай подставим какой-нибудь простейший случай, чтобы выяснить все недоразумения

N=5 K=2

Очевидно дерево такое (о-листья, х-развилки)

        х
      /   \
    х      х
   / \    / \
  х   о  о   о
 / \   
о   о


Всего узлов 9 (всяких — именно это и спрашивалось)

Теперь считаем по-твоему

5/2 + 5 — ( 5%2 + 5 — 1 ) / 5 = 2 + 5 — ( 1 + 5 — 1 ) / 5 = 8

Считаем как учил MichaelP

5 + (5+2-3)/(2-1) = 5 + 4 = 9
Re[6]: Листья и развилки
От: Pushkin Россия www.linkbit.com
Дата: 21.03.03 15:14
Оценка:
Здравствуйте, UgN, Вы писали:

UgN>Здравствуйте, Pushkin, Вы писали:


UgN>

P>>
P>>N+(N+K-3)/(K-1)
P>>


P>>Или, если кому милее, так


P>>
P>>(N*K+K-3)/(K-1)
P>>


UgN>А как это выводится?

UgN>В частности откуда -3?

1) ceil (X/Y) для целых X и Y переписывается всегда как (X+Y-1)/Y (это думаю все знают, но можно проверит на примерах)

2) в целых числах прекрасно работает обычное справило сложения дробей X/Y+Z = (X+Z*Y)/Y

Поэтому взяв исходную формулу имеем

N + ceil(1.0*(N-1)/(K-1)) =
N + ((N-1)+(K-1)-1)/(K-1) =
N + (N+K-3)/(K-1) =
(N*(K-1)+N+K-3)/(K-1) = (N*K+K-3)/(K-1)

Прости за такое количество математики

Что касается вывода основной формулы, то вот моё изложение, може оно будет понятней:
Каждое разветвление заменяет K узлов на 1, т.е. убивает K-1 узлов
Было N узлов, остался один верхний — надо убить N-1.
Причём гарантированно, поэтому круглим вверх.
Итого (N-1)/(K-1) с округлением вверх.
Re[5]: Объяснение
От: UgN  
Дата: 21.03.03 15:23
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>Давай подставим какой-нибудь простейший случай, чтобы выяснить все недоразумения


А какие недоразумения?

Я уже отметил свое согласие с MichaelP и Pushkin (кто это такой, не знаешь?)

P>N=5 K=2


P>Очевидно дерево такое (о-листья, х-развилки)


P>
P>        х
P>      /   \
P>    x      х
P>   / \    / \
P>  х   о  о   о
P> / \   
P>о   о
P>


P>Всего узлов 9 (всяких — именно это и спрашивалось)


Согласен.

Глюканул где-то.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.