cuốn sách gpt4 ai đã làm

Mersenne Twister nào được cung cấp trong C++ 11?

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 16:11:14 27 4
mua khóa gpt4 Nike

Tôi không chắc Mersenne Twister C++11 cung cấp những biến thể nào. hiện hữu Mersenne twister: Bộ tạo số giả ngẫu nhiên thống nhất phân bố đều theo chiều 623 Hãy xem bài báo của Matsumoto và Nishimura ACM, nơi các tác giả cung cấp thuật toán, cách triển khai thuật toán và gọi nó làMT19937.

Tuy nhiên, khi tôi kiểm tra trình tạo cùng tên của C++ 11 với applet sau, tôi không thể tái tạo luồng do MT19937 của Matsumoto và Nishimura tạo ra. Luồng này khác với từ 32 bit đầu tiên được tạo ra.

C++ 11 cung cấp Mersenne Twister gì?


Chương trình sau đây sử dụng GCC,-std=c++11 và GNU stdlibc++ Chạy trên Fedora 22.

std::mt19937 prng(102013);
cho (unsign int i = 0; i <= 625; i++)
{
cout << std::hex << prng();

nếu(i+1 != 625)
cout << ",";

if(i && i%8 == 0)
cout << endl;
}

câu trả lời hay nhất

Nhìn vào MT19937 từ tệp bạn đã liên kết đến và định nghĩa tiêu chuẩn, có vẻ như chúng giống nhau nhưng có thêm lớp ủ bổ sung và hệ số khởi tạo

Nếu chúng ta nhìn vào các giá trị được xác định trong [Rand.predef] 26.5.5(3) so với các tham số được xác định bởi bài báo, chúng ta có

32,624,397,31,0x9908b0df,11,0xffffffff,7,0x9d2c5680,15,0xefc60000,18,1812433253 <- tiêu chuẩn
w ,n ,m ,r ,a ,u ,d ,s,b ,t ,c ,l ,f
32,624,397,31,0x9908b0df,11, ,7,0x9d2c5680,15,0xefc60000,18, <- giấy

Đây là nơi sự khác biệt đến từ. Cũng theo tiêu chuẩn,std::mt19937 Lần lặp thứ 10.000 của là 399268537

Giới thiệu về c++ - Mersenne Twister nào được cung cấp C++11? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/33021455/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress