Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Lukas
Но и тут не без.
Статистика:
Из 10000 вызовов, Shuffle возвращает в среднем 1186 уникальных значений, а Arr16 2069.

Попробуем так:

Public Function Col16() As Variant
    Dim Col As Collection
    Dim i As Integer
    Dim It As Integer
    Dim Arr(0 To 15) As Integer
    
    Set Col = New Collection
    For i = 0 To 15
        Col.Add CInt(i), CStr(i)
    Next i
    Randomize
    For i = 0 To 15
        It = Rnd() * (Col.Count - 1) + 1
        Arr(i) = Col.Item(It)
        Col.Remove It
    Next
    Set Col = Nothing
    Col16 = Arr
End Function

Работает в 2 раза быстрее Arr16, и выдает в среднем 2475 уникальных значений на 10000 вызовов.


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.