powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA, алгоритм поиска нужной комбинации
6 сообщений из 6, страница 1 из 1
VBA, алгоритм поиска нужной комбинации
    #36109517
Gus Hidding
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня.
есть макрос который подставляет в массив размером 6х9 (с шагом 50) комбинации чисел, которые в сумме дают 500 000.В конце выбирается наилучшая комбинация. Это все происходит перебором, следующим образом:

проход 1.

500 000 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

проход 2.


шаг1.

450 000 50 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

и т.д.

Для шага 50 считается довольно быстро. но нужно для шага 1 считать.
Каким другим образом можно искать нужную комбинацию, кроме перебора?
Спасибо.
...
Рейтинг: 0 / 0
VBA, алгоритм поиска нужной комбинации
    #36109586
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gus Hidding,
что значит наилучшая комбинация?
...
Рейтинг: 0 / 0
VBA, алгоритм поиска нужной комбинации
    #36109590
Gus Hidding
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там каждый город умножается на различные коэфф-ты(сверху) и считается себестимость..наменьшая себестоимость - наилучшая комбинация
...
Рейтинг: 0 / 0
VBA, алгоритм поиска нужной комбинации
    #36109593
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое "НП" я так и не понял...
автор Gus HiddingКаким другим образом можно искать нужную комбинацию, кроме перебора?Попробуйте надстройку "поиск решения", хотя, при текущем представлении данных она не применима. И вот тут , может, что интересное будет.
...
Рейтинг: 0 / 0
VBA, алгоритм поиска нужной комбинации
    #36110699
Случайно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первое что не понравилось так это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
If k =  1  Then a =  1 : b =  1 
If k =  2  Then a =  1 : b =  2 
If k =  3  Then a =  1 : b =  3 
If k =  4  Then a =  1 : b =  4 
If k =  5  Then a =  1 : b =  5 
If k =  6  Then a =  1 : b =  6 
If k =  7  Then a =  1 : b =  7 
If k =  8  Then a =  1 : b =  8 
If k =  9  Then a =  1 : b =  9 

If k =  10  Then a =  2 : b =  1 
If k =  11  Then a =  2 : b =  2 
If k =  12  Then a =  2 : b =  3 
If k =  13  Then a =  2 : b =  4 
If k =  14  Then a =  2 : b =  5 
If k =  15  Then a =  2 : b =  6 
If k =  16  Then a =  2 : b =  7 
If k =  17  Then a =  2 : b =  8 
If k =  18  Then a =  2 : b =  9 

If k =  19  Then a =  3 : b =  1 
If k =  20  Then a =  3 : b =  2 
If k =  21  Then a =  3 : b =  3 
If k =  22  Then a =  3 : b =  4 
If k =  23  Then a =  3 : b =  5 
If k =  24  Then a =  3 : b =  6 
If k =  25  Then a =  3 : b =  7 
If k =  26  Then a =  3 : b =  8 
If k =  27  Then a =  3 : b =  9 

If k =  28  Then a =  4 : b =  1 
If k =  29  Then a =  4 : b =  2 
If k =  30  Then a =  4 : b =  3 
If k =  31  Then a =  4 : b =  4 
If k =  32  Then a =  4 : b =  5 
If k =  33  Then a =  4 : b =  6 
If k =  34  Then a =  4 : b =  7 
If k =  35  Then a =  4 : b =  8 
If k =  36  Then a =  4 : b =  9 

If k =  37  Then a =  5 : b =  1 
If k =  38  Then a =  5 : b =  2 
If k =  39  Then a =  5 : b =  3 
If k =  40  Then a =  5 : b =  4 
If k =  41  Then a =  5 : b =  5 
If k =  42  Then a =  5 : b =  6 
If k =  43  Then a =  5 : b =  7 
If k =  44  Then a =  5 : b =  8 
If k =  45  Then a =  5 : b =  9 

If k =  46  Then a =  6 : b =  1 
If k =  47  Then a =  6 : b =  2 
If k =  48  Then a =  6 : b =  3 
If k =  49  Then a =  6 : b =  4 
If k =  50  Then a =  6 : b =  5 
If k =  51  Then a =  6 : b =  6 
If k =  52  Then a =  6 : b =  7 
If k =  53  Then a =  6 : b =  8 
If k =  54  Then a =  6 : b =  9 
Вставьте лучше
Код: plaintext
1.
a = Int((k -  0 . 1 ) /  9 ) +  1 
b =  9  + k *( 1 - a)

Остальное пока еще не рассмотрел
...
Рейтинг: 0 / 0
VBA, алгоритм поиска нужной комбинации
    #36110713
Случайно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибся!
Код: plaintext
1.
2.
a = Int((k -  0 . 1 ) /  9 ) +  1 
b =  k + 9 ( 1 -a)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA, алгоритм поиска нужной комбинации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]