PDA

View Full Version : سوال: درخواست کد ایجاد اعداد رندم بدون تکرار



mtn677
سه شنبه 11 تیر 1392, 21:20 عصر
سلام
کدی می خوام که با فشردن یک دکمه، از بین اعداد 1 تا 100 به صورت تصادفی یک عدد صحیح انتخاب بشه و هر بار که دکمه رو فشردم یک عدد تصادفی انتخاب بشه ولی عدد تکراری نباشه یعنی اگر یکبار 20 انتخاب شد دیگه تا آخر 20 انتخاب نشه و وقتی که تمام اعداد تکراری شدن(یعنی وقتی 100 بار دکمه فشرده شد) باز فرآیند تکرار بشه.

mehran901
سه شنبه 11 تیر 1392, 22:32 عصر
سلام
کدی می خوام که با فشردن یک دکمه، از بین اعداد 1 تا 100 به صورت تصادفی یک عدد صحیح انتخاب بشه و هر بار که دکمه رو فشردم یک عدد تصادفی انتخاب بشه ولی عدد تکراری نباشه یعنی اگر یکبار 20 انتخاب شد دیگه تا آخر 20 انتخاب نشه و وقتی که تمام اعداد تکراری شدن(یعنی وقتی 100 بار دکمه فشرده شد) باز فرآیند تکرار بشه.


Randomize
(Int(Rnd() * 100

تولید اعداد تصادفی کمتر از 100 و البته ممکنه اعدادی در مراحلی دوباره تکرار بشن ... اگه خیلی مهمه که اصلا تکراری نباشه باید ی برنامه بنویسین اعداد جدید رو با اعداد قبلی که سیو کردیم مقایسه کنه اگه تکراری داشت باز عدد تولید بشه

mtn677
سه شنبه 11 تیر 1392, 23:08 عصر
Randomize
(Int(Rnd() * 100

اگه خیلی مهمه که اصلا تکراری نباشه باید ی برنامه بنویسین اعداد جدید رو با اعداد قبلی که سیو کردینم مقایسه کنه اگه تکراری داشت باز عدد تولید بشه

منم دقیقا همینو می خوام:لبخندساده:ولی در تبدیل این الگوریتم به کد ناتوانم:لبخندساده:

دانشجوی تویسرکانی
سه شنبه 11 تیر 1392, 23:17 عصر
سلام اعدادی که تولید میشه رو بزار داخل یک آرایه از نوع اینتجر با مقدار 100 - آرایه خودتون رو از نوع Public static تعریف کنید.
بعد زمانی که عدد رندوم تولید میشه رو با یک حلقه آرایه 100 تایی رو چک کنه اگه بود 1 رقم بره بالا

mtn677
سه شنبه 11 تیر 1392, 23:19 عصر
Randomize
(Int(Rnd() * 100

ه


این کد که نوشتی با این کد چه فرقی داره؟




Randomize Timer
Int(Rnd * 10 )

mehran901
سه شنبه 11 تیر 1392, 23:37 عصر
این کد که نوشتی با این کد چه فرقی داره؟




Randomize Timer
Int(Rnd * 10 )

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

درحالت کلی مثلا واسه تولید اعداد تصادفی بین 1 تا 100 اینطوری مینویسین :
int((rnd * 100) + 1 )
بین 1 و 100 تولید میشه من تو پست اول اینو مطرح نکردم چونبه نظرم ضروری نیومد

vbhamed
چهارشنبه 12 تیر 1392, 21:56 عصر
سلام
كد زير رو در يك ماژول بنويسيد
اين براي اعداد 1 تا 100 كار مي‌كنه، براي تغيير رنج در كد زير عدد 100 و 99 رو تغيير بدين

Dim nums$, Count%

Function MakeRandomNumber() As Integer

Randomize Timer

Dim x%

If Count = 100 Then
Count = 0
nums = ""
End If

Do
x = (Rnd * 99) + 1
DoEvents
If InStr(nums, "|" & CStr(x) & "|,") = 0 Then Exit Do
Loop

nums = nums & "|" & CStr(x) & "|,"

Count = Count + 1

MakeRandomNumber = x

End Function

و يك دكمه و يك ليست در فرم بزاريد و كد زير رو در فرم بنويسيد
Private Sub Command1_Click()

List1.AddItem MakeRandomNumber

End Sub

program2vb
پنج شنبه 13 تیر 1392, 11:26 صبح
سلام . اینم سورسی که خواسته بودی ...

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

vbhamed
پنج شنبه 13 تیر 1392, 12:20 عصر
سلام

كد يك مشكل كوچولو داشت كه تو همون پست اصلاح شد

fara sami
دوشنبه 07 مرداد 1392, 12:37 عصر
سلام میخوام تو radgrid وقتی کسیو ثبت کردم user و pass یه عدد 8 رقمی random تولیدکنه امانمیدونم چه جوری؟؟؟؟؟؟؟؟؟:ناراحت:
لطفا کمک کنید

m.4.r.m
دوشنبه 07 مرداد 1392, 14:50 عصر
Function RandomString(cb As Integer) As String

Randomize
Dim rgch As String
rgch = "0123456789"

Dim i As Long
For i = 1 To cb
RandomString = RandomString & Mid$(rgch, Int(Rnd() * Len(rgch) + 1), 1)
Next

End Function

Private Sub Command1_Click()
Text1.Text = RandomString(8)
End Sub