Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как выбрать элементы массива/списка? / 2 сообщений из 2, страница 1 из 1
13.05.2008, 15:43
    #35309391
CacheLot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать элементы массива/списка?
Как выбрать элементы массива или списка в произвольном порядке??
То есть, выводить значения не по порядку а в разброс?
Вобщем вопрос в том, как это сделать более рационально?
Я представлю себе нечто вроде:
1) Генерация случайного числа ($R(N)) - N - количество элементов списка/массива;
2) Формирование вспомогательно массива для выбранных функцией $R(N) индексов;
3) Проверка на вхождение очередного случайного числа во вспомогательный массив;
4) Вывод элемента массива...

Но что то сложновато ОНО.... может как то "поэлегантнее" можно??
...
Рейтинг: 0 / 0
13.05.2008, 16:12
    #35309512
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать элементы массива/списка?
1) пусть
s n=15
2) список номеров
s list="" f i=1:1:n s list=list_$lb(i)
3) выбираем номер в списке
s i=$r(n)+1
4) случайно выбранный неповторяющийся номер
s next=$li(i)
5) забываем выбранный элемент
s $li(list,i,i)=""
6) число оставшихся уменьшилось
s n=n-1

и повторяем с пункта 3 пока n не ноль, иначе выбрали все
получим номера от 1 до n в случайном неповторяющемся порядке

В вашем случае пункт 3 выполняется за недетерминированное время.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как выбрать элементы массива/списка? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]