Random *(_max - i)+i - случайное число (индекс) в оставшемся неперемешанным диапазоне
Этот топик читают: Гость
|
Ответов: 8974
Рейтинг: 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 |
|
|
Ответов: 8974
Рейтинг: 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 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
Леонид писал(а): хотя цифры - те же строкиНе те же. Массив чисел меньше, чем массив символов, или спорить будем Если что-то делать, то делать надо компонент работы с массивом -- перемешивание, ArrayShuffle |
|||
| карма: 22 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
nesco,
Tad писал(а): А я бы добавил одно телодвижение if i<>j |
|||
| карма: 25 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
Tad писал(а): Что скажешь?Я не пойму его назначение, объясни популярно |
|||
| карма: 22 |
|
|
Ответов: 8974
Рейтинг: 824
|
|||
|
nesco, чтобы ни одно число не стало на свое "законное" место
|
|||
| карма: 19 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
Гы. Воля случая -- пожалуй, стоит оставить такой вариант
|
|||
| карма: 22 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
nesco писал(а): объясни популярно(Блин. Ответ еврейский получился. Видно страна проживания влияет ------------ Дoбавленo в 09.39: Леонид,не так уж и редко люди и в рулетку выигрывают. (Правда мелкие суммы. Но это уже три совпадения должно быть ------------ Дoбавленo в 09.40: nesco писал(а): Гы. Воля случая |
|||
| карма: 25 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
Tad, протестируй, я поправил длину массива и ввел твое предложение в код
|
|||
| карма: 22 |
|
|
Ответов: 8974
Рейтинг: 824
|
|||
|
Tad, а что больше нагружает процессор: один-два раза лишний обмен значениями (не самая медленная операция) или проверка if i<>j для каждого прохождения тела цикла?
|
|||
| карма: 19 |
|
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
|
Редактировалось 2 раз(а), последний 2021-05-21 12:59:08 |
|||
| карма: 0 |
|
|
Ответов: 8974
Рейтинг: 824
|
|||
|
Tad, да не надо циклы считать, поступи, как истинный радиолюбитель (не при Galkov-е будь сказано): проверь на 100000 так и так с засечкой времени
|
|||
| карма: 19 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
Леонид, ну и какой результат ? Я на работе. Дома буду после 3-х (4-х по Москве)
|
|||
| карма: 25 |
|




Поиск
Друзья
Администрация