2010-10-20 50 views

Trả lời

293

Bạn có thể thử

Random r = new Random(); 
int rInt = r.Next(0, 100); //for ints 
int range = 100; 
double rDouble = r.NextDouble()* range; //for doubles 

Có một cái nhìn tại

Random Class, Random.Next Method (Int32, Int32)Random.NextDouble Method

+25

Chỉ cần thêm một ghi chú, nếu bạn đang sử dụng NextDouble() và không muốn giới hạn dưới bị bằng không. Bạn nhân bởi sự khác biệt giữa giới hạn cao hơn và giới hạn dưới, sau đó thêm sự khác biệt giữa giới hạn dưới và số không. Vì vậy, đối với -1 đến 1 'double rDouble = (r.NextDouble() * 2) -1.0;' –

24

Cái gì như:

var rnd = new Random(DateTime.Now.Millisecond); 
int ticks = rnd.Next(0, 3000); 
+1

cho 'DateTime.Now.Millisecond' là gì? – Hille

+0

Bạn cần đặt thứ gì đó cho nó để bắt đầu với ...... đối tượng ngẫu nhiên đơn giản thực hiện rất nhiều phép toán trên giá trị bạn cung cấp, và thực hiện theo cách mà mỗi lần gọi Next() _on cùng một đối tượng ngẫu nhiên_ sẽ dẫn đến giá trị khá ngẫu nhiên cho cuộc gọi trước đó. Để làm cho kết quả ngẫu nhiên hơn nhiều đối tượng ngẫu nhiên khác nhau_, bạn bắt đầu bằng một số khác - ở đây, DateTime.Now.Millisecond. Nếu bạn đặt hằng số, thay vì giá trị thay đổi, bạn sẽ nhận được kết quả tương tự từ .Next(). –

9

Sử dụng:

Random r = new Random(); 
int x= r.Next(10);//Max range 
+0

Điều này không chỉ định phạm vi. –

+0

Bạn chỉ cần thực hiện lệnh lower_value + r.Next (10) để nhận phạm vi ngẫu nhiên. – Salgat

19

Hãy thử bên dưới mã.

Random rnd = new Random(); 
int month = rnd.Next(1, 13); // creates a number between 1 and 12 
int dice = rnd.Next(1, 7); // creates a number between 1 and 6 
int card = rnd.Next(52); // creates a number between 0 and 51 
Các vấn đề liên quan