|
Вопрос # 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 # 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
5) Что означает знак "плюс"? Или это опечатка?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— 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) Как должна вести себя функция/алгоритм, если получит набор данных, отсутствующих в первоначальной таблице?
не понял вопроса... как такое может быть
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|