PDA

نسخه کامل مشاهده نسخه کامل : سؤال در مورد الگوریتم تصادفی حذفی



codemaster
29-04-2007, 11:53
فرض کنید 10 عدد مختلف داریم و از بین این 10 عدد می خوایم یکی را بصورت تصادفی انتخاب کنیم.
تا اینجا مشکلی ندارم ولی هنوز الگوریتم خوبی پیدا نکردم که بعد از انتخاب یک عدد اون رو از دایره انتخاب
تصادفی خارج کنه. برای مثال:

از بین 1 تا 10 ، عدد 5 رو انتخاب میکنه سپس از بین 9 عدد ( 5 از بین آنها حذف شده ) یکی دیگه رو انتخاب میکنه و
از بین اونها حذف میشه و میشه 8 عدد و ... به همین صورت!

10 9 8 7 6 5 4 3 2 1 m=5
10 9 8 7 6 4 3 12 1 m=2
10 9 8 7 6 4 3 1
.
.
.
4 m=4

اگر دوستان کمکم کنن ممنون میشم.

:19: :13:

NoneForce
29-04-2007, 12:00
سلام
يك راه اين است كه اعداد را در يك آرايه بريزيدو تابع random را با طول آرايه صدا بزنيد و آن عنصر آرايه را حذف كنيد.

codemaster
30-04-2007, 08:41
سلام
يك راه اين است كه اعداد را در يك آرايه بريزيدو تابع random را با طول آرايه صدا بزنيد و آن عنصر آرايه را حذف كنيد.

دوست من ممنون از توجهت!
تا اونجا که من میدونم عنصر آرایه که از بین نمیره چون آرایه خانه های حافظه سریه ... اگر میشد که خودم این کار رو میکردم. شما عنصر آرایه را صفر یا هر مقدازی میتونی بذاری ولی از بین نمیتونی ببری بطوری که بقیه عناصر آرایه وجود داشته باشند و همیشه طول آرایه همون طول اولیه خواهد بود و چیزی کم نمیشه!
اگه من اشتباه میکنم لطف کنید راه از بین بردن عنصر را بفرمایید.

باز هم ممنون...

:20:

NoneForce
30-04-2007, 09:44
سلام
خب ميشه عناصر را يكي به عقب شيفت داد، راههاي مختلفي است.
مورد زياد پيچيده اي نيست كه نياز به بحث زياد داشته باشد.

codemaster
30-04-2007, 17:15
ممنون، اصلا" حواسم به شیفت دادن نبود!
مرسی! مشکلم حل شد.

:31: