Кількість можливих шляхів пошуку при пошуку в BST


13

У мене таке питання, але відповіді на це не маю. Буду вдячний, якщо мій метод правильний:

З. Під час пошуку ключового значення 60 у двійковому дереві пошуку, вузли, що містять ключові значення 10, 20, 40, 50, 70, 80, 90, переміщуються, не обов'язково в заданому порядку. Скільки можливих різних порядків, у яких ці ключові значення можуть виникати на шляху пошуку від кореневого вузла, що містить значення 60?

(A) 35 (B) 64 (C) 128 (D) 5040

З питання я розумію, що всі задані вузли повинні бути включені в обхід, і в кінцевому підсумку ми повинні досягти ключа, 60. Наприклад, одна така комбінація була б:

10, 20, 40, 50, 90, 80, 70, 60.

Оскільки нам належить пройти всі наведені вище вузли, ми повинні почати або з 10, або з 90. Якщо ми почнемо з 20, ми не досягнемо 10 (оскільки 60> 20 і ми будемо переходити право піддерево 20)

Так само ми не можемо почати з 80, оскільки нам не вдасться досягти 90, оскільки 80> 60 ми будемо переходити в ліве підгрупу 80 і, таким чином, не досягаючи 90.

Давайте візьмемо 10. Решта вузлів - 20, 40, 50, 70, 80, 90. Наступний вузол може бути або 20, або 90. Ми не можемо взяти інші вузли з тієї ж раніше зазначеної причини.

Якщо ми розглянемо аналогічно, на кожному рівні у нас є два варіанти. Оскільки є 7 вузлів, два варіанти для першого 6 і жодного вибору для останнього. Так що є тотально

2222221 перестановки = =2664

  1. Це правильна відповідь?

  2. Якщо ні, то який краще підхід?

  3. Я хотів би узагальнити. Якщо вказано вузлів, то загальна кількість можливих шляхів пошуку складеn2n1

Відповіді:


15

Шукаючи ключ 60 ми досягаємо число менше , ніж 60, ми йдемо направо (де великі числа) , і ми ніколи не зустрічаються цифри менші , ніж . Цей аргумент можна повторити, тому числа 10, 20, 40, 50 повинні виникати в ході пошуку в такому порядку.KK

Точно так же, якщо шукаєте ключ 60 ми досягаємо число більше , ніж 60, ми йдемо leftt (де менші цифри) , і ми ніколи не зустрічаються числа більше , ніж . Отже, цифри 90, 80, 70 повинні виникати в ході пошуку в такому порядку.KK

Послідовності 10, 20, 30, 40, 50 і 90, 80, 70 можна потім перемішувати разом, доки їхні послідовності залишаються недоторканими. Таким чином, ми можемо мати 10, 20, 40, 50, 90, 80, 70, але також 10, 20, 90, 30, 40, 80, 70, 50.

Тепер ми можемо обчислити число, вибираючи положення великих і малих чисел. Дивіться коментар Aryabhata. У нас є дві послідовності з 4 і 3 чисел. Скількома способами я можу їх перетасувати? На останніх 7 позиціях я повинен вибрати 3 позиції для більших чисел (а решту 4 для менших чисел). Я можу вибрати їх способи. Після фіксації цих позицій ми знаємо повну послідовність. Наприклад, мій перший приклад має позиції SSSSLLL, другий - SSLSLL S.(73)

Ви просите узагальнення. Завжди чисел менше, ніж знайдене число, а числа більші фіксуються у їх відносному порядку. Менші числа повинні підніматися вгору, числа аргерів повинні знижуватися. Число тоді .xy(x+yy)

PS (відредаговано). Дякую Жиллю, який зазначив, що 30 не йдеться про це.


Я б точно хотів спробувати. Оскільки 90,80,70 № 90 має бути разом, давайте розглянемо їх як єдине "ні". і його можна розмістити серед 6 місць: _ 10 _ 20 _ 30 _ 40 _ 50 _ Отже, це Якщо за тією ж аналогією, №.s [10,20,30,40,50] можна розмістити в 4 місця, це Але це потрібно розділити на загальні комбінації, які трапляються (що я не в змозі зрозуміти)2624
avi

@avi Ні, вони не повинні бути разом, лише в такому порядку: 10, 20, 90, 30, 40, 80, 70, 50 - це нормально.
Гендрик Ян

1
@avi: Спробуйте мислити так: Велике і Мале. Зараз у вас є 8 плям, 5 малих та 3 великих. Як їх заповнити? 8 вибирають 3. Що доходить до 56, і я припускаю, що це отримав і Гендрик.
Ар'ябхата

2
@HendrikJan У початковому запитанні не було 30, було лише 7 значень. І 7 вибираємо 3 є (A).
Жил "ТАК - перестань бути злим"

1
@HendrikJan - чи можете ви мені це пояснити: Завжди числа менші за знайдене число, а числа більші фіксуються у їх відносному порядкуxy
аві

1

Ми перетворимо Moves в Text. Враховується, що під час пошуку ми обходили ці вузли

введіть тут опис зображення

як видно, що червоні - більші за 60, а сині - менші за 60.

Шлях до вузла 60 включав ці вузли. Отже, одне з можливих варіантів вирішення проблеми - будь-яке інше рішення буде містити лише ці кроки. coz одночасно на вузлі ми можемо отримати вказівки як S або L для порівняння, і оскільки зважаючи на те, що ці вузли зустрічалися, значить, вибрано напрямки з цього набору.

{S,S,S,S,L,L,L}

Отже, загальна кількість можливих рішень = усі перестановки цього набору, що задається відповідь = варіант А

7!4!×3!=35
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.