PDA

View Full Version : نتخاب اعداد به صورت random



esm4150
چهارشنبه 06 مرداد 1389, 00:27 صبح
سلام
می خواستم ببینم چطوری میشه چند تا عدد مختلف رو به صورت یکی یکی و random انتخاب کرد. در c#
مثلا بین 1و20و15و4 به صورت تصادفی یکی رو انتخاب کردوبقیه رو هم به همین ترتیب.
ممنون میشم

esm4150
چهارشنبه 06 مرداد 1389, 00:37 صبح
سلام
می خواستم ببینم چطوری میشه چند تا عدد مختلف رو به صورت یکی یکی و random انتخاب کرد. در C#‎
مثلا بین 1و20و15و4 به صورت تصادفی یکی رو انتخاب کردوبقیه رو هم به همین ترتیب.
ممنون میشم

Ali_M.Eghbaldar
چهارشنبه 06 مرداد 1389, 00:56 صبح
سلام دوست من
از دستور زیر استفاده کن


random r=new random();
string str;
str=r.next()
str=r.next(یک عدد)
str=r.next(حد بالا,حد پایین)

response.write(str);
در حال اول یک عدد بزرگ تصادفی
در حالت دوم حداکثر عدد را تعیین میکنی
در حالت سوم میتونی بگش از عدد 150 تا 220 یک عدد تصادفی به ما بده

موفق باشی

esm4150
چهارشنبه 06 مرداد 1389, 01:09 صبح
دوست عزیز من می خوام از بین چند عدد خاص انتخاب بشه.

Vahid_moghaddam
چهارشنبه 06 مرداد 1389, 01:11 صبح
اعداد رو بریزید توی یه لیست ژنریک یا یه آرایه (لیست بهتره) و اندیس رو به صورت رندم انتخاب کنید به روشی که در بالا گفته شده

esm4150
چهارشنبه 06 مرداد 1389, 01:21 صبح
برای اینکه تکراری نشه باید چکار کنم.

یک سوال دیگه : ایا می شه عناصر یک ارایه رو به نا مرتب کرد.

Ali_M.Eghbaldar
چهارشنبه 06 مرداد 1389, 01:36 صبح
سوالتو واضه تر بگو؟:لبخندساده:

Vahid_moghaddam
چهارشنبه 06 مرداد 1389, 01:37 صبح
برای اینکه تکراری نشه باید چکار کنم.

یک سوال دیگه : ایا می شه عناصر یک ارایه رو به نا مرتب کرد.
عدد مربوط به اندیس انتخاب شده رو از لیست remove کنید که البته count در لیست تغییر می کنه و مقدار ماکزیمم در تابع رندم باید اصلاح بشه. در واقع مقدار ماکزیمم باید باشه list.Count

در مورد سوال دوم هم می تونید از تابع زیر استفاده کنید. این تابع برای لیست ژنریک هست ولی روش کار برای آرایه هم شبیه به اینه. به عنوان پیشنهاد به جای استفاده از آرایه ها از Generic List ها استفاده کنید:


public static void ShuffleGenericList<T>(IList<T> list)
{

//generate a Random instance

Random rnd = new Random();

//get the count of items in the list

int i = list.Count();

//do we have a reference type or a value type

T val = default(T);



//we will loop through the list backwards

while (i >= 1)
{

//decrement our counter

i--;

//grab the next random item from the list

var nextIndex = rnd.Next(i, list.Count());

val = list[nextIndex];

//start swapping values

list[nextIndex] = list[i];

list[i] = val;

}

}

و روش اجرا:
List<int> lst = new List<int>() {1,2,3,4,5,6};
ShuffleGenericList<int>(lst);