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

مشکل در ایجاد عدد رندوم


vistamobile

سوال

سلام. من میخوام یه عدد رندوم بین 111 تا 7777777 بسازم. ولی نه تمام اعداد!! یعنی به هیچ عنوان بین اعداد رندوم ساخته شده عدد صفر و هشت و نه نباشه!! عایا امکانش هست؟ :unknown:به شدت نیازمند یاری سبزتان هستیم :blush:

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

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

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

در 15 ساعت قبل، arastooms گفته است :

این هم یکی از راه های رسیدن به خدا است ولی خوب خیلی پیچ در پیچ هست 

شما بهتره از این پست استفاده کنید
 

 

 

در بین محدوده میتونید فقط کاراکتر هاتون رو بدید و کاراکتر های اعدادی رو که لازم ندارید ندید
این هم هست که خودم یکی 2 سال پیش پُرسیده بودم

 

داداش تشکر ولی من نگرفتم چی شد :unknown: 

الان من یه عدد میخوام بین 111 تا 7777777 ولی توش 0 و 8 و 9 نباشه. 

Dim random As String

For i=0 To 14
Dim c As Char = Chr(Rnd(33, 127))
random=random&c
Next

Msgbox( random ,"")

این فقط یه عدد رندومه. اعدادی که میخوام رو کجا بدم؟

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

در 42 دقیقه قبل، vistamobile گفته است :

داداش تشکر ولی من نگرفتم چی شد :unknown: 

الان من یه عدد میخوام بین 111 تا 7777777 ولی توش 0 و 8 و 9 نباشه. 

این فقط یه عدد رندومه. اعدادی که میخوام رو کجا بدم؟

سلام 
شما یه عدد رندم لازم دارید درسته؟
که یا 3 رقم یا 4 رقم یا 5 رقم یا 6 رقم یا 7 رقم باشه !! درسته؟
خوب اول تعداد رقم رو رندوم بدست بیارید و بگید بین 3و4و5و6و7 یکی رو رندم به شما بده 
فرض میکنیم عدد 5 رو میده به شما! درسته؟
حالا این عدد 5 تعداد ارقام شما هست و تکلیف تعداد ارقام مشخص شد 
حالا باید بیاید 5 رقم از بین اعداد 1-2-3-4-5-6-7 باید انتخاب کنید ( چون به 8-9-0) نیاز ندارید !! درسته؟
حالا این 5 تا رو بچینید کتار هم تا بشه یه عدد 5 رقمی 

کدش رو بنویسید 
اگر جواب نداد منتقل کنید اینجا من کمک میکنم 
موفق باشید

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

در 14 دقیقه قبل، arastooms گفته است :

سلام 
شما یه عدد رندم لازم دارید درسته؟
که یا 3 رقم یا 4 رقم یا 5 رقم یا 6 رقم یا 7 رقم باشه !! درسته؟
خوب اول تعداد رقم رو رندوم بدست بیارید و بگید بین 3و4و5و6و7 یکی رو رندم به شما بده 
فرض میکنیم عدد 5 رو میده به شما! درسته؟
حالا این عدد 5 تعداد ارقام شما هست و تکلیف تعداد ارقام مشخص شد 
حالا باید بیاید 5 رقم از بین اعداد 1-2-3-4-5-6-7 باید انتخاب کنید ( چون به 8-9-0) نیاز ندارید !! درسته؟
حالا این 5 تا رو بچینید کتار هم تا بشه یه عدد 5 رقمی 

کدش رو بنویسید 
اگر جواب نداد منتقل کنید اینجا من کمک میکنم 
موفق باشید

داداش متوجه شدم ولی اگر ممکنه با تیکه کد  بگو :girl_flag_of_truce::53::53::53::53:

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

در 4 ساعت قبل، vistamobile گفته است :

داداش متوجه شدم ولی اگر ممکنه با تیکه کد  بگو :girl_flag_of_truce::53::53::53::53:


کدش رو بنویسید 
اگر جواب نداد منتقل کنید اینجا من کمک میکنم 
 

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

عاقا حل شد. تشکر از انجمن خودمون و محمد جنگجو (انجمن بغلی :blush:)

