View Full Version : سوال: رندوم غیر تکراری
i-nostalgic
چهارشنبه 25 مرداد 1391, 12:30 عصر
چگونه میتوان از 1 تا n , n رندوم غیر تکراری داد
مشکل رندوم معمولی اینه که به خاطر سرعت بالا رندوم رو به شکل زیر میده
3-4-5-6-7-8-9-.....
morika
چهارشنبه 25 مرداد 1391, 12:51 عصر
البته من که نفهمیدم منظور شما از سرعت بالا و تکراری بدون عدد چیه ولی این تابع عدد رندم غیر تکراری به شما میده:
int id = 0;
Random rnd = new Random();
id = rnd.Next(1, n);
اگرم می خواین هم زمان چندتا عدد رندم داشته باشین می تونین از یه آرایه استفاده کنین و با اندیس او آرایه رو پشت سر هم پی کنین
حامد مصافی
چهارشنبه 25 مرداد 1391, 13:28 عصر
int max = 100;
int count = 10;
List<int> numbers = new List<int>();
for (int i = 0; i <= max; i++)
numbers.Add(i);
for (int i = 1; i < count; i++)
{
Random r=new Random();
int numberIndex = r.Next(1, numbers.Count);
Console.WriteLine("#{0}: {1}", i, numbers[numberIndex]);
numbers.RemoveAt(numberIndex);
}
tooraj_azizi_1035
چهارشنبه 25 مرداد 1391, 14:34 عصر
Faster:
Random rnd=new Random();
int x;
int[] n=new int[10];
for (i=0;i<10;i++)
{
x=rnd.Next(1,1000);// Generate random between 1 and 1000
while(n.Contains(x))//Make sure x does not exist in array
x=rnd.Next(1,100);
n[i]=x;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.