4Å1λ£₁λ¨Â¦¦s¦¦*O+
Не коротший за відповідь 05AB1E , але я хотів спробувати рекурсивну функціональність нової версії 05AB1E як практику для себе. Можливо, може бути поле для гри в кілька байтів. EDIT: І справді можна побачити рекурсивну версію відповіді @Grimy 05AB1E нижче, що становить 13 байт .
Виводить перше нелементи: Спробуйте в Інтернеті .
Можна змінити на 0 н'-й предмет при заміні £
на è
: Спробуйте його в Інтернеті ;
або нескінченний список, видаливши £
: Спробуйте його в Інтернеті .
Пояснення:
Це реалізує формулу, використану в описі виклику, як це:
a ( n ) = a ( n - 1 ) + ∑n - 1k = 2( a ( k ) ⋅ a ( n - 1 - k ) )
a ( 0 ) = a ( 1 ) = a ( 2 ) = a ( 3 ) = 1
λ # Create a recursive environment,
£ # to output the first (implicit) input amount of results after we're done
4Å1 # Start this recursive list with [1,1,1,1], thus a(0)=a(1)=a(2)=a(3)=1
# Within the recursive environment, do the following:
λ # Push the list of values in the range [a(0),a(n)]
¨ # Remove the last one to make the range [a(0),a(n-1)]
 # Bifurcate this list (short for Duplicate & Reverse copy)
¦¦ # Remove the first two items of the reversed list,
# so we'll have a list with the values in the range [a(n-3),a(0)]
s # Swap to get the [a(0),a(n-1)] list again
¦¦ # Remove the first two items of this list as well,
# so we'll have a list with the values in the range [a(2),a(n-1)]
* # Multiply the values at the same indices in both lists,
# so we'll have a list with the values [a(n-3)*a(2),...,a(0)*a(n-1)]
O # Take the sum of this list
₁ + # And add it to the a(n-1)'th value
# (afterwards the resulting list is output implicitly)
13 байт версії @Grimy (переконайтеся , що upvote своєї відповіді , якщо у вас ще немає!):
1λ£λ1šÂ¨¨¨øPO
Виводить перше нелементи: Спробуйте в Інтернеті.
Можна знову змінити на 0-індексування або нескінченний список замість цього:
- (на основі 0) індексація 1λèλ1šÂ¨¨¨øPO
: спробуйте в Інтернеті ;
- Нескінченний список λλ1šÂ¨¨¨øPO
: Спробуйте в Інтернеті . (Зверніть увагу, що тут збережено 2 байти замість 1, оскільки починається рекурсивне середовищеa ( 0 ) = 1 за замовчуванням.)
Пояснення:
Він замість цього реалізує формулу, знайдену @xnor для своєї відповіді Python, як це:
a ( n ) = ∑n - 1k = 2(a(k)⋅a(n−2−k))
a(−1)=a(0)=a(1)=a(2)=1
λ # Create a recursive environment,
£ # to output the first (implicit) input amount of results after we're done
1 # Start this recursive list with 1, thus a(0)=1
# Within the recursive environment, do the following:
λ # Push the list of values in the range [a(0),a(n)]
1š # Prepend 1 in front of this list
 # Bifurcate the list (short for Duplicate & Reverse copy)
¨¨¨ # Remove (up to) the last three value in this reversed list
ø # Create pairs with the list we bifurcated earlier
# (which will automatically remove any trailing items of the longer list)
P # Get the product of each pair (which will result in 1 for an empty list)
O # And sum the entire list
# (afterwards the resulting list is output implicitly)
a(n-1-k)
наa(n-k)
, правильно?