Nombre de chemins de recherche possibles lors de la recherche dans BST


12

J'ai la question suivante, mais je n'ai pas de réponse à cela. J'apprécierais si ma méthode est correcte:

Q. Lors de la recherche de la valeur de clé 60 dans une arborescence de recherche binaire, les nœuds contenant les valeurs de clé 10, 20, 40, 50, 70, 80, 90 sont parcourus, pas nécessairement dans l'ordre indiqué. Combien d'ordres différents sont possibles dans lesquels ces valeurs clés peuvent apparaître sur le chemin de recherche à partir du nœud racine contenant la valeur 60?

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

D'après la question, je comprends que tous les nœuds donnés doivent être inclus dans la traversée et finalement nous devons atteindre la clé, 60. Par exemple, une telle combinaison serait:

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

Puisque nous devons traverser tous les nœuds donnés ci-dessus, nous devons commencer soit par 10 ou 90. Si nous commençons par 20, nous n'atteindrons pas 10 (puisque 60> 20 et nous traverserons le sous-arbre droit de 20)

De même, nous ne pouvons pas commencer par 80, car nous ne pourrons pas atteindre 90, puisque 80> 60, nous traverserons dans le sous-arbre gauche de 80 & n'atteindrons donc pas 90.

Prenons 10. Les nœuds restants sont 20, 40, 50, 70, 80, 90. Le nœud suivant pourrait être 20 ou 90. Nous ne pouvons pas prendre d'autres nœuds pour la même raison mentionnée précédemment.

Si nous considérons de la même manière, à chaque niveau, nous avons deux choix. Puisqu'il y a 7 nœuds, deux choix pour les 6 premiers et aucun choix pour le dernier. Il y a donc totalement

permutations = 2 6 = 6422222212664

  1. Est-ce une bonne réponse?

  2. Sinon, quelle est la meilleure approche?

  3. Je voudrais généraliser. Si nœuds sont donnés, le nombre total de chemins de recherche possibles serait de 2 n - 1n2n1

Réponses:


15

Si vous cherchez la clé 60, nous atteignons un nombre K moins de 60, nous allons à droite (là où sont les plus grands nombres) et nous ne rencontrons jamais de nombres inférieurs à K. Cet argument peut être répété, donc les nombres 10, 20, 40, 50 doivent apparaître lors de la recherche dans cet ordre.

De même, si vous recherchez la clé 60, nous atteignons un nombre K supérieur à 60, nous allons à gauche (où se trouvent les plus petits nombres) et nous ne rencontrons jamais de nombres supérieurs à K. Par conséquent, les nombres 90, 80, 70 doivent apparaître lors de la recherche dans cet ordre.

Les séquences 10, 20, 30, 40, 50 et 90, 80, 70 peuvent ensuite être mélangées ensemble, tant que leurs sous-séquences restent intactes. On peut ainsi avoir 10, 20, 40, 50, 90, 80, 70, mais aussi 10, 20, 90, 30, 40, 80, 70, 50.

We now can compute the number, choosing the position of large and small numbers. See the comment by Aryabhata. We have two sequences of 4 and 3 numbers. How many ways can I shuffle them? In the final 7 positions I have to choose 3 positions for the larger numbers (and the remaining 4 for the smaller numbers). I can choose these in (73) ways. After fixing these positions we know the full sequence. E.g., my first example has positions S S S S L L L the second has S S L S L L S.

You ask for a generalization. Always the x numbers less than the number found, and the y numbers larger are fixed in their relative order. The smaller numbers must go up, the arger numbers must go down. The number is then (x+yy).

PS (edited). Thanks to Gilles, who noted that 30 is not in the question.


I would surely like to try. Since no.s 90,80,70 has to be together, lets consider them as a single no. and it can be placed in among 6 places : _ 10 _ 20 _ 30 _ 40 _ 50 _ So that's 26 If by same analogy, the no.s [10,20,30,40,50] can be placed in 4 places, that's 24 But it has to be divided by common combinations which are occurring (which I am not able to figure out)
avi

@avi No, they do not have to be together, only in that order: 10, 20, 90, 30, 40, 80, 70, 50 is OK.
Hendrik Jan

1
@avi: Try thinking this way: Big and Small. Now you have 8 spots, with 5 Small and 3 Big. How do you fill them? 8 choose 3. Which comes to 56, and I presume is what Hendrik got too.
Aryabhata

2
@HendrikJan There was no 30 in the original question, there were only 7 values. And 7 choose 3 is (A).
Gilles 'SO- stop being evil'

1
@HendrikJan - can you explain this to me : Always the x numbers less than the number found, and the y numbers larger are fixed in their relative order
avi

1

We will convert Moves to Text. It is given that During Search we have Traversed these nodes

enter image description here

as it can be seen that Red ones are bigger than 60 and blue ones are smaller than 60.

Path to node 60 has involved those nodes. So, one of the possible solution to the problem is

{S,S,S,S,L,L,L}
any other solution will contains these moves only. coz at a time on a node we can get directions as S or L on comparison and since its given that those nodes were encountered it means directions were picked from that set.

Hence, total number of possible solutions = all Permutations of that set, which is given by

7!4!×3!=35
answer = option A
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.