| 
| 
 | Вопрос # 6 251/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!У меня вот такой вопрос... У меня есть таблица с определенным кол-вом столбцов N и опред. кол-вом строк M.
 Мне нужно перебрать все возможные комбинации, начиная с 1 значения и вывести в след. формате:
 знач1=знач. послед.столбца(результат)
 
 Поясню:
 вот таблица:
 
 1 2 4 5 3 результат1
 4 6 2 3 3 результат1
 4 1 0 1 4 результат2
 
 мне нужно перебрать все возможные комбинации начиная с комбинации из 1 значения
 к примеру по 1 столбцу:
 комбинация 1 столбец значение 1, остальные пофигу:
 10000  = рез1 100%, рез2=0%, всего 1
 40000 = рез1 50%, рез2=50% всего 2
 т.к. 4 есть в 1 столбце 3 строки, а там рез2
 
 и так далее... перебирая комбинации 1,2 столбец=..., 1,3 столбец=...
 
 Взрыв мозга... т.к. у меня 100 столбцов и 3000 строк :))))
 блин... ваще не знаю как задать алгоритм...
 
 P.S. у столбца Результат есть только 2 возможных варианта результата. Надо бы как то к нему привязаться и перебрать все комбинации таблицы...
 
|  |   Вопрос задал: RAW (статус: Посетитель)Вопрос отправлен: 22 августа 2012, 12:55
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 11; последнее сообщение — 22 августа 2012, 20:51; участников в обсуждении: 2. 
|   | Егор (статус: 10-ый класс), 22 августа 2012, 16:17 [#1]:а в чём проблема-то, я так и не понял? ну, таблица, ну, результат. эксел так тот вообще может хранить таблицы размером 256х32567 (или около того), а с версии 2007 и этого лимита лишился Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | RAW (статус: Посетитель), 22 августа 2012, 16:37 [#2]:дык ручками опупеешь перебирать.... макрос бы хотя бы....
 |  
|   | Егор (статус: 10-ый класс), 22 августа 2012, 16:56 [#3]:всё равно не понял. приведи хотя бы первые 5-6 строчек для пример. только реальные данные, а не ерунду, как в вопросе Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | RAW (статус: Посетитель), 22 августа 2012, 17:47 [#4]:80	0	20	#	#	#	1	67	52	42	0	0	#	1 25	25	50	#	#	#	2	52	44	25	0	0	#	2
 33	67	0	#	#	#	2	53	43	19	0	0	#	1
 #	#	#	#	#	#	2	#	#	#	#	#	#	2
 #	#	#	#	#	#	1	#	#	#	#	#	#	1
 25	25	50	#	#	#	2	52	44	25	0	0	#	1
 33	67	0	#	#	#	2	53	43	19	0	0	#	1
 80	0	20	#	#	#	1	67	52	42	0	0	#	1
 40	20	40	#	#	#	1	+	61	25	0	0	#	1
 33	67	0	#	#	#	2	53	43	19	0	0	#	1
 #	#	#	#	#	#	2	#	#	#	#	#	#	2
 
 вот пример, урезал столбцы конечно.... но суть понятна... последний столбец - результат...
 
 копировал прямо из Экселя...
 и еще... # значит что нет данных
 
 вот к примеру 1 и 8 строки вообще полностью совпали... и результат у них одинаковый...
 |  
|   | Егор (статус: 10-ый класс), 22 августа 2012, 18:24 [#5]:эм... а как был получен результат? Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | RAW (статус: Посетитель), 22 августа 2012, 18:55 [#6]:результат был забит изначально, остальные столбцы условия.... |  
|   | Егор (статус: 10-ый класс), 22 августа 2012, 19:52 [#7]:Как я понимаю, задача заключается в следующем: Дана матрица с наборами данных и результатом для каждого из наборов. Т.к. матрица получилась очень большой (100*3000), то необходимо найти такую формулу или алгоритм, который бы давал те же самые результаты на таких же наборах данных.
 Так?
 
 Если так, то тогда ещё раз - как была получена матрица? Потому что для 100 переменных и 3000 уравнений можно найти такую одну универсальную формулу (подробности см. в матане), которая бы всё это описывала, но в этой формуле будут х0, x2,... x99 и при том каждый из этих х будет в степенях от 0 до 2999:
 
 Цитата: f(x0, x1, ... x99) = a0,0 + a0,1x0 + a0,2x02 + ... + a0,2999x02999 + ... + a1,0 + a1,1x1 + a1,2x12 + ... + a1,2999x12999 + ... + a2999,0 + a2999,1x99 + a2999,2x992 + ... + a2999,99x992999
 
 и задача будет "всего лишь" в том, чтобы найти эти ai,j, где i меняется от 0 до 99, а j - от 0 до 2999. Т.к. сформулированная задача лишь немногим проще первоначально (не факт, что проще), то я и спрашиваю - как были получены наборы данных, т.е. каждая из строк? Может есть (должен быть) способ проще?
 
 И ещё вопросы
 1) Ты тут упомянул, что встречаются одинаковые наборы с одинаковым результатом. Почему бы эти дублирующиеся строки не убрать? Если убрать, насколько сократится набор данных?
 2) Есть ли такие случаи, когда одни и те же наборы дают разные результаты?
 3) Что означают пустые ячейки из экселя? Что в этом случае данные могут быть любыми?
 4) Как должна вести себя функция/алгоритм, если получит набор данных, отсутствующих в первоначальной таблице?
 
 
 Цитата (RAW): 80 0 20 # # # 1 67 52 42 0 0 # 15) Что означает знак "плюс"? Или это опечатка?25 25 50 # # # 2 52 44 25 0 0 # 2
 33 67 0 # # # 2 53 43 19 0 0 # 1
 # # # # # # 2 # # # # # # 2
 # # # # # # 1 # # # # # # 1
 25 25 50 # # # 2 52 44 25 0 0 # 1
 33 67 0 # # # 2 53 43 19 0 0 # 1
 80 0 20 # # # 1 67 52 42 0 0 # 1
 40 20 40 # # # 1 + 61 25 0 0 # 1 <------ тут
 33 67 0 # # # 2 53 43 19 0 0 # 1
 # # # # # # 2 # # # # # # 2
 
 Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | RAW (статус: Посетитель), 22 августа 2012, 19:57 [#8]:может быть и такие данные... |  
|   | Егор (статус: 10-ый класс), 22 августа 2012, 20:17 [#9]:это был ответ к которому вопросу? Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | Егор (статус: 10-ый класс), 22 августа 2012, 20:18 [#10]:и я жду ответов на все вопросы, а не один Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | RAW (статус: Посетитель), 22 августа 2012, 20:51 [#11]:по поводу как были получены данные - то они просто были набиты программой и теперь данные постоянны - не меняются, работать чисто с ними теперь... 
 И ещё вопросы
 1) Ты тут упомянул, что встречаются одинаковые наборы с одинаковым результатом. Почему бы эти дублирующиеся строки не убрать? Если убрать, насколько сократится набор данных?
 
 вот именно что мне и надо найти все комбинации и узнать процентно сколько таких комбинаций было и сколько из них результат1 и сколько результат2
 
 например:
 комбинация
 0,84,11,8,+,#,#,74  в таблице встретилась 44 раза из них результат1=81% и результат2=19%
 
 2) Есть ли такие случаи, когда одни и те же наборы дают разные результаты?
 
 Есть!
 
 3) Что означают пустые ячейки из экселя? Что в этом случае данные могут быть любыми?
 
 да. могут быть любые!!! то есть игнорировать можно...
 
 4) Как должна вести себя функция/алгоритм, если получит набор данных, отсутствующих в первоначальной таблице?
 
 не понял вопроса... как такое может быть
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |