1
การจัดทำดัชนีอย่างรวดเร็วของชุดค่าผสม k
ฉันกลับมาทบทวนปัญหาเก่าที่เคยทำมาก่อนหน้านี้แล้ว สถานการณ์ทั่วไปคือ "3 บิตตั้งอยู่ภายในจำนวนเต็ม 8 บิต" เช่น 00000111 ชุดค่าผสมที่ไม่ซ้ำกันทั้งหมดที่มี 3 ชุดบิตสามารถสร้างได้ง่าย (ตามลำดับ) โดยลูปซ้อนกัน สิ่งที่ฉันสนใจคือชุดค่าดัชนีการแม็พ <-> เช่น "00001011" จะเป็นชุดค่าผสมที่สอง (หรือค่า "1" ในดัชนีแบบ zero-based) จนถึงตอนนี้ฉันวิ่งผ่านชุดค่าผสมทั้งหมดและเก็บไว้ในตารางทำดัชนีค้นหา -> การสนทนาเป็นการดำเนินการ O (1) อีกทางหนึ่งคือ O (ln (n)) ด้วยการค้นหาแบบแบ่งครึ่ง ข้อเสียคือความชัดเจนในเรื่องนี้ถ้าเราเพิ่มโดเมนจนถึงจุดที่ไม่สามารถทำได้ อะไรจะเป็นวิธีง่ายๆในการคำนวณชุดค่าผสม n.th หรือดัชนีสำหรับชุดค่าผสมที่กำหนด ลำดับของการรวมกันจะดี แต่ไม่บังคับ