728x90
728x170
■ 단일 파일에서 다수 모듈를 사용하는 방법을 보여준다.
▶ 예제 코드 (RS)
mod random
{
pub mod linear
{
use std::num::Wrapping;
pub fn get_random_value(seed : &mut u32) -> u32
{
let (a, c) = (134775813u32, 12345u32);
*seed = (Wrapping(*seed) * Wrapping(a) + Wrapping(c)).0;
return *seed;
}
}
pub mod xorshift
{
pub fn get_random_value(seed : &mut u32) -> u32
{
let mut y : u32 = *seed;
y ^= y << 13;
y ^= y >> 17;
y ^= y << 5;
*seed = y;
return y;
}
}
}
use random::{linear, xorshift};
fn main()
{
let mut seed1 : u32 = 12345u32;
let mut seed2 : u32 = 12345u32;
for i in 0..10
{
let random_value1 : u32 = linear::get_random_value (&mut seed1) % 6 + 1;
let random_value2 : u32 = xorshift::get_random_value(&mut seed2) % 6 + 1;
println!("{:2} : {}, {}", i + 1, random_value1, random_value2);
}
}
/*
1 : 1, 3
2 : 4, 4
3 : 3, 5
4 : 4, 3
5 : 5, 6
6 : 6, 1
7 : 5, 1
8 : 2, 3
9 : 3, 5
10 : 6, 5
*/
728x90
그리드형(광고전용)
'Rust > Common' 카테고리의 다른 글
[RUST/COMMON] String 구조체 : split_whitespace 메소드를 사용해 공백 문자 기준 문자열 분리하기 (0) | 2023.05.26 |
---|---|
[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 |