จำนวนพา ธ การค้นหาที่เป็นไปได้เมื่อค้นหาใน BST


13

ฉันมีคำถามต่อไปนี้ แต่ไม่มีคำตอบสำหรับเรื่องนี้ ฉันจะขอบคุณถ้าวิธีการของฉันถูกต้อง:

Q. เมื่อค้นหาค่าคีย์ 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พีชคณิต = = 642664

  1. นี่เป็นคำตอบที่ถูกต้องหรือไม่?

  2. ถ้าไม่วิธีที่ดีกว่าคืออะไร?

  3. ฉันต้องการจะพูดคุย ถ้าโหนดจะได้รับแล้วเส้นทางการค้นหาที่เป็นไปได้ทั้งหมดจะเป็น2 n - 1n2n1

คำตอบ:


15

หากกำลังมองหากุญแจที่ 60 เราไปถึงตัวเลขน้อยกว่า 60 เราไปทางขวา (ที่ตัวเลขขนาดใหญ่) และเราไม่เคยพบตัวเลขที่น้อยกว่าKอาร์กิวเมนต์นั้นสามารถทำซ้ำได้ดังนั้นตัวเลข 10, 20, 40, 50 จะต้องเกิดขึ้นพร้อมกับการค้นหาตามลำดับนั้นเคKK

ในทำนองเดียวกันถ้ามองหากุญแจที่ 60 เราไปถึงจำนวนขนาดใหญ่กว่า 60 เราไป leftt (ที่ตัวเลขที่มีขนาดเล็ก) และเราไม่เคยพบตัวเลขที่มีขนาดใหญ่กว่าKดังนั้นตัวเลข 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)

คุณขอความเห็นโดยทั่วไป เสมอจำนวนน้อยกว่าจำนวนที่พบและตัวเลขขนาดใหญ่ได้รับการแก้ไขในลำดับญาติของพวกเขา ตัวเลขที่น้อยลงจะต้องขึ้นไปหมายเลขอาร์เกอร์จะต้องลงไป จำนวนแล้วYxy(x+yy)

ป.ล. (แก้ไข) ขอบคุณ Gilles ที่สังเกตว่า 30 ไม่ได้อยู่ในคำถาม


ฉันอยากลอง ตั้งแต่หมายเลข 90,80,70 จะต้องอยู่ด้วยกันให้พิจารณาเป็นหมายเลขเดียว และสามารถวางไว้ในสถานที่ 6 แห่ง: _ 10 _ 20 _ 30 _ 40 _ 50 _ นั่นก็คือ ถ้าหากมีการเปรียบเทียบแบบเดียวกันก็สามารถใส่หมายเลข [1020,30,40,50] ใน สถานที่ 4 แห่งนั่นคือ แต่มันจะต้องถูกหารด้วยชุดค่าผสมทั่วไปที่เกิดขึ้น (ซึ่งฉันไม่สามารถหาได้)2624
avi

@avi ไม่พวกเขาไม่จำเป็นต้องอยู่ด้วยกันเฉพาะในลำดับที่: 10, 20, 90, 30, 40, 80, 70, 50 ก็โอเค
Hendrik

1
@avi: ลองคิดแบบนี้: ใหญ่และเล็ก ตอนนี้คุณมี 8 จุดด้วย 5 ขนาดเล็กและ 3 ใหญ่ คุณเติมให้เต็มได้อย่างไร? 8 เลือก 3. ซึ่งมาถึง 56 และฉันเข้าใจว่าเฮนดริคก็มีเช่นกัน
Aryabhata

2
@HendrikJan คำถามเดิมไม่มี 30 มีค่า 7 ค่าเท่านั้น และ 7 เลือก 3 คือ (A)
Gilles 'หยุดความชั่วร้าย'

1
@HendrikJan - คุณช่วยอธิบายสิ่งนี้กับฉันได้ไหม: หมายเลขน้อยกว่าจำนวนที่พบเสมอและตัวเลขใหญ่กว่าจะได้รับการแก้ไขตามลำดับสัมพัทธ์xy
avi

1

เราจะแปลง Moves เป็น Text ในระหว่างการค้นหาเราได้ทำการสำรวจโหนดเหล่านี้

ป้อนคำอธิบายรูปภาพที่นี่

ดังจะเห็นได้ว่าสีแดงมีขนาดใหญ่กว่า 60 และสีน้ำเงินมีขนาดเล็กกว่า 60

เส้นทางไปยังโหนด 60 ได้เกี่ยวข้องกับโหนดเหล่านั้น ดังนั้นหนึ่งในวิธีแก้ปัญหาที่เป็นไปได้คือ วิธีแก้ปัญหาอื่น ๆ จะมีการเคลื่อนไหวเหล่านี้เท่านั้น coz ทีละครั้งบนโหนดเราสามารถหาทิศทางเป็น S หรือ L เมื่อเปรียบเทียบและเนื่องจากมันพบว่าโหนดเหล่านั้นมันหมายถึงทิศทางถูกเลือกจากชุดนั้น

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

ดังนั้นจำนวนโซลูชั่นที่เป็นไปได้ทั้งหมด = การเรียงสับเปลี่ยนทั้งหมดของชุดนั้นซึ่งได้รับจาก answer = ตัวเลือก A

7!4!×3!=35
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.