การเลื่อนวน

ในทางคณิตศาสตร์เชิงการจัด การเลื่อนวน () คือการเรียงสับเปลี่ยนของ n สิ่งอันดับ ที่ซึ่งสมาชิกสุดท้ายจะกลายเป็นสมาชิกแรก หรือสมาชิกแรกกลายเป็นสมาชิกสุดท้าย แล้วสมาชิกอื่นๆ จะถูกเลื่อนไปแทนที่โดยไม่สลับกัน เปรียบได้กับการเรียงสับเปลี่ยนที่มีการวนรอบ

ตัวอย่างเช่น การเลื่อนวนของสามสิ่งอันดับ (a, b, c) ได้แก่
 (a, b, c)
 (c, a, b)
 (b, c, a)

ในทางวิทยาการคอมพิวเตอร์ การเลื่อนวน คือตัวดำเนินการเลื่อนชนิดหนึ่งที่จะเลื่อนบิตทั้งหมดของตัวถูกดำเนินการเป็นวงรอบ โดยการเลื่อนวนจะไม่สงวนบิตบอกเครื่องหมาย และจะไม่แยกเลขชี้กำลังออกจากแมนทิสซาเหมือนการเลื่อนเชิงคำนวณ (arithmetic shift) และการเลื่อนวนจะไม่เติมตำแหน่งบิตที่ว่างด้วยศูนย์ดังเช่นการเลื่อนเชิงตรรกะ (logical shift) แต่จะนำบิตที่เลื่อนออกไปมาใส่แทนที่ การเลื่อนวนแบบนี้มี 2 ทางคือวนไปทางซ้ายและวนไปทางขวา การเลื่อนวนมักใช้ในวิทยาการเข้ารหัส โดยเป็นส่วนหนึ่งของการเรียงสับเปลี่ยนของลำดับบิต

ตัวอย่างเช่น การเลื่อนวนของ 0001 0111 ไปหนึ่งบิต ตามแผนภาพ จะได้คำตอบคือ
 วนไปทางซ้าย จะได้ 0010 1110
 วนไปทางขวา จะได้ 1000 1011

คณิตศาสตร์มูลฐาน
ขั้นตอนวิธี