PDA

View Full Version : سوال: رندوم غیر تکراری



i-nostalgic
چهارشنبه 25 مرداد 1391, 11:30 صبح
چگونه میتوان از 1 تا n , n رندوم غیر تکراری داد
مشکل رندوم معمولی اینه که به خاطر سرعت بالا رندوم رو به شکل زیر میده
3-4-5-6-7-8-9-.....

morika
چهارشنبه 25 مرداد 1391, 11:51 صبح
البته من که نفهمیدم منظور شما از سرعت بالا و تکراری بدون عدد چیه ولی این تابع عدد رندم غیر تکراری به شما میده:
int id = 0;
Random rnd = new Random();
id = rnd.Next(1, n);
اگرم می خواین هم زمان چندتا عدد رندم داشته باشین می تونین از یه آرایه استفاده کنین و با اندیس او آرایه رو پشت سر هم پی کنین

حامد مصافی
چهارشنبه 25 مرداد 1391, 12: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, 13: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;
}