powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как организовать алгоритм перебора в SP ?
9 сообщений из 9, страница 1 из 1
Как организовать алгоритм перебора в SP ?
    #32615428
Делаем выборку из N записей по одному полю с числовым значением, надо найти произведение каждого варианта перестановки из N по M чисел, где M<N.

т.е. У нас есть допустим числа 2 3 5
вариант 1: 2 * 3 =6
вариант 2: 2 * 5 =10
вариант 3: 3 * 5 =15

Дело осложняется тем, что алгоритм необходимо реализовать в хранимой процедуре.
Есть алогоритм на СИ, но там активно используются массивы.

Мож кто-то что посоветует по этому поводу


Если кому интересно - это нужно для подсчёта ставок типа система в букмекерской конторе.
...
Рейтинг: 0 / 0
Как организовать алгоритм перебора в SP ?
    #32615471
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А числа в каом виде представлены? Они в таблице храняться? Если да, то тут в принципе просто:
Код: plaintext
1.
2.
SELECT T1.NUM,T2.NUM
FROM NUMBERS T1,NUMBERS T2
WHERE T2.NUM>T1.NUM
...
Рейтинг: 0 / 0
Как организовать алгоритм перебора в SP ?
    #32615473
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть алогоритм на СИ, но там активно используются массивы.

Вот и пользуй СИ. Надо написать UDF для такого случая. Проблемка будет только в том, каким макаром данные передать в UDF (число параметров плавающее). Тут разные подходы. Например, все числа закатать в строковую переменную с разделителями, а в UDF развернуть.
...
Рейтинг: 0 / 0
Как организовать алгоритм перебора в SP ?
    #32615949
Gold
А числа в каом виде представлены? Они в таблице храняться?

Да в таблице, а вот этого
Gold
SELECT T1.NUM,T2.NUM
FROM NUMBERS T1,NUMBERS T2
WHERE T2.NUM>T1.NUM

а если у меня 10 чисел ин надо перебрать все варианты по 5?


AndriyKo
За совет спасибо, наверное так и сделаю, хотя UDF ещё ни разу не писал...
(надо же когда-то начинать)
...
Рейтинг: 0 / 0
Как организовать алгоритм перебора в SP ?
    #32616601
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора если у меня 10 чисел ин надо перебрать все варианты по 5?

Это как?
...
Рейтинг: 0 / 0
Как организовать алгоритм перебора в SP ?
    #32616626
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем-то, маразм, но задача, имхо, решается через декартово произведение.
С отбрасыванием дубликатов по DISTINCT.
Эффективность - как у говночерпалки.
Но работать будет.
...
Рейтинг: 0 / 0
Как организовать алгоритм перебора в SP ?
    #32616693
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто эта задача не для SQL.
Вывернуться можно, заранее создав все необходимые комбинации, если их число обозримо, конечно.
...
Рейтинг: 0 / 0
Как организовать алгоритм перебора в SP ?
    #32616713
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут посмотрите. Произведение в общем случае находится так
Код: plaintext
select exp(sum(ln(num))) from tbl 
...
Рейтинг: 0 / 0
Как организовать алгоритм перебора в SP ?
    #32616994
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так думаю что если у тебя 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
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как организовать алгоритм перебора в SP ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]