خب بعد از اینکه عدد ساخته شد ، عدد 8 و 1 رو با عدد دیگه ای replace کنید.

    Dim rndtxt As String = Rnd(1,999999999)
    rndtxt = rndtxt.Replace("8",Null)
    rndtxt = rndtxt.Replace("0",Null)
    rndtxt = rndtxt.Replace("9",Null

 

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

سلام؛

این هم روش خوبیه ها

ولی تعداد ارقام رو ممکنه کمتر از چیزی که انتظار داری کنه. یعنی اگه سه تا عدد 8 توی عدد تصادفی استفاده بشه و Replace بشه اونوقت سه رقم کمتر از رقم اصلی داری

با این مشکلی نداری؟

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

در 28 دقیقه قبل، AMiN.M7892 گفته است :

سلام؛

این هم روش خوبیه ها

ولی تعداد ارقام رو ممکنه کمتر از چیزی که انتظار داری کنه. یعنی اگه سه تا عدد 8 توی عدد تصادفی استفاده بشه و Replace بشه اونوقت سه رقم کمتر از رقم اصلی داری

با این مشکلی نداری؟

نه داداش چون جایگزین میزنم :


    Dim rndtxt As String = Rnd(1,999999999)
    rndtxt = rndtxt.Replace("8","1")
    rndtxt = rndtxt.Replace("0","2")
    rndtxt = rndtxt.Replace("9","3")

 

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

درود،

بنده الان این تاپیک رو دیدم و بنظرم استفاده از حلقه While راه مناسبی باشه! چون اصولا این حلقه برای چنین فرایندهایی به وجود اومده و کاربرد داره. با وجود اینکه دوستان گرامی مون راهکارهای جالب و خوبی رو ارائه کردن من هم کد زیر رو قرار میدم:

Sub generateRandomNumber As Double
	Dim generated As String : generated = Rnd(111,7777777)
	Do While (generated.Contains(0) Or generated.Contains(8) Or generated.Contains(9))
		generated = Rnd(111,7777777)
	Loop
	Return generated
End Sub

 

متد بالا رو عینا Copy/Paste کنید در قسمتی از کدهاتون و برای استفاده کردن ازش به شکل زیر عمل کنید:

Dim myRndNum = generateRandomNumber As Double

 

حالا متغیر myRndNum برابر با عددی است که شرایط مورد نیاز ما رو داره!

 

موفق باشید.

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

در 3 ساعت قبل، vistamobile گفته است :

عاقا حل شد. تشکر از انجمن خودمون و محمد جنگجو (انجمن بغلی :blush:)


خب بعد از اینکه عدد ساخته شد ، عدد 8 و 1 رو با عدد دیگه ای replace کنید.

    Dim rndtxt As String = Rnd(1,999999999)
    rndtxt = rndtxt.Replace("8",Null)
    rndtxt = rndtxt.Replace("0",Null)
    rndtxt = rndtxt.Replace("9",Null

 

خوب کد بالا ممکنه به شما عدد 9 رقمی 773651456 رو بده که عدد مورد نظر شما نیست
و یا عدد 23 که باز هم مد نظر شما نیست
البته با کمی تغیرات درست میشه 
اگر حل کردید خالی از لطف نیست که کدتون رو قرار بدید تا دوستان در آینده استفاده کنن
مرسی

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

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

Sub Activity_Create(FirstTime As Boolean)
	
	Log(r(Array As Int(0,8,9),4))
	
End Sub

Sub r(NoNumber() As Int,Numbersize As Int) As Double
	Private bdone,done As Boolean
	Private Number=0,size=0 As Int
	Private dnumber=0 As String
	Do While Numbersize <> size
		Do While done = False
		
			Number  = Rnd(0,9)
			For ii=0 To NoNumber.Length-1
				If NoNumber(ii)=Number Then
					bdone =True
					Exit
				End If
			Next
			If bdone = False Then
				If  size = 0 And Number = 0 Then
				Else
					dnumber = dnumber & Number
					size = size+1
					done = True
				End If
				
			End If
			bdone = False
		Loop
		done = False
	Loop
	If IsNumber(dnumber) Then Return dnumber
End Sub

 

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

در در 1396/07/03, 20:25:00، amir54 گفته است :

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

 

سلام ایده جالبیه اینکه از آرایه استفده بشه ولی خیلی پیچیده شد. تشکر

در در 1396/07/03, 19:33:31، arastooms گفته است :

خوب کد بالا ممکنه به شما عدد 9 رقمی 773651456 رو بده که عدد مورد نظر شما نیست
و یا عدد 23 که باز هم مد نظر شما نیست
البته با کمی تغیرات درست میشه 
اگر حل کردید خالی از لطف نیست که کدتون رو قرار بدید تا دوستان در آینده استفاده کنن
مرسی

موافقم، ولی کد نویسی ساده خودم جواب داد. تشکر

در در 1396/07/03, 17:24:48، مهران محمودی گفته است :

درود،

بنده الان این تاپیک رو دیدم و بنظرم استفاده از حلقه While راه مناسبی باشه! چون اصولا این حلقه برای چنین فرایندهایی به وجود اومده و کاربرد داره. با وجود اینکه دوستان گرامی مون راهکارهای جالب و خوبی رو ارائه کردن من هم کد زیر رو ق

 

 

خوبه داداش مهران ، کد نویسی ساده رو دوس دارم. امروز یکی از بازیهامو دوباره کد نویسی کردم شاید باورت نشه ولی با 6 خط کد، بیشتر از 66 خط کد رو از 32 اکتیویتی حذف کردم. بماند که دوتا کتابخونه رو برداشتم. 

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

سلام

فکر میکنم این راه بهترین راه نباشه ولی کد زیر میتونه کمکتون کنه

dim s as string
s = 	Rnd(111,7777777)
	Log(s)

	If s.Contains("0") Or s.Contains("8") Or s.Contains("9") Then
		Log("try")
		s = 	Rnd(111,7777777)
	End If
	Log(s)

 

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

در 2 ساعت قبل، Amir - B گفته است :

سلام

فکر میکنم این راه بهترین راه نباشه ولی کد زیر میتونه کمکتون کنه


dim s as string
s = 	Rnd(111,7777777)
	Log(s)

	If s.Contains("0") Or s.Contains("8") Or s.Contains("9") Then
		Log("try")
		s = 	Rnd(111,7777777)
	End If
	Log(s)

 

این هم یکی از راه های رسیدن به خدا است ولی خوب خیلی پیچ در پیچ هست 

شما بهتره از این پست استفاده کنید
 

 

در 3 ساعت قبل، vistamobile گفته است :

سلام. من میخوام یه عدد رندوم بین 111 تا 7777777 بسازم. ولی نه تمام اعداد!! یعنی به هیچ عنوان بین اعداد رندوم ساخته شده عدد صفر و هشت و نه نباشه!! عایا امکانش هست؟ :unknown:به شدت نیازمند یاری سبزتان هستیم :blush:

 

در بین محدوده میتونید فقط کاراکتر هاتون رو بدید و کاراکتر های اعدادی رو که لازم ندارید ندید
این هم هست که خودم یکی 2 سال پیش پُرسیده بودم

 موفق باشی استاد

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

بایگانی شده

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

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
  • کاربران آنلاین در این صفحه   0 کاربر

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