
Random *(_max - i)+i - случайное число (индекс) в оставшемся неперемешанным диапазоне

Ответов: 8939
Рейтинг: 824
|
|||
Tad, вот я и говорю, (что не курю) что обсуждаемый RND нужен в основном для перебора массива в случайном порядке, поэтому точка _min не нужна, _min=0
![]() Random *(_max - i)+i - случайное число (индекс) в оставшемся неперемешанным диапазоне ![]() |
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид, я спрашиваю - ГДЕ ВЗЯЛ Random со звёздочкой ? Я раньше никогда не встречал
![]() Random без параметров и Random(_max - i)+i знаю, а Random *(_max - i)+i к.ф. Чапаев писал(а): кто такой ? Почему не знаю ?------------ Дoбавленo в 19.03: Леонид писал(а): вот этот блок и выкинуть из RND, а вставить в ArrayEnum |
|||
карма: 25 |
|
Ответов: 8939
Рейтинг: 824
|
|||
Tad, взял у Dilma из Rnd версии 132
![]() Random писал(а): procedure THIRandom._work_doRandom0;
begin FRnd := Random*(_prop_Max - _prop_Min + 1) + _prop_Min - 0.5; _hi_CreateEvent(_Data,@_event_onRandom,integer(Round(FRnd))); end; где Random* это не Random со звёздочкой, а Random умножить на ![]() ![]() |
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид писал(а): Random умножить на ![]() ![]() ![]() Век бы не догадался. ![]() |
|||
карма: 25 |
|
Разработчик
Ответов: 26206
Рейтинг: 2137
|
|||
Леонид писал(а): хотя цифры - те же строкиНе те же. Массив чисел меньше, чем массив символов, или спорить будем ![]() Если что-то делать, то делать надо компонент работы с массивом -- перемешивание, ArrayShuffle |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco,
Tad писал(а): А я бы добавил одно телодвижение if i<>j |
|||
карма: 25 |
|
Разработчик
Ответов: 26206
Рейтинг: 2137
|
|||
Tad писал(а): Что скажешь?Я не пойму его назначение, объясни популярно |
|||
карма: 22 |
|
Ответов: 8939
Рейтинг: 824
|
|||
nesco, чтобы ни одно число не стало на свое "законное" место
![]() ![]() |
|||
карма: 19 |
|
Разработчик
Ответов: 26206
Рейтинг: 2137
|
|||
Гы. Воля случая -- пожалуй, стоит оставить такой вариант
|
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): объясни популярно(Блин. Ответ еврейский получился. Видно страна проживания влияет ![]() ------------ Дoбавленo в 09.39: Леонид,не так уж и редко люди и в рулетку выигрывают. (Правда мелкие суммы. Но это уже три совпадения должно быть ![]() ------------ Дoбавленo в 09.40: nesco писал(а): Гы. Воля случая |
|||
карма: 25 |
|
Разработчик
Ответов: 26206
Рейтинг: 2137
|
|||
Tad, протестируй, я поправил длину массива и ввел твое предложение в код
|
|||
карма: 22 |
|
Ответов: 8939
Рейтинг: 824
|
|||
Tad, а что больше нагружает процессор: один-два раза лишний обмен значениями (не самая медленная операция) или проверка if i<>j для каждого прохождения тела цикла?
![]() |
|||
карма: 19 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2021-05-21 12:59:08 |
|||
карма: 0 |
|
Ответов: 8939
Рейтинг: 824
|
|||
Tad, да не надо циклы считать, поступи, как истинный радиолюбитель (не при Galkov-е будь сказано): проверь на 100000 так и так с засечкой времени
![]() |
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид, ну и какой результат ? Я на работе. Дома буду после 3-х (4-х по Москве)
![]() |
|||
карма: 25 |
|