PDA

View Full Version : سوال: عدد رندوم



venus_h
یک شنبه 02 اسفند 1388, 14:36 عصر
سلام
من از دستور زير براي بدست آوردن يه عدد رندوم تا 495 استفاده ميكنم

a = Rnd(1)
Me.Refresh
k = Int(a * 10000 + 1)
If k > 495 Then
k = Int(k / 37)
End If
If k > 495 Then
k = Int(k / 37)
End If
If k > 495 Then
k = Int(k / 37)
End If
no = k

ميخوام هر وقت فرمم باز ميشه يه عدد رندوم به no بده،مشكل اينجاست كه هر بار كه پايگاه دادمو باز ميكنم يه سري عدد تكراري ميده،مثلا اولين بار كه فرم رو باز ميكنم عدد 190 رو ميده
و عدد بعدي 84 و ...،حالا اگه پايگاه دادمو ببندم و دوباره باز كنم باز هم اول از همه 190 رو ميده و بعد 84 و ...
چكار كنم كه اين حالت اتفاق نيفته؟

anbaran
یک شنبه 02 اسفند 1388, 16:22 عصر
سلام
من از دستور زير براي بدست آوردن يه عدد رندوم تا 495 استفاده ميكنم

a = Rnd(1)
Me.Refresh
k = Int(a * 10000 + 1)
If k > 495 Then
k = Int(k / 37)
End If
If k > 495 Then
k = Int(k / 37)
End If
If k > 495 Then
k = Int(k / 37)
End If
no = k

ميخوام هر وقت فرمم باز ميشه يه عدد رندوم به no بده،مشكل اينجاست كه هر بار كه پايگاه دادمو باز ميكنم يه سري عدد تكراري ميده،مثلا اولين بار كه فرم رو باز ميكنم عدد 190 رو ميده
و عدد بعدي 84 و ...،حالا اگه پايگاه دادمو ببندم و دوباره باز كنم باز هم اول از همه 190 رو ميده و بعد 84 و ...
چكار كنم كه اين حالت اتفاق نيفته؟


برای بدست آوردن عدد تصادفی از تابع زیر استفاده کنید
(INT(Rnd * (numMax - numMin) + numMin=عدد تصادفی
برای نمونه جهت بدست آوردن یک عدد تصادفی بین 2500 تا 5500 به روش زیر عمل کنید
(INT(Rnd * (5500- 2500) + 2500=عدد تصادفی

venus_h
دوشنبه 03 اسفند 1388, 08:31 صبح
من از روش شما استفاده كردم ولي مشكل من همچنان به قوت خودش باقيه!سوالمو يه بار ديگه مطرح ميكنم:
عدد رندوم جنريت ميشه درست،بعد از چندتايي عدد جنريت كردن يه سري عدد بدست مياد ولي هر بار كه پايگاه داده رو باز ميكنم اين سري اعداد تغيير نميكنن!چكار كنم با هر بار باز كردن پايگاه داده سري اعداد مختلفي بهم بده؟؟:متفکر::متفکر::متفکر:

karmand
دوشنبه 03 اسفند 1388, 10:11 صبح
Randomize
a = Int((100 * Rnd) + 1)
MsgBox (a)