Не могу додуматься и вообще возможно ли то о чем речь пойдет далее&#33

  • Автор темы DoniySerhey
  • Дата начала
D

DoniySerhey

#1
Значит, дело обстоит так.
Заказал мне мой друг прогу. Идея состоит в чем... Без предистории не обойтись!
Он системщик, т.е. играет в цифровые гослотереи не на абум а просчитывая все худшие случаи... В общем, живет довольно неплохо, у него это получается.
Программа в следующем: по определенному расчету рассчитываются квадраты 20х20, т.е. массив 20х20. С этим проблем вообще нету. Потом эти все квадаты заносятся в таблицу SQL в таком виде:
берется строка поиска и проверяется каждое число: если оно в поиске есть, то вместо числа заноситься 1, если его нет, то 0

|Ид|Дата_тир|Номер_Кв|1ч|2ч|3ч|...|ч400| и сразу же пример:
|1 |2002 |1 |1 |0 |1 |... |0 |

с этим у меня трудностей нет, но потом задача завела меня в тупик:
необходимо сформировать новые квадраты, в которых будет отражено следующее:
1. Позиции (т.е. теперь уже набор из предыдущей таблицы, который строится по логике так: сравнивается 1 квадрат 16052002 со всеми квадрата следующих годов (16052003 и т.д. - обычно 10-11 тиражей) и выбираются все совпавшие "1" из таблицы таким образом, чтобы подобный набор встречался в максимально возможном числе годов. Сразу же пример, въехать вв это сразу сложно:
набор исходный: 2002 год: 0 1 0 1
2003 0 1 0 1
0 0 0 1
2004 1 1 1 1
0 0 0 0
2005 0 1 0 0
0 1 0 1
Должен выбрать: 0 0 0 1, так как он больше всего встречается. Заметьте, выбрать нужно число в той позиции, в которой оно находится, получить в ответе просто набор 1 не подходит, обязательно позиции, которые не совпали обнуляются вне зависимости значений в таблица...
Такое вообще возможно?
 
C

CSerX

#2
Как мне кажется для начала тебе нужно твою таблицу разбить на две:
1. Ид|Дата_тир|Номер_Кв
2. Число|Значение|Ссылка
тогда у тебя больше шансов сделать запрос, т.к. написать запрос по 400 колонок не реально.
И используй агрегацию, Например просуммируй все значения по одному числу и посчитай их количество вот тут и можно выбрать 1 или 0 в итоге