A greedy algorithm for finding a representation of the number of garafibonacci numbers?

According to the Zeckendorf theorem , each positive integer can be written in a unique way as the sum of inconsistent different Fibonacci numbers. Such a decomposition can be easily found using the greedy algorithm, which consists essentially in subtracting the largest Fibonacci number, which is suitable and iterated, for example:

20 = 13 + 7 = 13 + 5 + 2

Nevertheless, it also follows from the theorem that any integer (also & lt = 0) has a unique expansion in the form of the sum of various non-negative numbers of negative Fibonacci numbers, i.e. a sequence

0, 1, -1, 2, -3, 5, -8, ...

or F_ (- n) = (-1) ^ (n + 1) F_n. Some examples:

-4 = - 3 - 1

4 = 5 + 1

11 = 13 - 3 + 1

Is there a well-known simple algorithm for decomposing a given integer in this way?

+4
1

, negafibonacci.

, , ( ) ( ). ,

  • F 0 + 1 F 2, ,
  • F 2 + 1 F 4, ,
  • F 4 + 1 F 6, ,
  • F 6 + 1 F 8, ,
  • F 8 + 1 F 10, ,
  • ...
  • F 2k + 1 to F 2k + 2, ,
  • ...

n , :

  • -F 1 -F 3 + 1, ,
  • -F 3 -F 5 + 1, ,
  • -F 5 -F 7 + 1, ,
  • -F 7 -F 9 + 1, ,
  • ...
  • -F 2k-1 -F 2k + 1 + 1, ,
  • ...

:

  • , [F 2k + 1, F 2k + 2], n, F 2k + 1 F 2k + 1 n.
  • , [-F 2k-1, -F 2k + 1 + 1], n, add -F 2k, F 2k .
  • , .

. , 27 negafibonacci. , 21 + 1 & le; 27 & le; 55. ( ) 34, 34 27-34 = -7 negafibonacci.

, , 5 + 1 & le; 7 & le; 13, 7 , ( ) 8. -8 1 negafibonacci.

, 0 + 1 & le; 1 & le; 1, 1 , (-) 1. 1 0 negafibonacci.

0, ! ! 34 - 8 + 1 = 27.

. -, , , ( - F 2k + 1), , ( - -F 2k). .

. . , [F 2k + 1, F 2k + 2], F 2k + 1 > . F 2k + 2 - F 2k + 1= F 2k, , , [F 2k-2 + 1, F 2k], , , F 2k-1. , , , .

F 2k + 1 - F 2k + 1= -F 2k-1 + 1. , , " " , , [F 2k-1 + 1, F 2k-3], , , - F 2k-2. .

, , .

, (F k-1, F k, F k + 1) ( ), , n. (, ) 0, . , O (log n).

+2

Source: https://habr.com/ru/post/1664412/


All Articles