นี่เป็นแนวคิดง่ายๆ
ฉันจะใช้ $x_i$ สำหรับเวกเตอร์ใน $d$ ขนาดและการใช้งาน $a_i$ สำหรับจำนวนเต็มที่เกี่ยวข้อง
ใน $\{0,1,\ldots, 2^d-1\}$.
เรียงลำดับ $a_i$ ตั้งแต่เล็กไปจนถึงใหญ่ อนุญาต $r_i$ มียศเป็น $a_i$ ใช้อันดับจาก
$\{0,1,\ldots,v-1\}$. ทำลายความสัมพันธ์ระหว่างการเรียงลำดับโดยพลการ
ตัวอย่าง: $(a_1,a_2,a_3)=(1,7,2)$ มีเวกเตอร์อันดับ $(r_1,r_2,r_3)=(0,2,1).$ มีสามรายการที่มีหมายเลขตั้งแต่ 0 ถึง 2 และรายการตรงกลางคือ 7 ซึ่งใหญ่ที่สุดในอันดับที่ 2
ตอนนี้ให้พิจารณารายการการเรียงสับเปลี่ยนของวัตถุ 3 รายการตามลำดับศัพท์มาตรฐานและดัชนี
$$
012~~0\\
021~~1\\
102~~2\\
120~~3\\
201~~4\\
210~~5\\
$$
และโปรดทราบว่าการเรียงสับเปลี่ยนนี้คือ 021 ดังนั้นจึงมีตำแหน่ง 1 ในรายการการเรียงสับเปลี่ยน การเข้ารหัสตำแหน่งเป็นเวกเตอร์ไบนารีใช้เวลา $r=\lceil \log_2 v\rceil$ บิต
ถ้า $r\leq ง,$ เราสามารถกำหนดได้
$$
x_1+x_2+\cdots+x_v=x_1\oplus x_2\oplus \cdots\oplus x_v \oplus ดัชนี(การเรียงสับเปลี่ยน (x_1,\ldots,x_v)),
$$
ดังนั้นในตอนท้ายเราจะ xor ดัชนีของการเรียงสับเปลี่ยนซึ่งเปลี่ยนแปลงถ้า $x_i$ มีการจัดลำดับใหม่