ฟังก์ชั่นที่กระจายอินพุต
ฉันต้องการทราบว่ามีฟังก์ชันจากหมายเลข n-bit ไปยังหมายเลข n-bit ที่มีคุณสมบัติดังต่อไปนี้หรือไม่:fff fffควรเป็น bijective ทั้งและน่าจะคำนวณได้อย่างรวดเร็วffff−1f−1f^{-1} fffควรคืนค่าตัวเลขที่ไม่มีความสัมพันธ์อย่างมีนัยสำคัญกับอินพุต เหตุผลคือ: ฉันต้องการเขียนโปรแกรมที่ทำงานกับข้อมูล ข้อมูลบางส่วนของข้อมูลจะถูกเก็บไว้ในแผนผังการค้นหาแบบไบนารี่โดยที่คีย์การค้นหาเป็นสัญลักษณ์ของตัวอักษร เมื่อเวลาผ่านไปฉันจะเพิ่มสัญลักษณ์เพิ่มเติมให้กับตัวอักษร สัญลักษณ์ใหม่จะได้รับหมายเลขฟรีต่อไป ดังนั้นต้นไม้จะมีอคติเล็ก ๆ น้อย ๆ กับคีย์ที่เล็กกว่าซึ่งทำให้เกิดการปรับสมดุลมากกว่าที่ฉันคิดว่าควรจะต้องการ ความคิดของฉันคือการฉีกตัวเลขสัญลักษณ์ที่มีเช่นที่พวกเขามีการแพร่กระจายอย่างกว้างขวางไปทั่วทั้งช่วงของ-1] เนื่องจากหมายเลขสัญลักษณ์มีความสำคัญเฉพาะในระหว่างอินพุตและเอาต์พุตที่เกิดขึ้นเพียงครั้งเดียวการใช้ฟังก์ชันดังกล่าวจึงไม่ควรแพงเกินไปfff[0,264−1][0,264−1][0,2^{64}-1] ฉันคิดเกี่ยวกับการวนซ้ำของตัวสร้างตัวเลขสุ่ม Xorshift หนึ่งครั้ง แต่ฉันไม่รู้วิธีการยกเลิกมันจริงๆแม้ว่ามันจะเป็นไปได้ในทางทฤษฎี ใครรู้ฟังก์ชั่นดังกล่าวหรือไม่? นี่เป็นความคิดที่ดีหรือไม่?