Objektif
Janakan fungsi deterministik yang memetakan nombor input kepada unik nombor keluaran dalam julat tertentu, tanpa penduaan.
Kaedah
Gunakan aritmetik modular berdasarkan sifir Affine:
Parameter:
Contoh untuk uint64
Fungsi Transformasi:
func transform(p uint64) uint64 { return m * p + s // implicitly mod'd 2^64 by the type's size }
Contoh dengan int64
Untuk nombor yang ditandatangani, tukar input dan output antara uint64 dan int64 untuk mengekalkan pemetaan unik:
func signedTransform(p int64) int64 { return int64(transform(uint64(p))) }
Jaminan
Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Unik, Deterministik dengan Pemetaan 1:1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!