Pierwszych n elementów sekwencji Fibonacciego

11

Istnieje dobrze znane pytanie , które wymaga krótkiego (najmniej znaków) generatora sekwencji fibonacciego.

Chciałbym wiedzieć, czy ktoś może wygenerować tylko pierwsze N ​​elementów sekwencji Fibonacciego w bardzo małej przestrzeni. Próbuję to zrobić w Pythonie, ale interesuje mnie krótka odpowiedź w dowolnym języku. Funkcja F (N) generuje pierwsze N ​​elementów sekwencji, albo zwraca je jako zwrot funkcji, albo drukuje.

Co ciekawe wydaje się, że odpowiedzi na kod-golf zaczynają się 1 1 2od 0 1 1 2. Czy jest to konwencja w golfa kodowym lub ogólnie w programowaniu? (Wikipedia mówi, że sekwencja Fibonacciego zaczyna się od zera).

Przykład Python (pierwsze 5 elementów):

def f(i,j,n):
    if n>0:
        print i;
        f(j,i+j,n-1)
f(1,1,5)
Warren P.
źródło
1
Myślę, że jest to zbyt podobne do powiązanego pytania. Większość dostępnych tam rozwiązań można łatwo zmodyfikować, aby obsłużyć przypadek pierwszemu.
hammar
3
Wszędzie, gdzie widziałem, przypadki podstawowe są zdefiniowane jako F_0 = 0, F_1 = 1lub równorzędne F_1 = 1, F_2 = 1. Różnica polega na tym, czy chcesz rozpocząć sekwencję od indeksu 0 (częściej w programowaniu) czy 1 (częściej w matematyce).
hammar
1
A definiowanie F_0 = 0, F_1 = 1ma określoną zaletę w prostocie dzięki reprezentacji macierzy [[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]].
Peter Taylor
1
@Peter: Teraz to dobry powód, aby preferować jeden do drugiego (ja długo preferowane 0, 1 na estetycznych powodów, ale nie wierzę ci się naciskając same w sobie).
dmckee --- były moderator kociak
1
Zdaję sobie sprawę, że w tym momencie jest to dość stare wyzwanie, ale pamiętaj, że zaakceptowałeś odpowiedź, która nie jest najkrótsza. Ponieważ są to zawody w golfa kodowym, najkrótszą odpowiedzią powinna być ta oznaczona jako zaakceptowana.
Alex A.

Odpowiedzi:

39

do

Nie przejmowałem się liczeniem, ale oto zabawny przykład:

f(n){return n<4?1:f(--n)+f(--n);}
main(a,b){for(scanf("%d",&b);a++<=b;printf("%d ",f(a)));}

Dowód to działa.


Jestem z tego dość dumny: nudziłem się, więc przestawiłem swój kod (z kilkoma małymi dodatkami), aby każdy wiersz reprezentował wartość w sekwencji Fibonacciego.

                         #                                // 1
                         f                                // 1
                         //                               // 2
                        (n)                               // 3
                       {/**/                              // 5
                      return n                            // 8
                    <2 ? 1:f(--n)                         // 13
                +f(--n); } main(a, b)                     // 21
          {a = 0, b = 0;scanf("%d",&b); for(              // 34
;a < b; a+=1) { int res = f(a); printf("%d ", res); } }   // 55

Dowód to działa.

Pan Llama
źródło
Miły. 90 znaków (bez nowej linii). Zapisz 2 bajty: a++<=b-> a++-bi return--n<3?1:f(n)+f(n-1). Plus możesz tego uniknąć, scanfjeśli potrzebujesz n argc.
ugoren
Kocham to! Jest to świetny przykład sytuacji, w której niezdefiniowane zachowanie uporządkowania dwóch wystąpień --ntego samego wyrażenia jest nieistotne. Znakomity!
Todd Lehman
Nawiasem mówiąc, myślę, że twoja 4powinna być 3. Jak obecnie napisano z <4, wyprodukowana sekwencja to 1, 1, 1, 2, 3, 5, 8 ... To o jeden za dużo jeden.
Todd Lehman
Ponadto, jeśli chcesz poprawnie obsługiwać element zerowy sekwencji, możesz dodać 2 znaki i zmienić kod nareturn n<3?n>0:f(--n)+f(--n);
Todd Lehman
6

Haskell (26)

Zaskakujące jest to tylko jedno postać dłuższa niż rozwiązanie J.

f = („weź”)
s = 0: scanl (+) 1s

