Как сделатъ выборку по случаиному числу

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Как сделатъ выборку по случаиному числу

Сообщение student-uni » 19.11.2007 (Пн) 12:12

Есть Данные, около 300 000 штук, в массиве структур, которые имеют два поля скажем типа Инт1 и Инт2
Необходимо выбрать случаиным образом скажем 10 данных (10 структур)
Случаиным образом надо сгенирировать число для Инт1 и для Инт2
и выбрать елемент которому соответствует такая комбинация
а если его нет - то генерировать дальше.
Инт1 содержит нумерацию от 0 до 300 000 и не может повторяться
Инт2 может повторяться и содержит нумерацию от 1000 до 1010

Спасибо

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 19.11.2007 (Пн) 12:33

В чем проблема? Rnd в языке есть. Как ее применить к диапазону чисел тоже вполне известный метод:

Код: Выделить всё
rndBound = Int((upperBound - lowerBound + 1) * Rnd + lowerBound)
Весь мир матрица, а мы в нем потоки байтов!

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 19.11.2007 (Пн) 12:43

Извините недосказал,
выбранные единажды значения второи раз выбирать нельзя,
т о время нахождения нужного количества с каждым разом растет, тк растет число уже использованных.
Я смоделировал просто перебор значении массива, как если бы ето делалось вручную,
но может можно что по лучше придумаТь ?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.11.2007 (Пн) 13:36

Конечно.
Выбираешь из пула, удаляя из пула выбранные записи.
Lasciate ogni speranza, voi ch'entrate.

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 19.11.2007 (Пн) 13:42

я не совсем понимаю что подразумевается под словом ПУЛ в ВБ6
как его создать ? Коллекция это ? Хеш ? Array? или что ?
можно пару ключевых слов для поиска ?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.11.2007 (Пн) 13:47

Это тебе решать, как это будет реализовано.
Я тебе говорю о принципе.
Создаешь пул. Выбираешь из пула случайный элемент. Добавляешь его в выборку, из пула удаляешь.
Lasciate ogni speranza, voi ch'entrate.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 19.11.2007 (Пн) 14:22

Пул можно реализовать массивом, минус - удаление элементов из массива не самое приятное занятие.
Можно коллекцией, минус - коллекция работает только с Variant. Соответственно пойдет преобразование в/из Variant, да и памяти займет поболее.

Выбирай, что тебе больше подходит. Можно протестировать на скорость оба решения.
Весь мир матрица, а мы в нем потоки байтов!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.11.2007 (Пн) 14:32

Viper, а можно рекордсетом, который уже есть.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList  
cron