1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
|
|
1 | |
Задача перебора элементов21.04.2012, 05:35. Показов 3701. Ответов 5
Метки нет (Все метки)
Всем привет! Собственно есть задача с которой я не могу совладать. Загвоздка не в программировании, а в том чтоб придумать алгоритм, чтобы решал эту задачу. Может кто подскажет, я уже всю голову сломал.
Задача на первый взгляд элементарная, но это только на первый взгляд. Задача: есть некоторая разнородная многопроцессорная система, которая состоит из N типов процессоров и mi процессоров каждого типа, i=0,...,N. Система описывается сменой состояний a, например при N=3, a(0,0,0) - нет ни одного запроса к шине, а(1,0,0) - есть один запрос от процессоров первого типа, а(1,1,0) - есть по 1 запросу к шине от процессоров первого и второго типа. Есть формула для оценки вероятности нахождения системы в каждом состоянии, в этой формуле необходимо перебрать все возможные варианты состояний. Собственно как организовать этот перебор я и не могу придумать. Можно организовать N вложенных друг в друга циклов, но мне нужно, что число N задавалось пользователем и все считалось. Пример перебора: N = 3, m1 = 2, m2 = 3, m3 = 1. Состояния системы 000 100 200 010 110 210 020 120 220 030 130 230 001 101 201 011 111 211 и т.д. Подскажите, может я не могу догнать до какого-то очевидного и простого решения?
0
|
21.04.2012, 05:35 | |
Ответы с готовыми решениями:
5
Задача о рюкзаке методом полного перебора. Нужно пояснение по коду Метод полного перебора. Задача о назначениях Задача коммивояжера,метод полного перебора Цикл перебора элементов в webbrowser |
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
21.04.2012, 07:37 | 2 | |||||
вариант:
1
|
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
|
|
21.04.2012, 10:56 [ТС] | 3 |
Ух, блин, чот тут с рекурсией, нельзя ли некоторые места раскоментить, а то я некоторые моменты и не знаю?..
Вот тут где границы и цикла и что делает return? А вот тут как вы сделали, что оно в консольке начинали все с новой строчки без endl'ов? Ну и идею бы на словах еще.
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
21.04.2012, 12:05 | 4 |
лучше с этого и начать.
Идея: перебор всех вариантов с помощью рекурсии. Эта часть: в консольке ничего не выводит с новой строчки, а просто идет заполнение значениями mi массива mas[]. Далее следует вызов: rec(0); - начинаем работать с первым элементом вариантов состояний. см комментарии:
1
|
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
|
|
22.04.2012, 04:54 [ТС] | 5 |
Все равно куча вопросов, но пока попробую разобраться сам, никогда с рекурсией раньше не работал.
Один вопрос главный, return возвращает нас в то место, где функция была вызвана, правильно?
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
22.04.2012, 06:24 | 6 |
0
|
22.04.2012, 06:24 | |
22.04.2012, 06:24 | |
Помогаю со студенческими работами здесь
6
Исключение элементов из перебора и последовательность двойки Увеличить скорость перебора элементов массива Условие окончания перебора элементов строки Синтаксическое расширение для перебора элементов списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |