Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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

RAW (статус: Посетитель), 22 августа 2012, 16:37 [#2]:

дык ручками опупеешь перебирать....
макрос бы хотя бы....
Егор

Егор (статус: 10-ый класс), 22 августа 2012, 16:56 [#3]:

всё равно не понял. приведи хотя бы первые 5-6 строчек для пример. только реальные данные, а не ерунду, как в вопросе
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
RAW

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

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

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

RAW (статус: Посетитель), 22 августа 2012, 20:51 [#11]:

по поводу как были получены данные - то они просто были набиты программой и теперь данные постоянны - не меняются, работать чисто с ними теперь...

И ещё вопросы
1) Ты тут упомянул, что встречаются одинаковые наборы с одинаковым результатом. Почему бы эти дублирующиеся строки не убрать? Если убрать, насколько сократится набор данных?

вот именно что мне и надо найти все комбинации и узнать процентно сколько таких комбинаций было и сколько из них результат1 и сколько результат2

например:
комбинация
0,84,11,8,+,#,#,74 в таблице встретилась 44 раза из них результат1=81% и результат2=19%

2) Есть ли такие случаи, когда одни и те же наборы дают разные результаты?

Есть!

3) Что означают пустые ячейки из экселя? Что в этом случае данные могут быть любыми?

да. могут быть любые!!! то есть игнорировать можно...

4) Как должна вести себя функция/алгоритм, если получит набор данных, отсутствующих в первоначальной таблице?

не понял вопроса... как такое может быть

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:49
Выполнено за 0.02 сек.