همينطور كه مي دونين تو وي بي نمي تونيم اعداد رندوم واقعي داشته باشيم حتي با تابع Rnd
چرا؟ چرا تابع Rnd اعداد تصادفی واقعی تولید نمیکنه؟

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

این کد، بخشی از برنامه هست که اعداد تصادفی رو تولید میکنه:

Repeat:

Rand_Num = Rnd() * Max
Rand_Num = Rand_Num + Max '//Go Number larger than max

Do While (Rand_Num < Min Or Rand_Num > Max)

Rand_Num = Rand_Num - (Max - Min) '// IF Rand number is out of range , come it in range

Loop

If In_Array_X(Result, Rand_Num, i) = False Then '//IF Not exist then push it into array

Result(i) = Rand_Num

Else

GoTo Repeat

End If


این دستورات و حلقه ها دقیقاً معادل دستور زیر عمل می کنند:

Rand_Num = Rnd() * (Max - Min)
Rand_Num = Rand_Num + Min


کسی که کد رو نوشته، هدفش fit کردن عدد تولید شده در بازه مشخص شده هست. می بینید که نیازی به اون همه دستور و حلقه نیست. تنها اگر بدونیم تابع Rnd کارش تولید یک عدد تصادفی در بازه 0 و 1 هست، همین کافی‌ست تا به دو خط دستور بالا برسیم.

موفق باشید/