|
|
|
Нужна помощь профи, как реализовать такой запрос
|
|||
|---|---|---|---|
|
#18+
Имеется ACCESS-кая база. В ней таблица, содержащая динамический временной ряд. Не имеющий никакой функциональной зависимости. Приведу для примера ряд из 20 значений авторT Значение 1 2 2 3 3 1 4 3 5 4 6 7 7 8 8 1 9 9 10 0 11 3 12 4 13 6 14 8 15 9 16 6 17 5 18 3 19 1 20 3 Который потом преобразовывается в другой динамический ряд с меньшим значение элементов авторT Значение 1 3 2 1 3 3 4 7 5 8 6 1 7 6 8 8 9 9 10 5 12 1 Потом множитель преобразования увеличивается и исходный изначально исходный динамический ряд из 20 элементов опять преобразовывается в еще одни динамический ряд состоящий из еще меньшего количества элементов. авторТ Значение 1 1 2 3 3 1 4 3 5 7 6 8 7 2 8 2 9 6 И еще раз авторТ Значение 1 5 2 4 3 3 4 1 5 3 6 2 7 2 8 6 Грубо говоря у нас иметься несколько таблиц имеющие динамические ряды. В нашем примере их 4-ре. И мне нужно сделать выборку из этих таблиц. Нужно выбрать из этих таблиц сочетания динамического ряда которые повторяются, с определенной погрешностью. Т.е Сочетание 3,1,3 встречалось 5 раз 2 раза в первой таблице и по одному разу в других. И не нашлось такого варианта при котором после 3,1, было 4. т.е. это сочетание имеет 100% вероятность. Если бы в первой таблице было последнее сочетание 3,1, закончилось 2 тогда это значение в расчет не берется. Т.е. отбор сочетаний берется по двум первых из трех а вероятность рассчитывается по последнему третьему значению. Т.е допустим сочетание 7,8,1 имеет 66,6% вероятности так как оно повторяться в 1-й, 2-й таблице а в третей после 7,8, и дет двойка. Сочетания могут быть, как и во всех таблицах так и не во всех. Вот допустим сочетания 2,2,6 встречались только в 3-тей и в 4-той таблице. В итоге мне нужно получить таблицу авторN значение 1 Значение 2 Значение 3 Вероятность частота 1 3 1 3 100 4 2 7 8 1 66.6 3 3 2 2 6 100 2 Где Частота это количество раз которое встречалось во всех таблицах Вот как организовать алгоритм выборки? Возможно ли это сделать ? Если да тогда как долго он будет работать при двенадцати таблицах и величины динамического ряда 10000 значений . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 06:00 |
|
||
|
Нужна помощь профи, как реализовать такой запрос
|
|||
|---|---|---|---|
|
#18+
Не особо вдаваясь в дебри задачи, могу предположить, что алгоритм будет сложным (про запрос и речи нет) и будет проще и быстрее работать не с таблицей а с массивом или строкой (и не в Access, а в С или Паскале). :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 11:40 |
|
||
|
Нужна помощь профи, как реализовать такой запрос
|
|||
|---|---|---|---|
|
#18+
А точно она будет быстрей работать с массивами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 13:03 |
|
||
|
Нужна помощь профи, как реализовать такой запрос
|
|||
|---|---|---|---|
|
#18+
Все зависит от алгоритма который Вы придумаете. Я не предлагаю отказаться от Access, можно и по рекордсету бегать туда-сюда и хитроумные запросы изобретать. Но перед тем как оценивать время надо сначало придумать алгоритм (последовательность шагов), не привязанный к конкретной платформе. Потом реализовать его на бумажке, потом уже садится за компьютер и тестировать. А результаты можно в таблицу Access закинуть. Я не доконца понял задачу и давал совет во многом исходя из предположений. авторНужно выбрать из этих таблиц сочетания динамического ряда которые повторяются, с определенной погрешностью. Что такое "сочетания" - 3 цифры, 3 числа, 2+1 число? Формула для погрешности? Или нужно просто построить таблицу всевозможных комбинаций из 3 идущих подряд значений с указанием количества повторов? Или есть конкретные комбинации, которые нужно обработать? авторСочетание 3,1,3 встречалось 5 раз 2 раза в первой таблице и по одному разу в других. И не нашлось такого варианта при котором после 3,1, было 4. т.е. это сочетание имеет 100% вероятностьпочему 4, а не 5 и не 2? Формула для вероятности? Про преобразовывание одного ряда в другой можно было не говорить, если оно не влияет на решение (или влияет?)) Любопытно было бы узнать для чего, собственно, это делается. (Похоже на задание преподавателя-маньяка по информатике) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 14:12 |
|
||
|
Нужна помощь профи, как реализовать такой запрос
|
|||
|---|---|---|---|
|
#18+
Сочетания и подряд идущие значения цифр, их не обязательно три их может быть различное колличество, грубо говоря это малебникий денамический ряд часто повторяющийся в таблицах, ну обычно я делаю что число поторений должно привышать 3, но с обязательным условием. при преобразование главной таблици мы получаем другие таблици и каждое значени в этих таблицах имеет свой номер и новер которое оно занимало в главной таблици таким образом, когда и дет посчет сочетаний нужно обращать внимание на то что бы сочетания в одной таблице не дублировали очетания в другой. И сочетания могу встреаться где угодно, например какое нибудь сочетание встречалось n раз только в перво таблице и больше ни где, но значение N больше 3 мы его принимаем в рас чет. Потом как расчитываеться вероятность. тут просто подсчитываеться общее количество найденых сочетаний, по первым значениям в нашем случае когда расматриваеться 3 подряд идущие цифры. от бор происходит по первых дмух. вот мы отобрали допустим.. все возможные варианты с 1,2 , нас итереисует сочетание 1,2,3 и получили что . 1,2,n где n<3 десять таких сочетаний 1,2,n где n=3 20 таких сочетаний. 1,2,n где n>3 десять таких сочетаний. врезультате те значения где n<3 расчет не поподают это обязательное условие. Врезультате не правельные сочетания читаються тебе у которых N>3 их десять и правельные те у которых n=3. и тоггд правельных 20 не правельных 10 Общее количество 30 Отсюда вероятность будет равняться 20/30 = 66.6% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2004, 05:30 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32487829&tid=1675188]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 473ms |

| 0 / 0 |
