mohsen.khodaei
پنج شنبه 31 فروردین 1391, 15:38 عصر
با سلام
در مورد تابع random میخواستم بدونم
اگر بخواهم چندین عدد تصادفی و بدون تکرار از بین 1 تا 8 انتخاب کنم چه دستوری باید بنویسم؟
لطفا در زبان سی شارپ توضیح دهید.
دستور زیر انتخاب میکند ولی تکراری می دهد.
Random rnd=new Random();
rnd.Next(1, 8)
omid_csh
پنج شنبه 31 فروردین 1391, 17: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;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.