라이브러리

[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비트 정수 또는 더 큰 정수를 생성하려면 추가적인 처리가 필요합니다.
* 이 알고리즘은 빠르고 안전한 랜덤 수를 생성할 수 있지만, 완벽한 난수 생성기는 아닙니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 301 페이지

검색

게시물 검색