| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Misha v.3 27.10.2013 09:38 / 27.10.2013 09:53
вообще такой алгоритм найдёт только одну случайную позицию в диапазоне таблицы.^if($requested_count >= $table){
$result[^table::create[$table]]
^result.sort(^math:random(1))
}{
$h[^hash::create[]]
^while($h < $requested_count){
$h.[^math:random($table)](true)
}
$result[^table::create[$table][$.limit(0)]]
^h.foreach[offset;]{^result.join[$table][$.offset($offset)$.limit(1)]}
}это будет эффективнее, чем "случайно" сортировать таблицу.