powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
8 сообщений из 58, страница 3 из 3
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #39488360
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyandreymxЕще одна прямая формула для первых 180 членов
Код: plsql
1.
2.
3.
4.
5.
6.
SELECT	ROUND(
			3.06524758424985278748642156811189336485 * 
		POWER(	1.61803398874989484820458683436563811772, LEVEL-4)
	) rn
FROM	dual
CONNECT BY LEVEL < 181



хитрец :)
ты откуда вынул последнюю пятерку в 3.06524758424985278748642156811189336485?
Руками подбирал?ну ты вспомнил
10 лет спустя :)
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #39488382
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,
9.5
глаз зацепился.
пятерка повышает точность до 185 номеров.
Стандартное вычисление -
Код: plsql
1.
to_char(Power(  1.61803398874989484820458683436563811772,4)/sqrt(5),'TM9')


дает единицу на конце и ожидаемую точность до 181 номера включительно.
Идея с понижением степени в power угадывается, но пятерку ...
Пятерку надо из какого-то рукава вынимать. Вероятно, убедившись в том, что
понижение степени само по себе не работает...
как-то так.
От того и вопрос о происхождении пятерки, подразумевающий к раскрытию рассказ о
понижении степени.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #39995313
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Золотое сечение такой точности можно задать в PLSQL/number.

А как быть с double?
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #39995453
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Золотое сечение такой точности можно задать в PLSQL/number.
А как быть с double?
А в чём проблема-то?
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #39995550
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чисто с целью повыделываться
на вид даже без циклов

ТСКЛ он такой
Код: sql
1.
2.
3.
4.
5.
6.
declare @a1 numeric(38) = 1, @a2 numeric(38) = 0, @a3 numeric(38);

select top 150 @a3=@a1, @a1+=@a2, @a2=@a3
from sys.all_columns

select @a1, @a2


a1a2161305314249045814157979073863499969216677189303386214405760200
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #39995561
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения. Оригинал дискуссии был здась.
Тяпничный код Фибоначчи

Я случайно сделал некрофильский жест задав вопрос не там. Игнорируйте это.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #40105681
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через число цепочек не содержащих двух единиц подряд вроде не было здесь.
Код: plsql
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.
SQL> with t(id) as
  2   (select 0 from dual union all select 1 from dual)
  3  select level + 3 idx, count(*) fib
  4    from t
  5  connect by nocycle level <= &n - 3
  6         and not (prior id = 1 and id = 1)
  7         and prior sys_guid() is not null
  8   group by level
  9  union all select 1, 0 from dual
 10  union all select 2, 1 from dual
 11  union all select 3, 1 from dual
 12   order by 1;
Enter value for n: 20
old   5: connect by nocycle level <= &n - 3
new   5: connect by nocycle level <= 20 - 3

       IDX        FIB
---------- ----------
         1          0
         2          1
         3          1
         4          2
         5          3
         6          5
         7          8
         8         13
         9         21
        10         34
        11         55
        12         89
        13        144
        14        233
        15        377
        16        610
        17        987
        18       1597
        19       2584
        20       4181

20 rows selected.
...
Рейтинг: 0 / 0
Числа Фибоначчи без MODEL и явной формулы. Можно ли сделать?
    #40105689
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или намного эффективнее без генерации всех последовательностей
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with r(lvl, str) as
(
select 1, to_clob('01') from dual
union all
select lvl+ 1, replace(replace(replace(str,'1','#'),'0','01'),'#','0')
from r
where lvl < &n-3
)
select lvl+3 idx, length(str) l
from r
union all select 1, 0 from dual
union all select 2, 1 from dual
union all select 3, 1 from dual
order by 1;


Код: plsql
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.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
SQL> with r(lvl, str) as
  2  (
  3  select 1, to_clob('01') from dual
  4  union all
  5  select lvl+ 1, replace(replace(replace(str,'1','#'),'0','01'),'#','0')
  6  from r
  7  where lvl < &n-3
  8  )
  9  select lvl+3 idx, length(str) l
 10  from r
 11  union all select 1, 0 from dual
 12  union all select 2, 1 from dual
 13  union all select 3, 1 from dual
 14  order by 1;
Enter value for n: 25
old   7: where lvl < &n-3
new   7: where lvl < 25-3

       IDX          L
---------- ----------
         1          0
         2          1
         3          1
         4          2
         5          3
         6          5
         7          8
         8         13
         9         21
        10         34
        11         55
        12         89
        13        144
        14        233
        15        377
        16        610
        17        987
        18       1597
        19       2584
        20       4181
        21       6765
        22      10946
        23      17711
        24      28657
        25      46368

25 rows selected.

Elapsed: 00:00:00.03
SQL> with t(id) as
  2   (select 0 from dual union all select 1 from dual)
  3  select level + 3 idx, count(*) fib
  4    from t
  5  connect by nocycle level <= &n - 3
  6         and not (prior id = 1 and id = 1)
  7         and prior sys_guid() is not null
  8   group by level
  9  union all select 1, 0 from dual
 10  union all select 2, 1 from dual
 11  union all select 3, 1 from dual
 12   order by 1;
Enter value for n: 25
old   5: connect by nocycle level <= &n - 3
new   5: connect by nocycle level <= 25 - 3

       IDX        FIB
---------- ----------
         1          0
         2          1
         3          1
         4          2
         5          3
         6          5
         7          8
         8         13
         9         21
        10         34
        11         55
        12         89
        13        144
        14        233
        15        377
        16        610
        17        987
        18       1597
        19       2584
        20       4181
        21       6765
        22      10946
        23      17711
        24      28657
        25      46368

25 rows selected.

Elapsed: 00:00:36.14

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


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