Помогите решить задачку: есть три числа 2, 23 и 45.. необходимо их генерировать в случайном порядке, причем число 2 должно появлятся с веротность 0,75; число 23 - с 0,15; а 45 - с 0,1... подскажите как это написать на VB...
Заранее спасибо...
'вот, как-то так
Dim x As Integer
Dim iVal As Integer
Dim z(2) As Integer 'проверка
Randomize
For x = 0 To 10000
Select Case Int(Rnd * 100)
Case 0 To 9 '0,1
iVal = 2
z(0) = z(0) + 1
Case 10 To 24 '0,15
iVal = 23
z(1) = z(1) + 1
Case Else '0,75
iVal = 45
z(2) = z(2) + 1
End Select
Debug.Print iVal
Next
Debug.Print z(0); Tab; z(1); Tab; z(2)
45-23*otr(i-10)-21*otr(i-25)-2*otr(i-100)
GAGArin писал(а):
- Код: Выделить всё
45-23*otr(i-10)-21*otr(i-25)-2*otr(i-100)
Где i - число от 0 до 100, дробное
otr(x) это отрицательность x
otr(x) = (abs(x)+x)/2 по идее лучше просто выделить бит знака, мне просто лениво смотреть где он, а на память не помню.
Во всех непредусмотренных случаях возвращает ноль
Добавленно: правил название функции, потому что нелогично сначала назвал.
PS Сорь за кучу исправлений, видимо не стоит писать код спъяну
Сейчас этот форум просматривают: AhrefsBot и гости: 108