Ogoliłem kilka postaci:

  1. Wykorzystanie takejako operator binarny;
  2. Używanie scanlzamiast gadatliwego zipWith.
Lambda Fairy
źródło
Dosłownie zajęło mi około pół godziny, aby zrozumieć, co się tutaj dzieje, i sjest tak elegancki, że nie wiem, jak ktokolwiek pomyślałby o takim rozwiązaniu! Nie wiedziałem, że możesz użyć sponownie podczas definiowania s. (Nadal jestem początkującym =)
flawr
5

Oto jedno-liniowy Python. Wykorzystuje zmiennoprzecinkowe, więc mogą istnieć takie, ndla których nie jest już dokładny.

F=lambda n:' '.join('%d'%(((1+5**.5)/2)**i/5**.5+.5)for i in range(n))

F(n)zwraca ciąg zawierający pierwsze nliczby Fibonacciego oddzielone spacjami.

Keith Randall
źródło
Myślałem o zrobieniu tego, ale pomyślałem, że to będzie za długie. Nie myślałem o użyciu podłogi. Bardzo dobrze.
Kris Harper
Ach, wzór Bineta. Użyłem go również i jest dokładny, przynajmniej do 59. liczby Fibonacciego, jeśli policzysz 0 jako pierwszą. Potem liczby stają się zbyt duże i zaczyna używać wykładników.
elssar
70 znaków, 1 linia, aby zdefiniować funkcję. + 4 + crlf, aby wywołać. Całkiem dobre!
Warren P
5

GolfScript, 16 znaków

