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

C++ - Cách hiệu quả để tạo các bộ bit ngẫu nhiên với tỷ lệ "1 đến 0" trung bình có thể định cấu hình

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 23:27:20 25 4
mua khóa gpt4 Nike

Tôi đang tìm một cách hiệu quả để tạo ngẫu nhiên std::bitset chiều dài đã đặt. Tôi cũng mong có ảnh hưởng 1 Xác suất xuất hiện trong một kết quả, vì vậy nếu giá trị xác suất được đặt đủ thấp thì chỉ một phần nhỏ trong số tất cả các kết quả thậm chí sẽ chứa 1, nhưng vẫn có thể (nhưng không chắc) gây ra tất cả 1. Nó sẽ được sử dụng cho các ứng dụng đòi hỏi tính toán rất cao, vì vậy mọi tối ưu hóa có thể đều được hoan nghênh.

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

Phân phối Bernoullilà phân bố xác suất 1 hoặc 0 trong một thử nghiệm. Tổng của nhiều biến phân phối như vậy

nhập mô tả hình ảnh ở đây

đưa ra một ý nghĩa tuân theo n*p Biến phân phối (phân phối nhị thức). Vì vậy, bằng việc áp dụng n Xác suất là 1 Bit phân phối Bernoulli được cho bởi P Cho trước, chúng ta có được kích thước của n tập bit, vànp Trung bình bit được đặt thành 1. Tất nhiên, nếu điều này không mang lại đủ hiệu quả thì đây chỉ là điểm khởi đầu để tối ưu hóa hơn nữa.

#include 
#include
#include

mẫu
tên kiểu std::bitset Random_bitset(double p = 0.5) {

tên kiểu chữ std::bitset bit;
std::random_devicerd;
std::mt19937 gen(rd());
std::bernoulli_distribution d( p);

for(int n = 0; n < size; ++n) {
bit[n] = d(gen);
}

bit trả về;
}

int main()
{
for(int n = 0; n < 10; ++n) {
std::cout << Random_bitset<10>(0,25) << std::endl;
}
}

kết quả:

1010101001

0001000000

1000000000

0110010000

1000000000

0000110100

0001000000

0000000000

1000010000

0101010000

http://ideone.com/p29Pbz

Về C++ - Cách hiệu quả để tạo các tập bit ngẫu nhiên với tỷ lệ "1 đến 0" trung bình có thể định cấu hình, 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/25176423/

25 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