Function PrbValue() As Single
PrbValue = 0.996
End Function
Function PrbValue(Probability As Single) As Boolean
Randomize
PrbValue = (Rnd > Probability)
End Function
uhm писал(а):rnd дает равномерно распределенную на отрезке [0; 1] случайную величину.
--=GAMER=-- писал(а):VVitafresh
А вот и нет - в еденицу тож попадает особено если тип Integer
The Rnd function returns a value less than 1, but greater than or equal to zero.
Sub RndArr(arr() As Long, LengthArray As Long) ' Заполнение массива случайными неповторяющимися числами
Dim i As Long, j As Long
Randomize
1: arr(0) = Int(Rnd * 10 ^ (Int(Rnd * 8)) * (-1) ^ (Int(Rnd * 10)))
For i = 1 To LengthArray - 1
2: arr(i) = Int(Rnd * 10 ^ (Int(Rnd * 8)) * (-1) ^ (Int(Rnd * 10)))
For j = 0 To i - 1
If arr(j) = arr(i) Then
i = i - 1
Exit For
End If
Next
Next
End Sub
Tamplier писал(а):Извините, что вмешиваюсь в разговор, о великие Гуру.
Рассмотрите следующий код, пожалуйста. Может это вам поможет понять достаточно ли случайнен rnd
просто мне кажеться что функция rnd не совсем возвращает случайные числа
С чего ты взял, что в последовательности "достаточно случайных" чисел не может быть повторов?
Tamplier писал(а):С чего ты взял, что в последовательности "достаточно случайных" чисел не может быть повторов?
Читай внимательнее текст после кода. Я этого нигде не говорил.
Как оно связано с "достаточной случайностью"?
Имхо никак. Ни в одну, ни в другую сторону.
Для создания массива по данному алгоритму из 10тыс элементов на средней машине уходит порядка минуты. При этом повторение на одном значении счетчика после 5тыс элементов идет в районе 300тыс-1мил
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 82