~0 1@{.2$+}*;;]`

Przykładowe dane wyjściowe:

$ ruby golfscript.rb ~/Code/golf/fib.gs <<< "12"
[0 1 1 2 3 5 8 13 21 34 55 89]
hammar
źródło
4

Perl, 50 znaków

sub f{($a,$b,$c)=@_;$c--&&say($a)&&f($b,$a+$b,$c)}
Toto
źródło
4

Scala 71:

def f(c:Int,a:Int=0,b:Int=1):Unit={println(a);if(c>0)f(c-1,b,a+b)};f(9)

odciski

0
1
1
2
3
5
8
13
21
34
nieznany użytkownik
źródło
Fajne. Jeszcze nawet nie grałem ze Scalą. Spróbuję tego dziś wieczorem w domu.
Warren P
3

Perl, 29 28 bajtów

perl -E'say$b+=$;=$b-$;for-pop..--$;' 8
1
1
2
3
5
8
13
21

Wyjaśnienie

Jest to oparte na klasycznej $b += $a = $b-$arekurencji, która działa w następujący sposób:

  • Na początku każdej pętli $azawiera F(n-2)i $bzawieraF(n)
  • Po $a = $b-$a $azawieraF(n-1)
  • Po $b += $a $bzawieraF(n+1)

Problemem jest tutaj inicjalizacja. Klasyczny sposób jest, $b += $a = $b-$a || 1ale potem sekwencja idzie1 2 3 5 ...

Rozszerzając sekwencję fibonacciego w lewo:

... 5 -3 2 -1 1 0 1 1 2 3 5 ...

widzisz, że właściwym punktem wyjścia jest $a = -1i $b = 0. Inicjalizację $ a można połączyć z konfiguracją pętli

Na koniec zastąp $aprzez, $;aby pozbyć się miejsca przedfor

Ton Hospel
źródło
2

Mogę podać dwuliniowe rozwiązanie Python. To zwróci je jako listę.

f = lambda n: 1 if n < 2 else f(n-1) + f(n-2)
g = lambda m: map(f, range(0,m))

print g(5)

Możesz je wydrukować, dodając kolejną mapę, aby utworzyć ciągi, a następnie dodając złączenie, ale to po prostu wydaje mi się niepotrzebne.

Niestety nie wiem, jak włożyć rekurencyjną lambdę map, więc utknąłem na dwóch liniach.

Kris Harper
źródło
Po co to zwraca g(100)? ;)
Pan Llama,
@GigaWatt Heh, OP nigdy nie powiedział, że to musi być rozsądne. Czy asymptotyczny czas działania jest podobny do O (n (1.62) ^ n)?
Kris Harper
Oto jeden ze sposobów, w jaki możesz to zrobić. Zauważ, że f(n)ze n<=0zwracanymi liczbami całkowitymi i n>0listami f = lambda n: map(f, (-x for x in range(0, n))) if n > 0 else -n if n > -2 else f(n+1) + f(n+2)
zwrotnymi
Nawiasem mówiąc, przegapiłeś pierwszy 0w swojej odpowiedzi. Zmiana fna powrót n if n < 2to jedno obejście. :)
Dillon Cower
@DC Podoba mi się twoje rozwiązanie. Dość kreatywny. Tak, zacząłem mój z 1, 1, bo tak zawsze się tego nauczyłem. Uznałem, że zmiana jest łatwa.
Kris Harper
2

Python (78 znaków)

Użyłem wzoru Bineta do obliczenia liczb Fibonacciego -

[(1 + sqrt (5)) ^ n- (1-sqrt (5) ^ n] / [(2 ^ n) sqrt (5)]

Niektóre inne odpowiedzi tutaj nie są tak małe, ale chłopcze, jest szybki

n=input()
i=1
x=5**0.5
while i<=n:
    print ((1+x)**i-(1-x)**i)/((2**i)*x)
    i+=1
Elssar
źródło
1
Python (12 znaków): print"11235":)
Joel Cornett
Możesz ogolić 2 znaki, pozbywając się nawiasów 2**i. **mają wyższy priorytet niż*
Joel Cornett
Drugi termin w formule bineta zaczyna się od małego i staje się coraz mniejszy. Możesz całkowicie go pominąć i po prostu zaokrąglić wynik pierwszego terminu do najbliższej liczby całkowitej (lub dodać 0,5 i zaokrąglić w dół)
Ton Hospel
2

Schemat

Jest to zoptymalizowane za pomocą rekurencji ogona:

(define (fib n)
  (let fib ([n n] [a 0] [b 1])
    (if (zero? n) (list a)
        (cons a (fib (- n 1) b (+ a b))))))
Samuel Duclos
źródło
2

J, 25 znaków

Zdaję sobie sprawę, że rozwiązania J prawdopodobnie nie są tym, czego szukasz, ale oto jedno z nich. :-)

0 1(],+/&(_2&{.))@[&0~2-~

Stosowanie:

    0 1(],+/&(_2&{.))@[&0~2-~ 6
0 1 1 2 3 5
    0 1(],+/&(_2&{.))@[&0~2-~ 10
0 1 1 2 3 5 8 13 21 34

Jak to działa:

Zaczynając od prawej (ponieważ programy J są odczytywane od prawej do lewej),

2-~ 6~Operatora odwraca argument czasownika więc jest taka sama, jak6-2

Ignorując na razie sekcję w nawiasach, 0 1(...)@[&0~ xbierze czasownik w nawiasach i wykonuje go xrazy, używając listy 0 1jako danych wejściowych - ~ponownie odwraca tutaj argumenty, dając x (...)@[&0 ] 0 1, co oznacza, że ​​mogę zachować dane wejściowe na końcu funkcji.

W nawiasie jest widelec ],+/&(_2&{.), który składa się z trzech czasowników - ], ,i +/&(_2&{.).

Rozwidlenie przyjmuje trzy czasowniki a b ci używa ich w następujący sposób: (x a y) b (x c y)gdzie xi ysą argumentami rozwidlenia. Jest ,to czasownik środkowy w tym widelcu i łączy wyniki x ] yi x +/&(_2&{.) yrazem.

]zwraca niezmieniony lewy argument, więc x ] yocenia na x.

+/&(_2&{.)pobiera dwa ostatnie elementy z podanej listy (_2&{.)- w tym przypadku 0 1- a następnie dodaje je do siebie +/(po &prostu działają jak klej).

Gdy czasownik zadziała, a wynik zostanie przekazany do następnego uruchomienia, generując sekwencję.

Gareth
źródło
2

TI-Basic, 43 znaki

:1→Y:0→X
:For(N,1,N
:Disp X
:Y→Z
:X+Y→Y
:Z→X
:End

Kod ten można bezpośrednio wstawić do programu głównego lub przekształcić w osobny program, do którego odwołuje się pierwszy.

PhiNotPi
źródło
To jest pierwsze rozwiązanie TI-BASIC, jakie widziałem tutaj, ale nie przeze mnie :) +1
Timtech
Pamiętaj też, że dla innych osób nowe wiersze nie są tutaj liczone, ponieważ można je usunąć.
Timtech,
Właśnie dostałem kalkulator klawiatury TI-92-wielki-gigant-qwerty. Dzięki za to.
Warren P
2

APL (33)

{⍎'⎕','←0,1',⍨'←A,+/¯2↑A'⍴⍨9×⍵-2}

Stosowanie:

   {⍎'⎕','←0,1',⍨'←A,+/¯2↑A'⍴⍨9×⍵-2}7
0 1 1 2 3 5 8
marinus
źródło
Czy znak pudełkowy ⎕ jest częścią APL lub brakującym glifem?
Warren P
@WarrenP: Jeśli masz na myśli czwartą postać z lewej strony, nazywa się to „quadem” i tak powinno wyglądać. Powinno być tylko jedno pudełko.
marinus
2

Python (55)

a,b=0,1

for i in range(int(input())):a,b=b,a+b;print(b)
Donald Hobson
źródło
1

PowerShell - 35 znaków

Program PowerShell akceptuje wprowadzanie potokowe , więc jestem przekonany, że n |in n | <mycode>nie powinno być sprzeczne z moimi obliczeniami, ale jest tylko częścią inicjowania „funkcji” w języku.

Pierwsze rozwiązanie zakłada, że ​​zaczynamy od 0:

%{for($2=1;$_--){($2=($1+=$2)-$2)}}

Drugie rozwiązanie zakłada, że ​​możemy zacząć od 1:

%{for($2=1;$_--){($1=($2+=$1)-$1)}}

Przykładowe wywołanie: 5 | %{for($2=1;$_--){($1=($2+=$1)-$1)}}

Wydajność:

1
1
2
3
5

Co ciekawe, próby uniknięcia napowietrznej na for()pętli spowodowały w tym samym liczba znaków: %{$2=1;iex('($1=($2+=$1)-$1);'*$_)}.

Pisownia
źródło
1

Python, 43 znaki

Oto trzy zasadniczo różne jedno-linijki, które nie używają formuły Bineta.

f=lambda n:reduce(lambda(r,a,b),c:(r+[b],a+b,a),'.'*n,([],1,0))[0]
f=lambda n:map(lambda x:x.append(x[-1]+x[-2])or x,[[0,1]]*n)[0]
def f(n):a=0;b=1;exec'print a;a,b=b,a+b;'*n

Nigdy reducetak bardzo nie wykorzystywałem .

boothby
źródło
1
+1 za reducenadużycie
Warren P
1

dc, 32 znaki:

To faktycznie zawsze pokazuje dwa pierwsze 1, więc funkcja działa tylko zgodnie z oczekiwaniami dla N> = 2 .

?2-sn1df[dsa+plarln1-dsn0<q]dsqx

C, 75 znaków:

Nie tak fajna, jak zaakceptowana odpowiedź, ale krótsza i znacznie szybsza:

main(n,t,j,i){j=0,i=scanf("%d",&n);while(n--)t=i,i=j,printf("%d\n",j+=t);}
Dodatkowy:

CL, 64 znaki:

Jedna z moich najczęściej używanych zakładek w tym semestrze ma interesujący przykład, który jest krótszy niż wiele innych tutaj, i jest to tylko proste wywołanie loopmakra - w zasadzie tylko jedno zdanie! Usuwałem go z całej białej przestrzeni, jaką mogłem:

(loop repeat n for x = 0 then y and y = 1 then(+ x y)collect y)

Dość krótki, miły i czytelny! Aby odczytać dane wejściowe n (w tym otaczające białe spacje) można zastąpić (read), dodając 3 znaki.

daniero
źródło
Czy ... mainbierze cztery argumenty?
kot
1
To zajmuje tyle, ile dajesz. W tym przypadku po prostu (ab) służy do zdefiniowania kilku zmiennych, które zostaną użyte później :)
daniero
1

FAŁSZ, 28 bajtów

0 1- 1 10[$][@@$@+$." "@1-]#
kot
źródło
Możesz wygenerować -1 używając 1_zamiast0 1 -
12Me21
1

Python 2, 38 bajtów

Ulepszenie wcześniej opublikowanego rozwiązania:

a=b=1
exec'print a;a,b=b,a+b;'*input()

Używa execi mnożenia ciągów, aby uniknąć pętli.

Python 3, 46 bajtów

Nie tak wydajne w Pythonie 3:

a=b=1
exec('print(a);a,b=b,a+b;'*int(input()))
Russell Schwartz
źródło
Przechodząc do Python 2, możesz zapisać 9 bajtów: Wypróbuj online! Prawdopodobnie możesz dodać wersję Python 2 do swojej odpowiedzi.
Stephen
@Stephen Dobra uwaga! Zaktualizowano
Russell Schwartz,
0

C99, 58 znaków

Poniższa funkcja wypełnia tablicę liczb całkowitych pierwszymi nwartościami z sekwencji Fibonacciego zaczynającymi się od 0.

void f(int*a,int n){for(int p=0,q=1;n--;q+=*a++)*a=p,p=q;}

Test uprzęży, przyjmując njako argument wiersza poleceń:

#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
     int n = (argc > 1) ? atoi(argv[1]) : 1;
     int a[n];
     f(a, n);
     for (int i = 0; i < n; ++i)
          printf("%d\n", a[i]);
}
Han
źródło
0

CoffeeScript, 48

f=(n,i=1,j=1)->(console.log i;f n-1,j,i+j)if n>0

65 w js:

function f(n,i,j){if(n>0)console.log(i),f(n-1,(j=j||1),(i||1)+j)}
Ricardo Tomasi
źródło
0

PHP, 87

function f($n,$a=array(0,1)){echo' '.$a[0];$n>0?f(--$n,array($a[1],array_sum($a))):'';}

Używa array_sumfunkcji rekurencyjnej do generowania serii.

Na przykład:

 $ php5 fibo.php 9
 0 1 1 2 3 5 8 13 21 34 
karthik
źródło
0

F #, 123

let f n = Seq.unfold(fun (i,j)->Some(i,(j,i+j)))(0,1)|>Seq.take n
f 5|>Seq.iter(fun x->printfn "%i" x)
Smetad Anarkist
źródło
0

Scala, 65 znaków

(Seq(1,0)/:(3 to 9)){(s,_)=>s.take(2).sum+:s}.sorted map println

Wyświetla na przykład pierwsze 9 liczb Fibonacciego. Aby wersja była bardziej użyteczna, biorąc sekwencję z danych wejściowych konsoli, wymagane jest 70 znaków:

(Seq(1,0)/:(3 to readInt)){(s,_)=>s.take(2).sum+:s}.sorted map println

Uwaga: użycie zakresu ogranicza to do wartości Int.

Don Mackenzie
źródło
0

Pytanie 24

f:{{x,sum -2#x}/[x;0 1]}

Pierwsze n liczb Fibonacciego

sinedcm
źródło
0

Lua, 85 bajtów

Uczę się Lua, więc chciałbym dodać ten język do puli.

function f(x)
    return (x<3) and 1 or f(x-1)+f(x-2)
end
for i=1,io.read() do
    print(f(i))
end

a całość zajęła 85 znaków, a parametr jako argument wiersza poleceń. Kolejną zaletą jest to, że jest łatwy do odczytania.

kot
źródło
0

FAŁSZ, 20 znaków

^1@[1-$][@2ø+$.\9,]#

Dane wejściowe powinny znajdować się na stosie przed uruchomieniem tego.

12Me21
źródło
0

Pyt , 3 bajty

ř⁻Ḟ

Wypróbuj online!

ř tworzy tablicę [1, 2, 3, ..., x]
⁻ Zmniejsza każdy element raz (ponieważ Ḟ jest indeksowane 0)
Ḟ dla każdego elementu w x konwertuje go na ekwiwalent Fibonacciego

FantaC
źródło
0

kod maszynowy x86 - 379 bajtów

Wersja z nagłówkami ELF o rozmiarze 484 bajtów:

00000000: 7f45 4c46 0101 0100 0000 0000 0000 0000  .ELF............
00000010: 0200 0300 0100 0000 c080 0408 3400 0000  ............4...
00000020: 0000 0000 0000 0000 3400 2000 0200 2800  ........4. ...(.
00000030: 0000 0000 0100 0000 0000 0000 0080 0408  ................
00000040: 0000 0000 e401 0000 0010 0000 0500 0000  ................
00000050: 0010 0000 0100 0000 0000 0000 0090 0408  ................
00000060: 0000 0000 0000 0000 0000 1000 0600 0000  ................
00000070: 0010 0000 0000 0000 0000 0000 0000 0000  ................
00000080: 51b9 0090 0408 8801 31c0 ba01 0000 00eb  Q.......1.......
00000090: 0351 89c1 31c0 89c3 43b0 04cd 8031 c099  .Q..1...C....1..
000000a0: 4259 c300 0000 0000 0000 0000 0000 0000  BY..............
000000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000c0: 31c0 9942 b903 9004 08c6 4101 0ac6 4102  1..B......A...A.
000000d0: 01c6 4103 013a 7103 0f84 ff00 0000 3a71  ..A..:q.......:q
000000e0: 0374 2680 4103 050f b641 036b c008 0041  .t&.A....A.k...A
000000f0: 048a 4104 e887 ffff ff80 6904 30c6 4103  ..A.......i.0.A.
00000100: 0183 e903 3a71 0375 da8a 4104 e86f ffff  ....:q.u..A..o..
00000110: ff3a 7106 0f84 ba00 0000 0fb6 4105 8841  .:q.........A..A
00000120: 060f b641 0788 4105 0fb6 4107 0041 06c6  ...A..A...A..A..
00000130: 4107 003a 7106 0f84 8800 0000 c641 0701  A..:q........A..
00000140: fe49 063a 7106 0f84 7800 0000 c641 0702  .I.:q...x....A..
00000150: fe49 063a 7106 0f84 6800 0000 c641 0703  .I.:q...h....A..
00000160: fe49 063a 7106 0f84 5800 0000 c641 0704  .I.:q...X....A..
00000170: fe49 063a 7106 744c c641 0705 fe49 063a  .I.:q.tL.A...I.:
00000180: 7106 7440 c641 0706 fe49 063a 7106 7434  [email protected].:q.t4
00000190: c641 0707 fe49 063a 7106 7428 c641 0708  .A...I.:q.t(.A..
000001a0: fe49 063a 7106 741c c641 0709 fe49 063a  .I.:q.t..A...I.:
000001b0: 7106 7410 fe41 08fe 4109 fe49 060f b641  q.t..A..A..I...A
000001c0: 0688 4107 c641 0601 83c1 033a 7106 0f85  ..A..A.....:q...
000001d0: 46ff ffff 3a71 030f 8501 ffff ffb3 0031  F...:q.........1
000001e0: c040 cd80                                .@..

Wersja bez nagłówka (do oceny):

00000000: 67c6 4101 0a67 c641 0201 67c6 4103 0167  g.A..g.A..g.A..g
00000010: 3a71 030f 842a 0167 3a71 0374 2e67 8041  :q...*.g:q.t.g.A
00000020: 0305 6667 0fb6 4103 666b c008 6700 4104  ..fg..A.fk..g.A.
00000030: 678a 4104 e80d 0167 8069 0430 67c6 4103  g.A....g.i.0g.A.
00000040: 0166 83e9 0367 3a71 0375 d267 8a41 04e8  .f...g:q.u.g.A..
00000050: f200 673a 7106 0f84 df00 6667 0fb6 4105  ..g:q.....fg..A.
00000060: 6788 4106 6667 0fb6 4107 6788 4105 6667  g.A.fg..A.g.A.fg
00000070: 0fb6 4107 6700 4106 67c6 4107 0067 3a71  ..A.g.A.g.A..g:q
00000080: 060f 84a3 0067 c641 0701 67fe 4906 673a  .....g.A..g.I.g:
00000090: 7106 0f84 9200 67c6 4107 0267 fe49 0667  q.....g.A..g.I.g
000000a0: 3a71 060f 8481 0067 c641 0703 67fe 4906  :q.....g.A..g.I.
000000b0: 673a 7106 0f84 7000 67c6 4107 0467 fe49  g:q...p.g.A..g.I
000000c0: 0667 3a71 0674 6167 c641 0705 67fe 4906  .g:q.tag.A..g.I.
000000d0: 673a 7106 7452 67c6 4107 0667 fe49 0667  g:q.tRg.A..g.I.g
000000e0: 3a71 0674 4367 c641 0707 67fe 4906 673a  :q.tCg.A..g.I.g:
000000f0: 7106 7434 67c6 4107 0867 fe49 0667 3a71  q.t4g.A..g.I.g:q
00000100: 0674 2567 c641 0709 67fe 4906 673a 7106  .t%g.A..g.I.g:q.
00000110: 7416 67fe 4108 67fe 4109 67fe 4906 6667  t.g.A.g.A.g.I.fg
00000120: 0fb6 4106 6788 4107 67c6 4106 0166 83c1  ..A.g.A.g.A..f..
00000130: 0367 3a71 060f 8521 ff67 3a71 030f 85d6  .g:q...!.g:q....
00000140: fe00 0000 6651 66b9 7801 0000 6788 0166  ....fQf.x...g..f
00000150: 31c0 66ba 0100 0000 eb05 6651 6689 c166  1.f.......fQf..f
00000160: 31c0 6689 c366 43b0 04cd 8066 31c0 6699  1.f..fC....f1.f.
00000170: 6642 6659 c300 0000 0000 00              fBfY.......

Oblicza (ewentualnie) liczby Fibonacciego.

Krzysztof Szewczyk
źródło