|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Dmitriy Nesmachny 2:5020/2065.609 24 May 2003 11:33:19 To : Dmitry Magilin Subject : Re: Вычисление распределения -------------------------------------------------------------------------------- Четверг 22 Май 2003 22:29:35, Dmitry Magilin -> Ilya Malyarenko: IM>> Hа входе есть роза ветров, в которой каждому румбу IM>> соответствует IM>> определённая величина повторяемости в течение заданного IM>> периода [...] DM> Можно вот так это сделать. Пусть у нас есть N румбов (я не DM> зная сколько их на самом деле, но кажется что-то около 30), DM> тогда есть N чисел, которые определяют "величину DM> повторяемости" A1, A2, A3,..., AN. Пусть S=A1+A2+...+AN. DM> Тогда с помощью генератора равномерного распределения (есть DM> почти во всех языках) получаем случайное число из диапазона DM> 0..S. После этого если это число попададает в диапазон DM> 0..A1, то ветер у нас дует в напрвлении румба 1, в диапазон DM> A1..A1+A2 - румб 2, A1+A2..A1+A2+A3 - 3,... Hу и так далее. Hе знаю особенностей решсемой задачи, но имхо это для какой нибудь игры или симулятора. Тогда такое решение имеет один маленький, но неприятный недостаток: при смене направления ветра он может поменяться на какой угодно, хоть противоположный. Может логичней высчитывать количество ходов, в течении которых ветер будет дуть в данном направлении (A(i) * RND), а потом добавлять сдвиг в случайном направлении на случайный, но ограниченный по размеру угол? С уважением, Dmitriy. --- Lara Croft v.4.50 * Origin: #21004011014001FF2AEDB0C9 ;-) (2:5020/2065.609) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/53560863e99f.html, оценка из 5, голосов 10
|