|
|
|
Как организовать алгоритм перебора в SP ?
|
|||
|---|---|---|---|
|
#18+
Делаем выборку из N записей по одному полю с числовым значением, надо найти произведение каждого варианта перестановки из N по M чисел, где M<N. т.е. У нас есть допустим числа 2 3 5 вариант 1: 2 * 3 =6 вариант 2: 2 * 5 =10 вариант 3: 3 * 5 =15 Дело осложняется тем, что алгоритм необходимо реализовать в хранимой процедуре. Есть алогоритм на СИ, но там активно используются массивы. Мож кто-то что посоветует по этому поводу Если кому интересно - это нужно для подсчёта ставок типа система в букмекерской конторе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2004, 17:24:16 |
|
||
|
Как организовать алгоритм перебора в SP ?
|
|||
|---|---|---|---|
|
#18+
А числа в каом виде представлены? Они в таблице храняться? Если да, то тут в принципе просто: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2004, 17:39:45 |
|
||
|
Как организовать алгоритм перебора в SP ?
|
|||
|---|---|---|---|
|
#18+
Есть алогоритм на СИ, но там активно используются массивы. Вот и пользуй СИ. Надо написать UDF для такого случая. Проблемка будет только в том, каким макаром данные передать в UDF (число параметров плавающее). Тут разные подходы. Например, все числа закатать в строковую переменную с разделителями, а в UDF развернуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2004, 17:39:55 |
|
||
|
Как организовать алгоритм перебора в SP ?
|
|||
|---|---|---|---|
|
#18+
Gold А числа в каом виде представлены? Они в таблице храняться? Да в таблице, а вот этого Gold SELECT T1.NUM,T2.NUM FROM NUMBERS T1,NUMBERS T2 WHERE T2.NUM>T1.NUM а если у меня 10 чисел ин надо перебрать все варианты по 5? AndriyKo За совет спасибо, наверное так и сделаю, хотя UDF ещё ни разу не писал... (надо же когда-то начинать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 03:54:08 |
|
||
|
Как организовать алгоритм перебора в SP ?
|
|||
|---|---|---|---|
|
#18+
автора если у меня 10 чисел ин надо перебрать все варианты по 5? Это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:11:01 |
|
||
|
Как организовать алгоритм перебора в SP ?
|
|||
|---|---|---|---|
|
#18+
В общем-то, маразм, но задача, имхо, решается через декартово произведение. С отбрасыванием дубликатов по DISTINCT. Эффективность - как у говночерпалки. Но работать будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:19:06 |
|
||
|
Как организовать алгоритм перебора в SP ?
|
|||
|---|---|---|---|
|
#18+
Просто эта задача не для SQL. Вывернуться можно, заранее создав все необходимые комбинации, если их число обозримо, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:41:00 |
|
||
|
Как организовать алгоритм перебора в SP ?
|
|||
|---|---|---|---|
|
#18+
Вот тут посмотрите. Произведение в общем случае находится так Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:49:48 |
|
||
|
Как организовать алгоритм перебора в SP ?
|
|||
|---|---|---|---|
|
#18+
Я так думаю что если у тебя 10 чисел, то тебе тогда надо будет 10 раз соединить таблицу, наверное так по аналогии: SELECT T1.NUM,T2.NUM,T3.NUM FROM NUMBERS T1,NUMBERS T2,NUMBERS T3 WHERE T1.NUM<T2.NUM AND T2.NUM<T3.NUM ORDER BY T1.NUM,T2.NUM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:36:43 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32616713&tid=1578201]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
175ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 436ms |

| 0 / 0 |
