Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 oracle + математика  [new]
ВеселыйМатематик
Guest
Всем привет.
Помогите пожалуйста сделать запрос, потому что я вообще не знаю как его реализовать.
Короче что надо сделать... вводим цифры через запятую например:
1,2,3,14,15,16,2,3,4,5,6,2,3,4,5,2,1,12
и для первых 16 цифр надо посчитать определитель 4ого порядка.
считать хочу в лоб по вот этой формуле:
| | = аi1 (-1)i+1 Mi1 + ai2 (-1)i+2 Mi2 + … + ain(-1)i+п Miп
по общей формуле проще говорю, так как эту формулу вроде как более менее понятно как алгоритмизировать по сравнению с другими "ручными способами".
что у меня есть (да по сути у меня ничего нету) так это тот кусочек кода что ниже, я просто убираю там пробелы в случае если пользователь будет вводить не подряд и все.
нужен быстрый доступ к циферкам чтобы их можно подставить в запрограммированную формулу... может кто нибудь помочь? третий день думаю как реализовать.

PS может в могучем oracle есть функция какая нибудь которая определители считает? а то вот коэффициент корреляции кажись есть например. Заранее благодарен тем кто откликнется.


with t as
(
select replace('1, 2,3,14,15,16,2,3,4, 5,6,2,3,4,5,2,1,12',' ','') as ch
from dual
)
select ch
from t;
6 май 13, 23:44    [14265108]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Насколько помню это определитель четвертого порядка легко считается как сумма четырех произведений чисел ряда на определители 3-го порядка
7 май 13, 00:16    [14265179]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
ВеселыйМатематик
Guest
xtender,

Я формулу написал. Почти так как вы говорите но только не совсем. Там еще (-1) в степени i+j умноженная на минор.
Как считается тотя знаю я не знаю как это реализовать средствами oracle
7 май 13, 00:20    [14265188]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54391
я брал в интернете оптимизированный алгоритм и переводил на Оракл
возился неделю, зато работает уже 6 или 7 лет
дать не могу, ибо там пакет на пару тыщ строк, привязанный к системе... да и не моё теперь оно, а, так сказать, папы-хозяина.
Да и объяснять запарюсь - сам всё забыл
7 май 13, 00:26    [14265199]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54391
плюс перевод многомерного массива в одномерную коллекцию
7 май 13, 00:27    [14265200]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
ВеселыйМатематик,

не понимаю тогда проблемы... матрица всего лишь 4-го порядка, формулу знаете, так и создайте свою функцию или решите моделью
7 май 13, 00:44    [14265233]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
ВеселыйМатематик
Guest
andreymx, сколько тысяч строк???
О господи. Это вообще реально сделать.
7 май 13, 00:44    [14265235]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
1234йцукен
Guest
ВеселыйМатематик,

Несколько функций для задачи пишутся элементарно. Или вам обязательно одним запросом?
7 май 13, 00:48    [14265246]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
thomas crapper
Member

Откуда:
Сообщений: 5
Так приведи матицу к верхнетреугольному виду унитарным преобразованием и посчитай произведение диагональных элементов. Для матрицы 4x4 должно быть просто.
7 май 13, 00:52    [14265255]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
ВеселыйМатематик
Guest
1234йцукен, запросом.
7 май 13, 01:07    [14265279]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
ВеселыйМатематик
Guest
thomas crapper,

Может быть и просто только с преобразованием будут проблемы я думаю. По формуле т я точно знаю что там на что умножать надо. Но реализовать не знаю как. Просто оракл и такая вот задача. Вроде не очень тривиально
7 май 13, 01:09    [14265285]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
thomas crapper
Member

Откуда:
Сообщений: 5
ВеселыйМатематик
thomas crapper,

Может быть и просто только с преобразованием будут проблемы я думаю. По формуле т я точно знаю что там на что умножать надо. Но реализовать не знаю как. Просто оракл и такая вот задача. Вроде не очень тривиально

Воспользуйся сильным тезисом Чёрча, должно помочь в понимании с чего начать.
7 май 13, 02:27    [14265334]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
ABP
Member

Откуда:
Сообщений: 15
ВеселыйМатематик
Вроде не очень тривиально

А по-моему, тривиально.

1. "быстрый доступ к циферкам"
2. Напиши формулу для детерминанта "в лоб". Порядок матрицы фиксирован, 24 слагаемых - вполне посильная задача.
7 май 13, 08:54    [14265513]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
ВеселыйМатематик
Guest
ABP, я понял.
Вы написали мне то что я и хочу сделать.

Ну если я из строки получу столбец в котором будет по одной цифре то как потом их взять оттуда???
Не ну есть конечно вариант сделать типа вот так:
Rownum. |. Цифра

И потом кажду цифру запросо вытягивать вида
select цифра
From t
Where rownum = ;

Но учитывая сколько раз это придется сделать это сатана какая то.
7 май 13, 09:15    [14265576]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
ВеселыйМатематик
Ну если я из строки получу столбец в котором будет по одной цифре то как потом их взять оттуда???
А зачем вам получать столбец? Получите строку. Напроимер, для определителя 2-го порядка:
with t as 
(
 select replace('1, 2,3,14,15,16,2,3,4, 5,6,2,3,4,5,2,1,12',' ','') as ch
 from dual
),
a as 
(select regexp_substr(ch,'[0-9]+',1,1) a1,
        regexp_substr(ch,'[0-9]+',1,2) a2,
        regexp_substr(ch,'[0-9]+',1,3) a3,
        regexp_substr(ch,'[0-9]+',1,4) a4
  from t
)
select a1*a4 - a2*a3 from a;
7 май 13, 09:37    [14265676]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
ВеселыйМатематик
Guest
Bogdanov Andrey,

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

Ваш вариант достаточно удобен =)
7 май 13, 09:57    [14265801]     Ответить | Цитировать Сообщить модератору
 Re: oracle + математика  [new]
ВеселыйМатематик
Guest
Сделал
Всем спасибо.
7 май 13, 16:11    [14268775]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить