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

درخواست کمک در رندوم بدون تکرار


sedat

سوال

سلام دوستان
من میخوام به متغیرهای a1 تا a20 (بیست متغیر) ,عددهای تصادفی بین یک تا بیست رو بدم بطوریکه اعداد تکراری نباشند.
اگر کسی قطعه کدش رو میدونه برام بنویسید.
ممنون

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

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

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

در 18 ساعت قبل، پژمان نیکروان گفته است :

 

سلام - این کد شما عدد رندوم میده ولی من هم مثل این دوستمون همین مشکل رو دارم

شما ببینید بقول دوستمون بیست تا باتن داریم و اسمشون هم a1  تا a20  هستش ...

خب حالا چطور رندوم بگیریم که اعداد تکراری نیاد و در ضمن از یک تا بیست هم باشه ؟؟؟!!!

مثلا

a1=1

a2=2

.

.

.

a20=20

حالا همین باتن ها دفعه بعد مقدارش عوض بشه و تکراری هم داخلش نباشه

منکه خسته شدم از بس سرچ کردم و نوشتم و نتیجه نگرفتم:sorry::Laie_53:

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

در در 1396/01/24, 19:54:27، mirtalebi گفته است :

سلام خدمت شما دوست عزیز

نوشتن این جور کد ها خیلی راحته ولی یخرده باید خلاقیت به خرج بدین و وقت بزارین و فکر کنین


Dim k(20) As Int
	For a = 0 To 19
		k(a) = Rnd(1,20)
		For b = 0 To 25
		For c  = 0 To 19
			If c <> a Then
				If k(a) = k(c) Then
					k(a) = k(a)+1
				End If
			End If
		Next
		If k(a) > 20 Then
			k(a) = 1
		End If
		Next
	Next
	For y  = 0 To 19
		Log(k(y))
	Next

من واسه شما کدی رو نوشتم که اعداد 1 الی 20 را به صورت رندوم نمایش میده و هیچ کدوم هم تکراری نستن و این اعداد رو توی یه متغیر آرایه ای از نوع عددی ذخیره کردیم و توی پنل log نمایش می دیم

اگر سوالی در کد بود یعنی جایی رو متوجه نشد اید من درخدمتم تا کد را برای شما توضیح دهم

هرچن شاید کد زیاد بهینه نباشد و می توان از روش های بهینه و بهتری استفاده کرد ولی من خواستم کد به صورت مقدماتی و ساده باشه

با تشکر 

ممنون

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

سلام خدمت شما دوست عزیز

نوشتن این جور کد ها خیلی راحته ولی یخرده باید خلاقیت به خرج بدین و وقت بزارین و فکر کنین

Dim k(20) As Int
	For a = 0 To 19
		k(a) = Rnd(1,20)
		For b = 0 To 25
		For c  = 0 To 19
			If c <> a Then
				If k(a) = k(c) Then
					k(a) = k(a)+1
				End If
			End If
		Next
		If k(a) > 20 Then
			k(a) = 1
		End If
		Next
	Next
	For y  = 0 To 19
		Log(k(y))
	Next

من واسه شما کدی رو نوشتم که اعداد 1 الی 20 را به صورت رندوم نمایش میده و هیچ کدوم هم تکراری نستن و این اعداد رو توی یه متغیر آرایه ای از نوع عددی ذخیره کردیم و توی پنل log نمایش می دیم

اگر سوالی در کد بود یعنی جایی رو متوجه نشد اید من درخدمتم تا کد را برای شما توضیح دهم

هرچن شاید کد زیاد بهینه نباشد و می توان از روش های بهینه و بهتری استفاده کرد ولی من خواستم کد به صورت مقدماتی و ساده باشه

با تشکر 

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

بایگانی شده

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

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

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