Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2014, 10:50   #1
Ammat
Пользователь
 
Регистрация: 04.04.2014
Сообщений: 13
По умолчанию Подбор слагаемых.

Здравствуйте. Помогите, пожалуйста, со следующей задачей.В диапазоне (А2:А10) - номера деталей. В диапазоне (В2:В10)- соответственно площадь каждой детали. Необходимо подсчитать макросом количество деталей по каждому виду (диапазон С2:С10), чтоб получилась заданная общая сумма площадей деталей в ячейки D2.Одну деталь можно брать несколько раз.
Вложения
Тип файла: rar Пребор.rar (5.9 Кб, 15 просмотров)
Ammat вне форума Ответить с цитированием
Старый 14.10.2014, 13:38   #2
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

В этой задаче 3655 решений удовлетворяющих условию

Простите, в один столбик не влазит. Да и во все имеющиеся на листе тоже...

Первые десять из них:

Код HTML:
22	14	6	17	9	1	12	4	15	7
0	7	14	3	10	17	6	13	2	9
0	0	0	1	1	1	2	2	3	3
1	1	1	1	1	1	1	1	1	1
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

Последний раз редактировалось maksim_serg; 14.10.2014 в 14:10.
maksim_serg вне форума Ответить с цитированием
Старый 14.10.2014, 14:10   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

не точных совпадений действительно будет много
а точных всего 36
Код:
0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
0	1	0	0	0	1	0	0	0	0	0	1	1	0	1	1	0	0	4	0	0	0	0	0	1	1	0	0	0	0	1	1	12	1	8	0
0	0	0	1	2	0	2	1	0	1	0	0	0	2	0	0	3	1	5	0	0	1	3	0	0	0	3	0	3	0	0	8	0	6	2	8
0	0	0	0	4	5	4	0	0	0	0	4	4	0	7	0	2	8	2	0	0	0	3	0	4	0	2	1	2	0	0	0	0	3	1	2
0	0	1	0	0	0	1	1	3	2	4	0	1	6	2	0	0	1	1	0	0	3	0	5	1	0	0	0	1	0	6	0	0	0	2	1
0	0	2	0	2	1	0	5	5	3	3	3	1	1	0	4	2	0	0	1	4	1	0	1	1	4	2	6	0	8	2	2	2	1	0	0
0	0	0	3	0	2	2	1	0	1	0	0	2	0	0	4	3	1	1	4	1	1	1	0	0	2	1	0	3	0	0	0	0	0	0	0
2	6	4	3	1	0	0	0	0	2	2	2	1	1	1	0	0	0	0	4	4	4	4	4	4	3	3	3	2	2	2	2	2	2	2	2
6	2	2	2	2	2	2	2	2	1	1	1	1	1	1	1	1	1	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
немного изменил порядок размещения данных. ниже данные и несколько совпадений
Код:
пл.	№ 	пл.1	1	2	3	4	5	6	7	8	9	10
5.00	1	0.21	0	0	0	0	0	0	0	0	0	0
 	2	0.24	0	1	0	0	0	1	0	0	0	0
 	3	0.33	0	0	0	1	2	0	2	1	0	1
 	4	0.38	0	0	0	0	4	5	4	0	0	0
 	5	0.44	0	0	1	0	0	0	1	1	3	2
 	6	0.48	0	0	2	0	2	1	0	5	5	3
 	7	0.55	0	0	0	3	0	2	2	1	0	1
 	8	0.58	2	6	4	3	1	0	0	0	0	2
 	9	0.64	6	2	2	2	2	2	2	2	2	1
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.10.2014, 14:17   #4
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

А почему вот эти:
Код HTML:
№	Sодн	Кол			S
1	0,21	22			4,6200
2	0,24	0			0,0000
3	0,33	0			0,0000
4	0,38	1			0,3800
5	0,44	0			0,0000
6	0,48	0			0,0000
7	0,55	0			0,0000
8	0,58	0			0,0000
9	0,64	0			0,0000

					5,0000
Не точные???

Или мой калькулятор врет?

Последний раз редактировалось maksim_serg; 14.10.2014 в 14:28.
maksim_serg вне форума Ответить с цитированием
Старый 14.10.2014, 14:32   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

maksim_serg, куда уж точнее.
это у меня алгоритм погнутый, надо взять кувалду и поровнять немного

пока (кривовато) но решено 3-мя процедурами общей длиной 27 строк.
решение универсальное, количество исходных площадей от 1 до "неограничено", правда на каком-то количестве моя рекурсия упадет из-за переполнения стека
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 15.10.2014, 10:45   #6
Ammat
Пользователь
 
Регистрация: 04.04.2014
Сообщений: 13
По умолчанию

Здравствуйте. А можно чтоб код выдавал первые десять решений ?
Ammat вне форума Ответить с цитированием
Старый 15.10.2014, 15:08   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и так уже бонусом Вы получили несколько десятков вариантов только по результатам нашей с maksim_serg переписки

и я немного подрихтовал алгоритм, он далеко ушел от числа 36 вариантов (сейчас под 2000 тыс), но заявленных maksim_serg 3655 пока нет(((

догадываюсь, что у него 9 вложенных друг в друга циклов, но если исходных площадей будет 11 или 21 - все надо будет переписывать
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 15.10.2014, 17:14   #8
Ammat
Пользователь
 
Регистрация: 04.04.2014
Сообщений: 13
По умолчанию

Вставте ,пожалуйста, ваш код в файл-пример #1. (Перебор).
Ammat вне форума Ответить с цитированием
Старый 15.10.2014, 19:12   #9
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

IgorGO, все верно, но если в задании не сказан, что нужен универсальный метод, то я обошолся именно циклом, да и если цикл перебирает все возможные варианты 9^(E S/Smin+1) =10 млрд всего за 0.35 сек - почему бы и -нет
maksim_serg вне форума Ответить с цитированием
Старый 16.10.2014, 01:45   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

maksim_serg, КУ!!!

моя версия "нашла" 4411 вариантов комбинирования перечисленных 9 чисел в общую сумму = 5.0

см.вложение
maksim_serg, ищите как простой перебор мог потерять почти 800 вариантов

подсказка:
в моей версии варианты идут строго в обратном порядке с Вашими
сравнивайте 1 в Вашем варианте с последним в моем, когда встретите первую комбинацию, которая только в моем варианте, проверте равна-ли сумма 5 и анализируйте почему она отсутствует в Вашем отчете.

удачи)))
Вложения
Тип файла: rar СуммаПлощадей.rar (89.5 Кб, 11 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 16.10.2014 в 01:48.
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подбор слагаемых для нужной суммы bank_notes Microsoft Office Excel 3 14.11.2013 14:14
Сумма с увеличением числа слагаемых Dasharnb777 Microsoft Office Excel 4 05.03.2013 11:27
Сумма N слагаемых (Delphi) Начинающий програм Помощь студентам 10 28.09.2012 16:06
Разбиение натурального числа на 3 слагаемых Neitrosha Помощь студентам 13 27.10.2010 18:45
вывод слагаемых совершенного числа fs444 Общие вопросы C/C++ 4 24.03.2010 23:04