PDA

View Full Version : تابع Random



mohsen.khodaei
پنج شنبه 31 فروردین 1391, 14:38 عصر
با سلام
در مورد تابع random میخواستم بدونم
اگر بخواهم چندین عدد تصادفی و بدون تکرار از بین 1 تا 8 انتخاب کنم چه دستوری باید بنویسم؟
لطفا در زبان سی شارپ توضیح دهید.
دستور زیر انتخاب میکند ولی تکراری می دهد.
Random rnd=new Random();
rnd.Next(1, 8)

omid_csh
پنج شنبه 31 فروردین 1391, 16:20 عصر
سلام
اگه بخوای اعداد تکراری نباشه، باید این اعداد رو جایی ذخیره کنی و عددی که تولید میشه چک کنی که توی اون اون لیست نباشه.

using System.Collections;

static void Main(string[] args)
{
ArrayList lstNumbers = RandomNumbers(1, 8, 5);

for (int i = 0; i < lstNumbers.Count; i++)
Console.WriteLine("{0}", lstNumbers[i].ToString());

}

public static ArrayList RandomNumbers(int minValue,int maxValue, int max)
{
ArrayList lstNumbers = new ArrayList();
Random rndNumber = new Random(Environment.TickCount);
int number;
int count = 0;

while (count < max)
{
number = rndNumber.Next(minValue, maxValue);

if (!lstNumbers.Contains(number))
{
lstNumbers.Add(number);

count++;
}
}

return lstNumbers;
}