powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
25 сообщений из 58, страница 1 из 3
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719365
Newok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго утра и хорошего дня!
Я вот думал-думал, но так чёт и не придумал. С MODEL можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with a as(
     select level as id
       from dual
     connect by level <  50 
)
select *
 from a
   model
   dimension by (id)
   measures  ( 1  fib)
   ignore nav
   rules (
     fib[id] = fib[cv() -  1 ] + presentv(fib[cv() -  2 ], fib[cv() -  2 ],  1 )
   )
Подскажите плз, а можно ли вообще сделать без MODEL и без использования явной формулы?
Спасибо.
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719471
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewokЯ вот думал-думал, но так чёт и не придумал.
Попробуйте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
with tab as (select rownum r from all_objects)
select fib from (
select  2 *x*y* 4  + x*x*y*y*y -  2 *x*x*x*y*y - y*y*y*y*y - x*x*x*x*y +  2 *y fib
from (
  select t1.r x, t2.r y
  from tab t1, tab t2
)where 
  0  <  2 *x*y* 4  + x*x*y*y*y -  2 *x*x*x*y*y - y*y*y*y*y - x*x*x*x*y +  2 *y
)order by fib
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719487
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719540
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во, все намного проще:
Код: plaintext
1.
2.
with tab as (select rownum - 1  n from all_objects where rownum < 100 )
select round((power(( 1 +power( 5 , 1 / 2 ))/ 2 ,n+ 1 ) - power(( 1 -power( 5 , 1 / 2 ))/ 2 ,n+ 1 ))/power( 5 , 1 / 2 )) fib
from tab;
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719549
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousВо, все намного проще Newokбез использования явной формулы
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719550
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousВо, все намного проще:
Чтобы вы не думали, что я тут какой-то мегаматематик, приведу источник вдохновения:
Далеко ходить не надо
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719556
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic Newokбез использования явной формулы
Я лично не понимаю что такое "явная формула"...
Или это просто чтобы "помучаться"? :)
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719567
Фотография PaulEr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous NewokЯ вот думал-думал, но так чёт и не придумал.
Попробуйте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
with tab as (select rownum r from all_objects)
select fib from (
select  2 *x*y* 4  + x*x*y*y*y -  2 *x*x*x*y*y - y*y*y*y*y - x*x*x*x*y +  2 *y fib
from (
  select t1.r x, t2.r y
  from tab t1, tab t2
)where 
  0  <  2 *x*y* 4  + x*x*y*y*y -  2 *x*x*x*y*y - y*y*y*y*y - x*x*x*x*y +  2 *y
)order by fib


Андрей, у меня Ваш запрос уже 5 минут висит, не может выполниться :(
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719571
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousЯ лично не понимаю что такое "явная формула"...Нерекурсивная формула получения i-того члена последовательности.
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719589
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulEr andrey_anonymous NewokЯ вот думал-думал, но так чёт и не придумал.
Попробуйте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
with tab as (select rownum r from all_objects)
select fib from (
select  2 *x*y* 4  + x*x*y*y*y -  2 *x*x*x*y*y - y*y*y*y*y - x*x*x*x*y +  2 *y fib
from (
  select t1.r x, t2.r y
  from tab t1, tab t2
)where 
  0  <  2 *x*y* 4  + x*x*y*y*y -  2 *x*x*x*y*y - y*y*y*y*y - x*x*x*x*y +  2 *y
)order by fib


Андрей, у меня Ваш запрос уже 5 минут висит, не может выполниться :(
У меня тоже
Это вычисление полинома, множество неотрицательных значений которого на множестве натуральных x,y совпадает с множеством чисел Фибонначи, если верить Википедии
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719622
Фотография PaulEr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous PaulEr andrey_anonymous NewokЯ вот думал-думал, но так чёт и не придумал.
Попробуйте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
with tab as (select rownum r from all_objects)
select fib from (
select  2 *x*y* 4  + x*x*y*y*y -  2 *x*x*x*y*y - y*y*y*y*y - x*x*x*x*y +  2 *y fib
from (
  select t1.r x, t2.r y
  from tab t1, tab t2
)where 
  0  <  2 *x*y* 4  + x*x*y*y*y -  2 *x*x*x*y*y - y*y*y*y*y - x*x*x*x*y +  2 *y
)order by fib


Андрей, у меня Ваш запрос уже 5 минут висит, не может выполниться :(
У меня тоже
Это вычисление полинома, множество неотрицательных значений которого на множестве натуральных x,y совпадает с множеством чисел Фибонначи, если верить Википедии

Понятно
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719647
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulErПонятно
Только я в спешке ошибся,
Код: plaintext
 2 *x*y* 4 
читать как
Код: plaintext
 2 *x*y*y*y*y
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719663
Newok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Чтобы вы не думали, что я тут какой-то мегаматематик, приведу источник вдохновения:


А я, кстати, немного "какой-то математик" )) Но факта с многочленом не знал. Там только нужно 2*x*y*4 заменить на 2*x*y*y*y*y. И работает довольно долго.. ну ещё бы.

andrey_anonymous Elic Newokбез использования явной формулы
Я лично не понимаю что такое "явная формула"...
Или это просто чтобы "помучаться"? :)

