tło
Dzisiaj (lub Wczoraj) jest (lub było) 11/23 lub dzień Fibonacciego! Czy jest lepszy sposób na świętowanie niż zrobienie ciasta Fibonacciego?
Przykłady
3
ii
i_i_ii_i_i
8
ii
ii
ii
ii
ii
ii
ii
ii
i ii i
i ii i
i ii i
i ii i
i ii i
i i ii i i
i i ii i i
i i ii i i
i i i ii i i i
i i i ii i i i
i i i i ii i i i i
i i i i i ii i i i i i
i_i_i_i_i_i_i_ii_i_i_i_i_i_i_i
Wyzwanie
Tak naprawdę nie robisz ciasta, tylko świece, bo nie potrafię ciasta ascii-art
Aby zrobić ciasto, musisz najpierw posortować pierwsze n
liczby fibonacci posortowane rosnąco. Wysokość świecy ( i
) jest określona przez wartość bieżącej liczby fibonacciego. Świece są oddzielone znakiem podkreślenia ( _
).
Ciasto powinno być symetryczne. Więc świece należy następnie odwrócić i połączyć.
Przykładowa konstrukcja
Input: 6
First 6 Fibonacci Numbers: 1, 1, 2, 3, 5, 8
Candle heights:
i
i
i
i i
i i
i i i
i i i i
i i i i i i
-----------
1 1 2 3 5 8
Output would be:
ii
ii
ii
i ii i
i ii i
i i ii i i
i i i ii i i i
i_i_i_i_i_ii_i_i_i_i_i
Referencje liczb Fibonacciego
Dla porównania, oto pierwsze 15 liczb Fibonacciego. W tym wyzwaniu zaczniesz od 1
.
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610
Odpowiedzi:
Pyth, 31 bajtów
Wypróbuj online: demonstracja
Wyjaśnienie:
źródło
J, 58 bajtów
Zastosowania
(%-.-*:)t.
do generowania Fibonacciego. Wyjaśnienie może przyjść nieco później.Stosowanie:
Wypróbuj online tutaj.
źródło
CJam,
4139 bajtówTo drukuje sporo wiodących białych znaków. Wypróbuj online w interpretatorze CJam .
Jak to działa
źródło
TeaScript,
938476 + 1 = 77 bajtów+1 bajt dla „Dane wejściowe są liczbami?” pole wyboru
Wersja bez golfa:
Dzięki @ Vɪʜᴀɴ za wskazówki.
źródło
r
funkcji zamiastA(x)f(0)
, np.r(x)m(#
Array.dupe()
, nie działa?Python 2, 117 bajtów
Pomysł jest prosty: wygeneruj obraz w kolumnach od dołu do góry, od lewej do prawej, z lustrzaną prawą połową rewersu lewej strony. Kolumny są generowane przez iterację powtarzalności Fibonacciego na ciągach
i
„s”, przeplatanych_
„s” dla dolnego rzędu.Aby wydrukować obraz z kolumnami zaczynającymi się od dołu, musimy go obrócić, co oznacza transpozycję i odwrócenie. Niestety, Python nie ma prostego sposobu na transponowanie tablicy wierszy o nierównej długości. Wbudowane
zip
obcina się do najkrótszego rzędu. Wykorzystuje tomap(None,_)
lewę, aleNone
później musi przekonwertować wszystkie spacje.źródło
Haskell,
182176 bajtówZadzwoń
c
.(
f
bezwstydnie skradziony z /programming/232861/fibonacci-code-golf )źródło
flip replicate 'i'.(f!!)
przez\x->[1..f!!x]>>"i"
.f
działa nadal ...Matlab,
172152 bajtyNiestety, Matlab nie ma wbudowanej funkcji Fibonacciego, a manipulacja ciągami jest nieco skomplikowana.
Z podziałami linii:
źródło
Rubin,
151146142137132 bajtów137 bajtów
142 bajty
146 bajtów
151 bajtów
Nie golfowany:
Stosowanie:
Wynik:
źródło
Python 2, 213
Zaoszczędź 12 bajtów dzięki DSM.
Wersja bez golfa.
źródło