Вверх ↑
Этот топик читают: Гость
Ответов: 8928
Рейтинг: 823
#91: 2009-12-21 18:43:43 ЛС | профиль | цитата
Tad, вот я и говорю, (что не курю) что обсуждаемый RND нужен в основном для перебора массива в случайном порядке, поэтому точка _min не нужна, _min=0 вот этот блок и выкинуть из RND, а вставить в ArrayEnum - там ему самое место.
Random *(_max - i)+i - случайное число (индекс) в оставшемся неперемешанным диапазоне
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#92: 2009-12-21 18:56:02 ЛС | профиль | цитата
Леонид, я спрашиваю - ГДЕ ВЗЯЛ Random со звёздочкой ? Я раньше никогда не встречал
Random без параметров и Random(_max - i)+i знаю, а Random *(_max - i)+i
к.ф. Чапаев писал(а):
кто такой ? Почему не знаю ?

------------ Дoбавленo в 19.03:
Леонид писал(а):
вот этот блок и выкинуть из RND, а вставить в ArrayEnum
100% согласен - чаще нужно мешать строки, а не цифры (хотя цифры - те же строки)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8928
Рейтинг: 823
#93: 2009-12-21 20:02:53 ЛС | профиль | цитата
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;
[b]
где Random* это не Random со звёздочкой, а Random умножить на
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#94: 2009-12-21 20:08:40 ЛС | профиль | цитата
Леонид писал(а):
Random умножить на
Заклинило.
Век бы не догадался.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#95: 2009-12-21 21:59:19 ЛС | профиль | цитата
Леонид писал(а):
хотя цифры - те же строки

Не те же. Массив чисел меньше, чем массив символов, или спорить будем

Если что-то делать, то делать надо компонент работы с массивом -- перемешивание, ArrayShuffle
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#96: 2009-12-21 22:26:40 ЛС | профиль | цитата
nesco,
Tad писал(а):
А я бы добавил одно телодвижение if i<>j
и код приводил. Что скажешь?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#97: 2009-12-22 00:19:08 ЛС | профиль | цитата
Tad писал(а):
Что скажешь?

Я не пойму его назначение, объясни популярно
карма: 22

0
Ответов: 8928
Рейтинг: 823
#98: 2009-12-22 08:30:59 ЛС | профиль | цитата
nesco, чтобы ни одно число не стало на свое "законное" место полагаю, что этого делать не надо - ведь мы говорим о случае, а случайно, хотя и с малой вероятностью, можно и все числа выставить по ранжиру
карма: 19

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#99: 2009-12-22 08:52:25 ЛС | профиль | цитата
Гы. Воля случая -- пожалуй, стоит оставить такой вариант
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#100: 2009-12-22 09:34:11 ЛС | профиль | цитата
nesco писал(а):
объясни популярно
Популярно. Зачем делать обмен значениями если выпало, что i=j ?
(Блин. Ответ еврейский получился. Видно страна проживания влияет )
------------ Дoбавленo в 09.39:
Леонид,не так уж и редко люди и в рулетку выигрывают. (Правда мелкие суммы. Но это уже три совпадения должно быть )
------------ Дoбавленo в 09.40:
nesco писал(а):
Гы. Воля случая
так потому и называется "Генератор случайных чисел"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#101: 2009-12-22 11:40:05 ЛС | профиль | цитата
Tad, протестируй, я поправил длину массива и ввел твое предложение в код
карма: 22

0
Ответов: 8928
Рейтинг: 823
#102: 2009-12-22 13:15:30 ЛС | профиль | цитата
Tad, а что больше нагружает процессор: один-два раза лишний обмен значениями (не самая медленная операция) или проверка if i<>j для каждого прохождения тела цикла?
карма: 19

0
Гость
Ответов: 17029
Рейтинг: 0
#103: 2009-12-22 13:29:17 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2021-05-21 12:59:08
карма: 0

0
Ответов: 8928
Рейтинг: 823
#104: 2009-12-22 13:37:03 ЛС | профиль | цитата
Tad, да не надо циклы считать, поступи, как истинный радиолюбитель (не при Galkov-е будь сказано): проверь на 100000 так и так с засечкой времени
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#105: 2009-12-22 13:48:31 ЛС | профиль | цитата
Леонид, ну и какой результат ? Я на работе. Дома буду после 3-х (4-х по Москве)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)