Явная формула в данном случае - на входe порядковый номер(аргумент), на выходе конкретное значение. Т.е. использование явного представления числа Фибоначчи как функции от порядкового номера.
Да я, на самом деле, просто попробовал написать это дело как-нить через аналитику. Долго думал, а не получилось..

Elic
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select rownum -  1  r,
       column_value fib
  from XMLTable('declare function local:fib ($i)
                   {
                     if ($i = 0) then (0)
                     else if ($i = 1) then (1)
                     else if($i >= 2) then number(local:fib($i - 1) + local:fib($i - 2))
                     else (1)
                   }; (: eof :)            
                   for $i in 0 to 15
                   return local:fib($i)')


Здесь у меня internal error вылазит
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719672
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewokЗдесь у меня internal error вылазит
Ну этот метод вполне себе эквивалентен применению табличной или pipelined функции в качестве источника данных
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719682
Фотография PaulEr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор...на 2*x*y*y*y*y . И работает довольно долго .. ну ещё бы.

Elic
...
авторЗдесь у меня internal error вылазит

После вышеуказанной замены, продолжает всё работать Довольно долго - это сколько ? Девелопер всё трудится :)
У меня не выдал internal error.
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719697
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulErПосле вышеуказанной замены, продолжает всё работать Довольно долго - это сколько ? Девелопер всё трудится :)
Я ограничил выборку from all_objects where rownum < 5000 и получил первые 19 чисел где-то за минуту на домашнем буке.
Сейчас до работы доеду, попробую на настоящей технике :)
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719707
Newok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulEr
.....


Попробуйте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with tab as (
     select level as r from dual connect by level <  1000 
)
select distinct fib
  from (select  2 *x*y*y*y*y + x*x*y*y*y -  2 *x*x*x*y*y -
               y*y*y*y*y - x*x*x*x*y +  2 *y as fib
          from (select t1.r x,
                       t2.r y
                  from tab t1,
                       tab t2)
         where  0  <  2 *x*y*y*y*y + x*x*y*y*y -  2 *x*x*x*y*y -
               y*y*y*y*y - x*x*x*x*y +  2 *y
)
 order by fib
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719728
Фотография PaulEr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to andrey_anonymous : настоящая техника, это какая ?:) Ограничил по условию, как Вы и сказали, компьютер пень четвёртый с 3 гигагерцами и гигом оперативы, уже больше двух минут висю :(

to Newok : получил за 7 секунд :)
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719733
Фотография PaulEr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3 минуты 14 секунд :) Еееее
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34719738
Фотография PaulEr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С rownum < 1000, время такое же как и у Newok, ч.т.д. :)
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34720228
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulErС rownum < 1000, время такое же как и у Newok, ч.т.д. :)
Вы rownum < 10000 попробуйте :)

Получилось 20 чисел за 5 минут:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
       FIB
----------
          1 
          1 
          2 
          3 
          5 
          8 
         13 
         21 
         34 
         55 
         89 
        144 
        233 
        377 
        610 
        987 
       1597 
       2584 
       4181 
       6765 

2Newok: distinct делать нельзя - первые два числа это 1 и 1 :)
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34720384
Newok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Получилось 20 чисел за 5 минут


Да... практическая ценность этого метода очень сомнительна ! ))


В общем задачка обычным SQL, видимо, не решается.
Спасибо всем за Ваши ответы!
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34720407
Фотография PaulEr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous Вы rownum < 10000 попробуйте :)

У меня при 5000 машина тормозила, так что не буду
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34720424
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Newok andrey_anonymous
Получилось 20 чисел за 5 минут

Да... практическая ценность этого метода очень сомнительна ! ))
В общем задачка обычным SQL, видимо, не решается.
Вы размышляете о практической ценности при запрете на использование явного представления числа Фибоначчи как функции от порядкового номера?!
Оригинально

Решается:
- pipelined/table function (очевидно)
- XMLQuery (как показал Elic)
- MODEL

А если отменить непонятный запрет, то решается и вовсе без изысков...

Вам мало?
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #34720787
Volder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous...Решается:
- pipelined/table function (очевидно)...
Вам мало?можно попробовать и не очевидно))
навеяло отсюда :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
SQL> create or replace type num_tab is table of number;
   2   /

Type created

SQL> 
SQL> create or replace function fibonacci_numb(p_num   number,
   2                                             p_prev2 number :=  0 ,
   3                                             p_prev1 number :=  1 )
   4     return num_tab is
   5     arr  num_tab := num_tab();
   6   begin
   7     if p_num- 2  >  0  then
   8       arr := fibonacci_numb(p_num -  1 , p_prev1, p_prev1 + p_prev2);
   9       arr.extend;
  10       arr(arr.last) := p_prev1;
  11     end if;
  12     if p_prev2 =  0  and p_num >=  2  then
  13       arr.extend;
  14       arr(arr.last) :=  0 ;
  15     end if;
  16     return arr;
  17   end;
  18   /

Function created

SQL> var p number;
SQL> exec :p:= 15 ;

PL/SQL procedure successfully completed
p
---------
 15 

SQL> 
SQL> select * from table(fibonacci_numb(:p+ 1 ))
   2   order by  1 
   3   /

COLUMN_VALUE
------------
            0 
            1 
            1 
            2 
            3 
            5 
            8 
           13 
           21 
           34 
           55 
           89 
          144 
          233 
          377 

 15  rows selected
p
---------
 15 

SQL> 
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 1 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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