freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/rosetta-code/fibonacci-n-step-number-seq...

7.6 KiB
Raw Blame History

title id challengeType videoUrl localeTitle
Fibonacci n-step number sequences 598eef80ba501f1268170e1e 5 Число n-ступенчатых чисел Фибоначчи

Description

Напишите функцию для генерации последовательности n-шаговых последовательностей Фибоначчи и последовательностей Лукаса. Первым параметром будет n. Второй параметр будет состоять из числа возвращаемых элементов. Третий параметр будет определять, следует ли выводить последовательность Фибоначчи или последовательность Лукаса. Если параметр «f», то верните последовательность Фибоначчи, и если это «l», верните последовательность Лукаса. Последовательности должны быть возвращены как массив. Более подробная информация приведена ниже:

Эти ряды чисел являются расширением обычной последовательности Фибоначчи, где:

При $ n = 2 $ мы имеем последовательность Фибоначчи; с начальными значениями $ [1, 1] $ и $ F_k ^ 2 = F_ {k-1} ^ 2 + F_ {k-2} ^ 2 $ При $ n = 3 $ мы имеем трибоначчивую последовательность; с начальными значениями $ [1, 1, 2] $ и $ F_k ^ 3 = F_ {k-1} ^ 3 + F_ {k-2} ^ 3 + F_ {k-3} ^ 3 $ При $ n = 4 $, мы имеем последовательность tetranacci; с начальными значениями $ [1, 1, 2, 4] $ и $ F_k ^ 4 = F_ {k-1} ^ 4 + F_ {k-2} ^ 4 + F_ {k-3} ^ 4 + F_ {k -4} ^ 4 $ ... Для общего $ n> 2 $ мы имеем последовательность $ n $ -последовательности Фибоначчи - $ F_k ^ n $; с начальными значениями первых $ n $ значений $ (n-1) $ 'th Fibonacci $ n $ -ступенчатой ​​последовательности $ F_k ^ {n-1} $; и $ k $ -ное значение этой $ n $ -ой последовательности является $ F_k ^ n = \ sum_ {i = 1} ^ {(n)} {F_ {ki} ^ {(n)}} $

При малых значениях $ n $ греческие числовые префиксы иногда используются для индивидуального обозначения каждой серии.

{| style = "text-align: left;" border = "4" cellpadding = "2" cellspacing = "2"

| + Последовательности Фибоначчи $ n $ -ступят

| - style = "background-color: rgb (255, 204, 255);"

! $ n $ !! Название серии !! Значения

| -

| 2 || Фибоначчи || 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 ...

| -

| 3 || Трибоначчи || 1 1 2 4 7 13 24 44 81 149 274 504 927 1705 3136 ...

| -

| 4 || тетранацци || 1 1 2 4 8 15 29 56 108 208 401 773 1490 2872 5536 ...

| -

| 5 || пентаначчи || 1 1 2 4 8 16 31 61 120 236 464 912 1793 3525 6930 ...

| -

| 6 || гексаначчи || 1 1 2 4 8 16 32 63 125 248 492 976 1936 3840 7617 ...

| -

| 7 || Гептаначи || 1 1 2 4 8 16 32 64 127 253 504 1004 2000 3984 7936 ...

| -

| 8 || октоначчи || 1 1 2 4 8 16 32 64 128 255 509 1016 2028 4048 8080 ...

| -

| 9 || nonanacci || 1 1 2 4 8 16 32 64 128 256 511 1021 2040 4076 8144 ...

| -

| 10 || деканаци || 1 1 2 4 8 16 32 64 128 256 512 1023 2045 4088 8172 ...

|}

Последовательности союзников могут быть сгенерированы при изменении начальных значений:

Серия Lucas суммирует два предыдущих значения, такие как ряд фибоначчи для $ n = 2 $, но использует начальные значения $ [2, 1] $.

Instructions

Tests

tests:
  - text: <code>fib_luc</code> является функцией.
    testString: 'assert(typeof fib_luc === "function", "<code>fib_luc</code> is a function.");'
  - text: '<code>fib_luc(2,10,&quot;f&quot;)</code> должен вернуть <code>[1,1,2,3,5,8,13,21,34,55]</code> .'
    testString: 'assert.deepEqual(fib_luc(2,10,"f"),ans[0],"<code>fib_luc(2,10,"f")</code> should return <code>[1,1,2,3,5,8,13,21,34,55]</code>.");'
  - text: '<code>fib_luc(3,15,&quot;f&quot;)</code> должен вернуться <code>[1,1,2,4,7,13,24,44,81,149,274,504,927,1705,3136]</code> .'
    testString: 'assert.deepEqual(fib_luc(3,15,"f"),ans[1],"<code>fib_luc(3,15,"f")</code> should return <code>[1,1,2,4,7,13,24,44,81,149,274,504,927,1705,3136]</code>.");'
  - text: '<code>fib_luc(4,15,&quot;f&quot;)</code> должен вернуться <code>[1,1,2,4,8,15,29,56,108,208,401,773,1490,2872,5536]</code> .'
    testString: 'assert.deepEqual(fib_luc(4,15,"f"),ans[2],"<code>fib_luc(4,15,"f")</code> should return <code>[1,1,2,4,8,15,29,56,108,208,401,773,1490,2872,5536]</code>.");'
  - text: '<code>fib_luc(2,10,&quot;l&quot;)</code> должен возвращать <code>[ 2, 1, 3, 4, 7, 11, 18, 29, 47, 76]</code> .'
    testString: 'assert.deepEqual(fib_luc(2,10,"l"),ans[3],"<code>fib_luc(2,10,"l")</code> should return <code>[ 2, 1, 3, 4, 7, 11, 18, 29, 47, 76]</code>.");'
  - text: '<code>fib_luc(3,15,&quot;l&quot;)</code> должны возвращать <code>[ 2, 1, 3, 6, 10, 19, 35, 64, 118, 217, 399, 734, 1350, 2483, 4567 ]</code> .'
    testString: 'assert.deepEqual(fib_luc(3,15,"l"),ans[4],"<code>fib_luc(3,15,"l")</code> should return <code>[ 2, 1, 3, 6, 10, 19, 35, 64, 118, 217, 399, 734, 1350, 2483, 4567 ]</code>.");'
  - text: '<code>fib_luc(4,15,&quot;l&quot;)</code> должен возвращать <code>[ 2, 1, 3, 6, 12, 22, 43, 83, 160, 308, 594, 1145, 2207, 4254, 8200 ]</code> .'
    testString: 'assert.deepEqual(fib_luc(4,15,"l"),ans[5],"<code>fib_luc(4,15,"l")</code> should return <code>[ 2, 1, 3, 6, 12, 22, 43, 83, 160, 308, 594, 1145, 2207, 4254, 8200 ]</code>.");'
  - text: '<code>fib_luc(5,15,&quot;l&quot;)</code> должен возвращать <code>[ 2, 1, 3, 6, 12, 24, 46, 91, 179, 352, 692, 1360, 2674, 5257, 10335 ]</code> .'
    testString: 'assert.deepEqual(fib_luc(5,15,"l"),ans[6],"<code>fib_luc(5,15,"l")</code> should return <code>[ 2, 1, 3, 6, 12, 24, 46, 91, 179, 352, 692, 1360, 2674, 5257, 10335 ]</code>.");'

Challenge Seed

function fib_luc (n, len, w) {
  // Good luck!
}

After Test

console.info('after the test');

Solution

// solution required