라이브러리
[PHP] RandomEngineXoshiro256StarStar::generate - 64비트의 난수 생성
PHP에서 RandomEngineXoshiro256StarStar::generate
PHP의 RandomEngineXoshiro256StarStar::generate는 Xoshiro256*StarStar 알고리즘을 사용하여 랜덤한 숫자를 생성하는 메서드입니다. 이 알고리즘은 2018년 D. Blackman와 S. Vigna가 제안한 것으로, 이전의 Xoshiro256 알고리즘보다 더 빠르고 안전한 랜덤 수를 생성할 수 있습니다.
# Xoshiro256*StarStar 알고리즘
Xoshiro256*StarStar 알고리즘은 4개의 32비트 정수(state0, state1, state2, state3)를 사용하여 랜덤한 숫자를 생성합니다. 이 알고리즘은 다음의 단계를 거칩니다.
1. state0, state1, state2, state3를 초기화합니다.
2. state0 = (state0 ^ (state0 << 23)) ^ (state0 >> 18)
3. state1 = (state1 ^ (state1 << 17)) ^ (state1 >> 19)
4. state2 = (state2 ^ (state2 << 26)) ^ (state2 >> 20)
5. state3 = (state3 ^ (state3 << 5)) ^ (state3 >> 27)
6. result = (state1 ^ (state1 << 18)) ^ (state1 >> 5) ^ (state2 ^ (state2 << 4)) ^ (state2 >> 25) ^ (state3 ^ (state3 << 14)) ^ (state3 >> 8)
7. state0, state1, state2, state3를 업데이트합니다.
# PHP에서 RandomEngineXoshiro256StarStar::generate 사용 예제
#hostingforum.kr
php
use RandomLibRandomEngineXoshiro256StarStar;
// Xoshiro256*StarStar 알고리즘을 사용하여 랜덤한 숫자를 생성하는 메서드
$engine = new Xoshiro256StarStar();
$result = $engine->generate(1);
echo "랜덤한 숫자: $result
";
// 10개의 랜덤한 숫자를 생성하는 예제
$result = [];
for ($i = 0; $i < 10; $i++) {
$result[] = $engine->generate(1);
}
echo "랜덤한 숫자 목록:
";
print_r($result);
// 10개의 랜덤한 숫자를 생성하고 평균을 계산하는 예제
$result = [];
for ($i = 0; $i < 10; $i++) {
$result[] = $engine->generate(1);
}
$average = array_sum($result) / count($result);
echo "랜덤한 숫자 목록:
";
print_r($result);
echo "평균: $average
";
# 참고
* Xoshiro256*StarStar 알고리즘은 PHP의 RandomLib 라이브러리에 포함되어 있습니다.
* 이 알고리즘은 32비트 정수만을 사용하므로, 64비트 정수 또는 더 큰 정수를 생성하려면 추가적인 처리가 필요합니다.
* 이 알고리즘은 빠르고 안전한 랜덤 수를 생성할 수 있지만, 완벽한 난수 생성기는 아닙니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.