728x90
728x170
■ 선형 합동법 알고리즘을 사용해 난수를 생성하는 방법을 보여준다.
▶ 예제 코드 (RS)
use std::num::Wrapping;
fn get_seed(seed : &mut u32) -> u32
{
let (a, c) = (134775813u32, 12345u32);
*seed = (Wrapping(*seed) * Wrapping(a) + Wrapping(c)).0;
return *seed;
}
fn get_random_value(seed : &mut u32, minimum_value : u32, maximum_value : u32) -> u32
{
let random_value : u32 = get_seed(seed) % (maximum_value - minimum_value + 1) + minimum_value;
return random_value;
}
fn main()
{
let mut seed : u32 = 12345u32;
for i in 0..10
{
let random_value : u32 = get_random_value(&mut seed, 1, 10);
println!("{}, {}", i + 1, random_value);
}
}
/*
1, 9
2, 2
3, 1
4, 2
5, 5
6, 2
7, 9
8, 6
9, 7
10, 4
*/
728x90
그리드형(광고전용)
'Rust > Common' 카테고리의 다른 글
[RUST/COMMON] 역 폴란드 표기법(RPN ; Reverse Polish Notation) 수식 계산하기 (0) | 2023.05.25 |
---|---|
[RUST/COMMON] 절대/상대 경로를 사용해 모듈 지정하기 (0) | 2023.05.24 |
[RUST/COMMON] 모듈을 파일로 분리해서 사용하기 (0) | 2023.05.24 |
[RUST/COMMON] super 키워드 : 상위 모듈 참조하기 (0) | 2023.05.24 |
[RUST/COMMON] 단일 파일에서 다수 모듈 사용하기 (0) | 2023.05.24 |
[RUST/COMMON] Option<T> 열거형과 match문을 사용하기 (0) | 2023.05.23 |
[RUST/COMMON] match문 : 매치 가드 사용하기 (0) | 2023.05.23 |
[RUST/COMMON] match문 : 패턴 매칭을 사용해 FizzBuzz 문제 풀기 (0) | 2023.05.23 |
[RUST/COMMON] enum 키워드 : 열거형 만들기 (0) | 2023.05.23 |
[RUST/COMMON] Iterator 트레잇 : for_each 메소드 사용하기 (0) | 2023.05.22 |