njin
Engine 2D gọn nhẹ để tự tay làm game theo ý mình. Vibe coding cũng ổn luôn
Loading...
Searching...
No Matches
njin::rng Struct Tham chiếu

Bộ sinh số ngẫu nhiên PCG32: nhanh, chất lượng tốt, và lặp lại được: cùng hạt giống thì cùng dãy số. Tiếp...

#include <_random.h>

Các hàm thành viên Public

 rng (u64 seed)
 Tạo bộ sinh với hạt giống seed.
void reseed (u64 seed)
 Đặt lại hạt giống.
u32 next_u32 ()
 Số nguyên 32 bit tiếp theo.
f32 unit ()
 Số thực trong [0, 1).
f32 range (f32 lo, f32 hi)
 Số thực trong [lo, hi).
i32 range (i32 lo, i32 hi)
 Số nguyên trong [lo, hi], gồm cả hi.
bool chance (f32 p)
 Đúng với xác suất p.
vec2 direction ()
 Vector độ dài 1 theo một hướng ngẫu nhiên.
vec2 point_in (rect r)
 Điểm ngẫu nhiên trong hình chữ nhật.

Các thuộc tính Public

u64 state = 0x853c49e6748fea9bULL
 Trạng thái hiện tại.
u64 inc = 0xda3e39cb94b95bdbULL
 Luồng (phải là số lẻ).

Mô tả chi tiết

Bộ sinh số ngẫu nhiên PCG32: nhanh, chất lượng tốt, và lặp lại được: cùng hạt giống thì cùng dãy số.

Engine có sẵn một bộ dùng chung, lấy bằng njin::random(). Tự tạo một rng riêng khi cần một dãy độc lập, ví dụ sinh bản đồ từ một mã số.

Thông tin về Constructor và Destructor

◆ rng()

njin::rng::rng ( u64 seed)
inlineexplicit

Tạo bộ sinh với hạt giống seed.

Các tham số
seedHạt giống.

Thông tin về hàm thành viên

◆ reseed()

void njin::rng::reseed ( u64 seed)
inline

Đặt lại hạt giống.

Cùng hạt giống thì cùng dãy số.

Các tham số
seedHạt giống.

◆ next_u32()

u32 njin::rng::next_u32 ( )
inline

Số nguyên 32 bit tiếp theo.

Giá trị trả về
Số trong khoảng 0 đến 2^32 - 1.

◆ unit()

f32 njin::rng::unit ( )
inline

Số thực trong [0, 1).

Giá trị trả về
Số thực, không bao giờ bằng 1.

◆ range() [1/2]

f32 njin::rng::range ( f32 lo,
f32 hi )
inline

Số thực trong [lo, hi).

Các tham số
loCận dưới.
hiCận trên.
Giá trị trả về
Số thực ngẫu nhiên.

◆ range() [2/2]

i32 njin::rng::range ( i32 lo,
i32 hi )
inline

Số nguyên trong [lo, hi], gồm cả hi.

Các tham số
loCận dưới.
hiCận trên.
Giá trị trả về
Số nguyên ngẫu nhiên. Trả về lo nếu hi < lo.

◆ chance()

bool njin::rng::chance ( f32 p)
inline

Đúng với xác suất p.

Các tham số
pXác suất, từ 0 đến 1.
Giá trị trả về
true với xác suất p.

◆ direction()

vec2 njin::rng::direction ( )
inline

Vector độ dài 1 theo một hướng ngẫu nhiên.

Giá trị trả về
Vector đơn vị.

◆ point_in()

vec2 njin::rng::point_in ( rect r)
inline

Điểm ngẫu nhiên trong hình chữ nhật.

Các tham số
rHình chữ nhật.
Giá trị trả về
Điểm nằm trong r.