رفتن به مطلب
  • 0

اعداد غیرتکراری


Forutan

سوال

سلام دوستان

من میخوام بصورت رندوم بین 1 تا list.Size چندتا عدد غیرتکراری بگیرم، ساده ترین حالتش اینه که گاهی اوقات تکراری میده :

Rnd(1,List.Size)

یه روش و راه حل قطعی واسه این مورد میخوام ممنون میشم راهنمایی کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام و درود

Dim Data as List ' لیستی که مقداری داخل خودش دارد
Dim cData as List

sub example
	If cData.size == 0 Then cData = Data
	Dim r as int = rnd(0,cData.size)
	Dim v as object = cData.get(r)
	cData.removeAt(r)
	return v
	

میایم و مقدارهای کلی که داریم را داخل یک لیست پیشفرض قرار میدیم تا به اطلاعات اصلی آسیب نرسه (شرط if)

بعد برای اینکه راندوم هر یک را بگیریم بدون اینکه تکراری بشن مگر اینکه چرخه یکدور تموم شده باشه (با حذف شرط if میتونین غیر فعالش کنید) یک عددتصادفی دریافت میکنیم و معادل با همون عدد را از لیست گرفته و معادل عدد دریافتی از لیست را حذف میکنیم و در آخر مقدار تصادفی را بازگشت میدیم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

10 ساعت قبل، DexterFstone گفته است:

 

سلام ، سپاس از وقتی که گذاشتید

خروجی رو به این صورت میده:

[IsInitialized=false, id=17, status=false]

شاید بد توضیح دادم یکبار دیگه اشاره کنم به این مورد که میخوام عدد رندوم بین 0 و تعداد آیتمهای لیست باشه یعنی بین 0 و list.Size

مثلا اگر لیستمون 12 آیتم داشت عدد رندوم بین 0 تا 12 باشه، اگر لیستمون 74 آیتم داشت عدد رندوم بین 0 تا 74 باشه

نمیخوام مقادیر آیتم رو بگیرم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

Dim Data as List ' لیستی که مقداری داخل خودش دارد
Dim cData as List

sub RndNum
	If cData.size == 0 Then
        For i = 0 To Data.size
        cData.add(i)
        End loop
	Dim r as int = rnd(0,cData.size)
	Dim v as int = cData.get(r)
	cData.removeAt(r)
	return v

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...