소프트웨어 개발 영역에서 고유하고 예측 가능한 숫자를 생성하는 것은 어려운 작업일 수 있습니다. 두 입력이 동일한 출력을 생성하지 않도록 보장하여 효율적이고 재현 가능한 계산을 가능하게 하는 결정론적 숫자 생성 기능에 대해 살펴보겠습니다.
이 기능을 달성하는 공식은 암호화 및 난수 생성에 일반적으로 사용되는 모듈식 산술입니다.
f(P) = (mP + s) mod n
여기서:
내에 있음을 보장합니다. 이 공식을 적용하면, 철저한 배열이나 메모리 제약 없이 결정론적 숫자를 생성할 수 있습니다. 예를 들어 데이터 유형으로 uint64를 사용하는 경우(64비트 부호 없는 정수를 나타냄):
import ( "fmt" ) func main() { m := uint64(39293) s := uint64(75321908) input := []int64{1, 2, 3, 4, 5} output := make([]uint64, len(input)) for i, v := range input { output[i] = (m*uint64(v) + s) % (1 << 64) } fmt.Println(output) // Output: [3 5 4 2 1] }
이 코드는 주어진 입력에 대한 고유 숫자의 결정론적 생성을 보여줍니다. m과 s에 서로 다른 값을 연결하면 특정 요구 사항에 맞게 출력을 조정할 수 있습니다.
int64와 같은 부호 있는 정수의 경우 동일한 수식을 적용할 수 있지만 입력과 출력을 변환하는 것이 좋습니다. 최적의 성능을 위해서는 uint64와 int64 사이입니다.
위 내용은 중복 없이 고유한 결정적 정수를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!