Показать сообщение отдельно
Старый 27-11-2005, 15:48   #10
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Однако ИМХО процедура выборки самолета должна быть примерно такой:

Код:
def select_plane(queue):
        count=0
        for n in range(len(queue)):
                count+=queue[n]

        rnd = random.randint(1, count)

        next=0
        for n in range(len(queue)):
                if next > rnd:
                        return n
                else:
                        next+=queue[n]

        return n

В queue передается список количества самолетов, что-то типа:

queue = [90, 2, 1, 5, 1, 1]

Но выходе получаем индекс самолета. В данном случае функция почти всегда будет возвращать 1 (кол-во 90, т.е. самый распространенный самолет).

Вот результат прогона после 100 вызовов:
1 1 1 1 1 2 1 1 5 1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 4
1 5 1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1
1 4 2 1 1 1 1 1 1 1 5 1 1

P.s. написано на Питоне, из-за отсутствия Перла дома, на работе переведу
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием