Home > Algorithm > Sinh ngẫu nhiên tăng

Sinh ngẫu nhiên tăng

1. Đặt bài toán :

Sinh ngẫu nhiên mảng nguyên n phần tử được sắp không giảm

2. Thuật toán :

  • Sinh ngẫu nhiên phần tử đầu tiên : a[0] = random(n);
  • Từ phần tử thứ 2 trở đi, giá trị được sinh bằng giá trị của phần tử đứng liền trước nó cộng thêm một đại lượng dương ngẫu nhiên :

(i=2…n):a[i]:=a[i-1]+random(n) . Do đó a[i] >= a[i-1]

3. Code C# :

/// <summary>
 /// Sinh ngẫu nhiên tăng
 /// </summary>
 /// <param name="n">Số phần tử cần sinh ra</param>
 /// <returns>Mảng n số nguyên theo tứ tự không giảm</returns>
 public static int[] GenRandomInCrease(int n)
 {
     Random r = new Random();
     int[] a = new int[n];
     a[0] = r.Next(5);
     for (int i = 1; i < n; i++)
     {
         a[i] = a[i - 1] + r.Next(10);
     }
     return a;
 }
Advertisements
Categories: Algorithm
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: