Tôi muốn viết một phương thức trong C# để tạo một số ngẫu nhiên với phân phối gaussian trong phạm vi [0:1]
(và trước trong [0-x]). tôi tìm thấy mã này, nhưng không hoạt động chính xácTạo số ngẫu nhiên giữa 0 và 1 với phân phối gaussian
Random rand = new Random(); //reuse this if you are generating many
double u1 = rand.NextDouble(); //these are uniform(0,1) random doubles
double u2 = rand.NextDouble();
double randStdNormal = Math.Abs(Math.Sqrt(-2.0 * Math.Log(u1)) *
Math.Sin(2.0 * Math.PI * u2));
Có thể trùng lặp? http://stackoverflow.com/q/1303368/2065121 –
@ RogerRowland, không có gì khác biệt với điều đó, tôi muốn viết một phương pháp đơn giản không phải là một lớp, tôi tìm thấy điều này mehod nhưng phương pháp này trả lại cho tôi kết quả tiêu cực đôi khi và không chính xác kết quả – zhilevan
Sự khác biệt giữa một "phương pháp đơn giản" và một lớp học chỉ là bao bì. Câu trả lời đó có thông tin bạn cần, đặc biệt là phương pháp. Gói nó tuy nhiên bạn muốn. –