Tôi đã chỉ tự hỏi làm thế nào các máy phát điện số ngẫu nhiên trong C# hoạt động. Tôi cũng tò mò làm cách nào tôi có thể tạo một chương trình tạo ngẫu nhiên các số WHOLE INTEGER từ 1-100.Trình tạo số ngẫu nhiên của C# hoạt động như thế nào?
Trả lời
Tôi chỉ tự hỏi làm thế nào các bộ tạo số ngẫu nhiên trong công trình C#.
Thực hiện cụ thể, nhưng wikipedia entry for pseudo-random number generators sẽ cung cấp cho bạn một số ý tưởng.
Tôi cũng tò mò làm cách nào để tạo một chương trình tạo số ngẫu nhiên WHOLE INTEGER từ 1-100.
Bạn có thể sử dụng Random.Next(int, int)
:
Random rng = new Random();
for (int i = 0; i < 10; i++)
{
Console.WriteLine(rng.Next(1, 101));
}
Lưu ý rằng các giới hạn trên là độc quyền - đó là lý do tôi đã sử dụng 101 đây.
Bạn cũng nên biết một số "gotchas" được liên kết với Random
- cụ thể, bạn nên không tạo một phiên bản mới mỗi khi bạn muốn tạo một số ngẫu nhiên, nếu không, nếu bạn tạo nhiều ngẫu nhiên số trong một khoảng thời gian ngắn, bạn sẽ thấy nhiều lần lặp lại. Xem my article on this topic để biết thêm chi tiết.
Tôi có thể chỉ nói một cái gì đó như "Random random = new Random.Next (0, 101);"? –
@SethTaddiken: Không, bạn không thể. (Và tên tôi là Jon, chứ không phải John.) Dựa trên các câu hỏi của bạn cho đến hôm nay, tôi đề nghị bạn nên giữ một cuốn C# giới thiệu tốt. Nó có khả năng hiệu quả hơn nhiều cho việc học ban đầu hơn là hỏi ở đây. –
Vâng, bạn có thể làm việc thông qua một cuốn sách, và vẫn cần được giúp đỡ khi bạn đang cố gắng để chơi xung quanh với các chương trình khác nhau và thông tin không phải là ngay lập tức có sẵn cho bạn. – Danrex
Bạn có thể sử dụng Random.Next(int maxValue)
:
Return: A 32-bit đã ký số nguyên lớn hơn hoặc bằng số không, và ít hơn maxvalue; có nghĩa là, phạm vi giá trị trả lại thường bao gồm số không nhưng không phải maxValue. Tuy nhiên, nếu maxValue bằng 0, maxValue là được trả lại.
var r = new Random();
// print random integer >= 0 and < 100
Console.WriteLine(r.Next(100));
Đối với trường hợp này tuy nhiên bạn có thể sử dụng Random.Next(int minValue, int maxValue)
, như thế này:
// print random integer >= 1 and < 101
Console.WriteLine(r.Next(1, 101);)
// or perhaps (if you have this specific case)
Console.WriteLine(r.Next(100) + 1);
Cảm ơn des :). Điều này làm việc tuyệt vời. –
@SethTaddiken: Vâng, nó không làm những gì bạn * hỏi * cho, đó là một số từ 1 đến 100. Nó sẽ không bao giờ cung cấp cho bạn 100, nhưng nó * sẽ * cung cấp cho bạn 0. Ngoài ra, bạn nên chắc chắn rằng bạn thực sự hiểu rằng bạn không nên tạo một thể hiện mới của 'Random' mỗi lần. –
Biến sẽ trông như thế nào nếu tôi in ra là một số ngẫu nhiên từ 1 đến 100? –
Tôi đã tìm kiếm trên Internet cho RNG một thời gian. Tất cả những gì tôi thấy hoặc là quá phức tạp hoặc không chỉ là những gì tôi đang tìm kiếm. Sau khi đọc một vài bài viết tôi đã có thể đưa ra mã đơn giản này.
{
Random rnd = new Random(DateTime.Now.Millisecond);
int[] b = new int[10] { 5, 8, 1, 7, 3, 2, 9, 0, 4, 6 };
textBox1.Text = Convert.ToString(b[rnd.Next(10)])
}
Giải thích đơn giản,
- tạo ra một mảng số nguyên 1 chiều.
- làm đầy mảng bằng số không có thứ tự.
- sử dụng lệnh rnd. Tiếp theo để nhận vị trí của số sẽ được chọn.
Tính năng này hoạt động tốt.
Để có được một số ngẫu nhiên dưới 100 sử dụng
{
Random rnd = new Random(DateTime.Now.Millisecond);
int[] b = new int[10] { 5, 8, 1, 7, 3, 2, 9, 0, 4, 6 };
int[] d = new int[10] { 9, 4, 7, 2, 8, 0, 5, 1, 3, 4 };
textBox1.Text = Convert.ToString(b[rnd.Next(10)]) + Convert.ToString(d[rnd.Next(10)]);
}
và vân vân cho 3, 4, 5, 6 ... số ngẫu nhiên chữ số.
Hy vọng điều này sẽ hỗ trợ người nào đó tích cực.
rnd. Tiếp theo (10) đã cung cấp cho bạn một số trong phạm vi bạn cần. bạn không cần một dãy số từ 1 ~ 10 để tra cứu – AaA
- 1. ngẫu nhiên() thực sự hoạt động như thế nào?
- 2. c - trình tạo số ngẫu nhiên
- 3. Trình tạo số ngẫu nhiên phân phối ngẫu nhiên
- 4. Tạo số ngẫu nhiên trong C
- 5. Trình tạo số ngẫu nhiên tốt cho C
- 6. Hiểu phân bố Poisson của trình tạo số ngẫu nhiên
- 7. Cách tạo số ngẫu nhiên lớn C
- 8. Math.random của JavaScript ngẫu nhiên như thế nào?
- 9. Tìm hiểu xem một trình tạo số ngẫu nhiên được tạo hạt giống như thế nào trong C++
- 10. C++ 11 số ngẫu nhiên
- 11. Tạo một bộ tạo số giả ngẫu nhiên trong C#
- 12. Trình tạo số giả ngẫu nhiên - Phân phối số mũ
- 13. Tạo số ngẫu nhiên CUDA
- 14. Trình tạo số ngẫu nhiên tạo số nguyên cho Java
- 15. số C# ngẫu nhiên không là "ngẫu nhiên"
- 16. Tạo số ngẫu nhiên lớn
- 17. Làm thế nào để 'ngẫu nhiên()' số ngẫu nhiên trong C (Linux)?
- 18. C++ 11 An toàn chủ đề của các trình tạo số ngẫu nhiên
- 19. Làm cách nào để truyền một trình tạo số ngẫu nhiên C++ 11 cho một hàm?
- 20. Số ngẫu nhiên trong C
- 21. Trình tạo số ngẫu nhiên có phân phối beta
- 22. Tạo hai chuỗi độc lập ngẫu nhiên số (C++)
- 23. cố gắng tìm một trình tạo số ngẫu nhiên
- 24. Số ngẫu nhiên được tạo ra khi chạy như thế nào?
- 25. số ngẫu nhiên không quá ngẫu nhiên
- 26. MVC asp.net C# tạo ngẫu nhiên cùng một số
- 27. Số ngẫu nhiên trong POSIX C API
- 28. tạo ngẫu nhiên số nguyên 64 bit
- 29. Trình biên dịch C/C++ hoạt động như thế nào?
- 30. Android Widget ngừng hoạt động ngẫu nhiên
Random random = new Random(); random.Next (1, 101); // Bao gồm 1 và 100 ngẫu nhiên.Next (1, 100); // Bao gồm 1 và loại trừ 100 – AmazingDreams
@AmazingDreams: Không, giới hạn dưới là * bao gồm *. –
@JonSkeet Cảm ơn, đã lâu rồi tôi mới sử dụng nó. Đã thực hiện chỉnh sửa. – AmazingDreams