6
เอาท์พุทพีชคณิตที่แตกต่างกันทั้งหมดของเวกเตอร์
ท้าทาย: เอาต์พุตพีชคณิตที่แตกต่างกันทั้งหมดของรายการจำนวนเต็มบวก คุณอาจสมมติว่าเวกเตอร์มีจำนวนน้อยกว่า 1,000 หมายเลขเมื่อทำการทดสอบ แต่กระบวนการในทางทฤษฎีควรใช้กับเวกเตอร์ใด ๆ ที่มีมากกว่าหนึ่งหมายเลขโดยไม่คำนึงถึงขนาด ข้อ จำกัด: คุณต้อง จำกัด การใช้งานหน่วยความจำไว้ที่O (n ^ 2)โดยที่nคือจำนวนองค์ประกอบในเวกเตอร์อินพุต คุณไม่สามารถมีO (n!) นั่นหมายความว่าคุณไม่สามารถเก็บการเรียงสับเปลี่ยนทั้งหมดในหน่วยความจำ คุณต้อง จำกัด ซับซ้อนเวลาในการO (ผลขนาด * n) หากตัวเลขทั้งหมดมีค่าเท่ากันแล้วนี้จะเป็นO (n)และถ้าทุกคนมีความแตกต่างกันแล้วนี้จะเป็นO (n * n) นั่นหมายความว่าคุณไม่สามารถสร้างการเปลี่ยนแปลงและตรวจสอบกับการเรียงสับเปลี่ยนอื่น ๆ เพื่อให้แน่ใจว่ามีความชัดเจน (นั่นคือO (n! ^ 2 * n) ) การวัดเชิงประจักษ์เพื่อแสดงว่ายอมรับเวลาและข้อ จำกัด ของหน่วยความจำ คุณต้องพิมพ์ / เอาท์พุทพีชคณิตจริง ๆ (เพราะมันเป็นไปไม่ได้ที่จะเก็บไว้) หากคุณเรียกใช้โปรแกรมของคุณนานพอการเรียงสับเปลี่ยนทั้งหมดควรถูกเอาท์พุท (ในทางทฤษฎี)! …