Re: Сочтут ли за рекламу? Вопрос модератору. ID:19019 ответ на 18537 |
Пт, 28 апреля 2006 23:20 [#] |
|
Jack Daw |
|
(иконки IM)
Форумы CasinoGames
|
|
vano писал пт, 28 апреля 2006 21:09 | Давайте посчитаем вместе сколько можно получить время на один спин тестирования. Возьмем 10000 наборов среди которых ищем самые "отклоненные" и псевоисторию в 100 спинов.
Время на каждый спин тестирования будет складываться из
1. Случайной (на самом деле не совсем случайной, но упростим)генерации 1000*37 пар чисел и проделать это 100 раз
(так как псевдоистория из 100 спинов.)
В итоге перед спином мы сформировали псеводисторию. Хорошо если выигрывать будем не на первом же спине. Так как при переходе на второй спин в этом случае не надо перегенерировать историю.
И ещё есть вторая довольно затратная по времени составляющая на каждый тестируемый спин - это сортировка массива из 10000 элементов.
Итак какое оптимальное значение по времени можно добиться по сумме этих 2-ух операций? | vano, уточни плиз задачу
1)тебе нужно 100 одномерных массивов размером 37000
2)Элементы массива от 0 до 36 включительно
3)Массивы упорядочены по возрастанию
Неясно понятие "пара чисел", как пары можно сортировать? По сумме? По первому значению?
Правильная постановка задачи есть ключ к успеху.
Для задачи из первых трёх пунктов может использовать такой алгоритм (генерит 100 серий мгновенно)
Private Results(1 To 100, 1 To 37000) As Long '100 упорядоченых серий - искомый результат
Private tmpResults(1 To 100, 0 To 36) As Long 'счётчики: сколько раз выпало каждое число за серию
Public Sub main()
Dim i1 As Long, i2 As Long, i3 As Long, tmp As Double
For i1 = 1 To 100
For i2 = 1 To 370
Randomize
For i3 = 1 To 100
tmp = Int(Rnd(i3) * 37) 'генерация числа от 0 до 36
tmpResults(i1, tmp) = tmpResults(i1, tmp) + 1 'увеличение соответствующего счётчика на единицу
Next i3
Next i2
i3 = 1
For i2 = 0 To 36
For i3 = i3 To i3 + tmpResults(i1, i2) - 1 'добавляем в последовательность число столько раз, сколько сумма на счётчике
Results(i1, i3) = i2
Next i3
Next i2
Next i1
End Sub
|
|
|