ก่อนอื่นให้เราทำสองอย่างชัดเจน แต่เป็นข้อสันนิษฐานที่สำคัญ:
_.random_item
สามารถเลือกตำแหน่งสุดท้าย
_.random_item
เลือกทุกตำแหน่งที่มีความน่าจะเป็น1}1n + 1
เพื่อพิสูจน์ความถูกต้องของขั้นตอนวิธีการของคุณคุณต้องอาร์กิวเมนต์อุปนัยคล้ายกับที่ใช้ที่นี่ :
- สำหรับรายการซิงเกิลตันมีความเป็นไปได้เพียงทางเดียวเท่านั้นดังนั้นจึงได้รับการคัดเลือกอย่างสม่ำเสมอ
- สมมติว่ารายการที่มีองค์ประกอบถูกเลือกอย่างสม่ำเสมอ (จากการเรียงสับเปลี่ยนทั้งหมด) แสดงให้เห็นว่ารายการที่มีองค์ประกอบได้รับจากเทคนิคของคุณได้รับการคัดเลือกอย่างสม่ำเสมอn + 1nn + 1
จากที่นี่ไปการพิสูจน์นั้นผิด โปรดดูหลักฐานด้านล่างที่ถูกต้อง; ฉันออกจากที่นี่เพราะทั้งความผิดพลาดและขั้นตอนต่อไปนี้ (ซึ่งเป็นเสียง) อาจเป็นการศึกษา
มันจะมีประโยชน์ที่จะได้มาซึ่งคุณสมบัติของท้องถิ่น (เช่นองค์ประกอบที่ฉลาด) ที่ต้องถือเพราะการโต้เถียงเกี่ยวกับการเปลี่ยนแปลงทั้งหมดที่เจ็บปวด สังเกตว่าการเรียงสับเปลี่ยนจะถูกเลือกอย่างสม่ำเสมอหากทุกองค์ประกอบมีความน่าจะเป็นเท่ากับที่แต่ละตำแหน่งเช่น
∀π∈ P e r mnราคา( L = π) = 1n !⟺∀i = 1n ∀j = 1nราคา( ลผม= j ) = 1n( 1 )
โดยที่และเราคิดเพื่อความเรียบง่ายของโน้ตที่เราใส่{ 1 , … , n }ลงในรายการn = | L |{ 1 , … , n }
ตอนนี้ให้เราเห็นสิ่งที่เทคนิคของไม่เมื่อใส่องค์ประกอบเซนต์ เราต้องพิจารณาสามกรณี (หลังจากสลับ):n + 1
- หนึ่งในองค์ประกอบในรายการไม่สลับกันคือและj ∈ { 1 , … , n }ฉัน∈ { 1 , … , n }j ∈ { 1 , … , n }
- หนึ่งในองค์ประกอบในรายการสลับกันคือและj ∈ { 1 , … , n }i = n + 1j ∈ { 1 , … , n }
- องค์ประกอบใหม่คือและj = n + 1ฉัน∈ { 1 , … , n + 1 }j = n + 1
สำหรับแต่ละกรณีเราคำนวณความน่าจะเป็นขององค์ประกอบอยู่ที่ตำแหน่งของฉัน ; ทุกคนต้องกลายเป็น1Jผม (ซึ่งเพียงพอเพราะ(1)) ให้pn=11n + 1( 1 )เป็นความน่าจะเป็นขององค์ประกอบn ตัวแรกที่อยู่ในตำแหน่งใด ๆ ในรายการเก่า (สมมติฐานการเหนี่ยวนำ) และps=1พีn= 1nnความน่าจะเป็นของตำแหน่งใด ๆ ที่ถูกเลือกโดย(สมมติฐาน 1, 2) โปรดทราบว่า coice ของรายการที่มีองค์ประกอบnและเลือกตำแหน่ง swapเป็นเหตุการณ์อิสระดังนั้นความน่าจะเป็นของปัจจัยเหตุการณ์ร่วมเช่นพีs= 1n + 1random_item
n
ราคา( ลผม= j , i swapped ) = Pr( ลผม= j ) ⋅ Pr( i swapped ) = pnพีs
สำหรับ } ตอนนี้สำหรับการคำนวณi , j ∈ { 1 , … , n }
เราพิจารณาองค์ประกอบเก่าเท่านั้น องค์ประกอบjนั้นอยู่ที่ตำแหน่งiหากว่ามีอยู่ก่อนหน้าการแทรกครั้งล่าสุดและฉันไม่ได้เลือกเป็นตำแหน่งสลับนั่นคือ nJผมผม
1ราคา( ลผม= j ) = pn( 1 - ps) = 1n⋅ nn + 1= 1n + 1
ที่นี่เราพิจารณาว่าองค์ประกอบเก่าอย่างใดอย่างหนึ่งถูกเปลี่ยนเป็นตำแหน่งสุดท้าย องค์ประกอบจะอยู่ที่ตำแหน่งเก่า ๆ ดังนั้นเราจึงสรุปความน่าจะเป็นทั้งหมดที่jอยู่ที่ตำแหน่งiและiถูกเลือกให้เป็นตำแหน่งสลับนั่นคือJJผมผม
1ราคา( ลn + 1= j ) = ∑i = 1nพีnพีs= ∑i = 1n1n⋅ 1n + 1= 1n + 1
องค์ประกอบใหม่จะสิ้นสุดที่ตำแหน่งถ้าหากว่าฉันได้รับเลือกให้เป็นตำแหน่งสลับนั่นคือผมผม
1ราคา( ลผม= j ) = ps= 1n + 1
ทั้งหมดกลับกลายเป็นอย่างดีกลยุทธ์การแทรกของคุณจะรักษาความสม่ำเสมอ ด้วยพลังของการเหนี่ยวนำที่พิสูจน์ว่าอัลกอริทึมของคุณสร้างการเรียงสับเปลี่ยนแบบสม่ำเสมอ
คำเตือน: ข้อพิสูจน์นี้จะพังลงหากองค์ประกอบที่แทรกนั้นไม่ได้รับการตอบสนองที่แตกต่างกันเป็นคู่ สามารถแยกแยะได้เพราะจากนั้นสมการแรกจะไม่ถูกต้องอีกต่อไป แต่อัลกอริทึมของคุณยังใช้ได้อยู่ การเรียงสับเปลี่ยนกับการทำซ้ำทุกครั้งจะถูกสร้างขึ้นด้วยจำนวนการดำเนินการสุ่มที่เท่ากัน คุณสามารถพิสูจน์ได้โดยการทำเครื่องหมายรายการที่ซ้ำกัน (เช่นทำให้สามารถแยกแยะได้) ดำเนินการด้านบนเพื่อพิสูจน์และลบเครื่องหมาย (จริง); ขั้นตอนสุดท้ายยุบชุดพีชคณิตขนาดเท่ากันเป็นชุด
ดังที่สตีเว่นได้กล่าวไว้อย่างถูกต้องในความคิดเห็นหลักฐานข้างต้นเป็นข้อบกพร่องพื้นฐานที่ไม่ถือ; คุณสามารถสร้างการกระจายในชุดการเรียงสับเปลี่ยนที่เติมเต็มทางขวา แต่ไม่ใช่ทางซ้ายมือ¹( 1 )
ดังนั้นเราจะต้องทำงานกับความน่าจะเป็นของการเรียงสับเปลี่ยนซึ่งกลายเป็นว่าไม่เลวหลังจากทั้งหมด สมมติฐานเกี่ยวกับrandom_item
และโครงสร้างอุปนัยที่ระบุไว้ในตอนต้นของการโพสต์ยังคงอยู่ในสถานที่ที่เราดำเนินการต่อจากที่นั่น ให้แทนรายการหลังจากแทรก{ 1 , … , k }แล้วL( k ){ 1 , … , k }
ให้เปลี่ยนแปลงโดยพลการของ{ 1 , ... , n + 1 } มันสามารถเขียนได้เฉพาะเป็นπ'∈ P e r mn + 1{ 1 , … , n + 1 }
π'= ( π( 1 ) , π( 2 ) , … , π( i - 1 ) , n + 1 , π( i + 1 ) , … , π( n ) , π( i ) )
π∈ P e r mnฉัน∈ { 1 , … , n + 1 }ราคา( ล( n )= π) = 1n !random_item
ผม1n + 1πผม
ราคา( ล( n + 1 )= π') = Pr( ล( n )= π) ⋅ Pr( i swapped ) = 1( n + 1 ) !
ซึ่งเราต้องแสดง ด้วยพลังของการเหนี่ยวนำที่พิสูจน์ว่าอัลกอริทึมของคุณสร้างการเรียงสับเปลี่ยนแบบสม่ำเสมอ
- { ( 1 , 2 , 3 , 4 ) , ( 2 , 3 , 4 , 1 ) , ( 3 , 4 , 1 , 2 ) , ( 4 , 1 , 2 , 3 ) }140