First-n Fibonacci-Sequenzelemente

11

Es ist eine wohlbekannte Frage hier , die für ein kurzes (mindestens Zeichen) Fibonacci - Sequenz - Generator fragt.

Ich würde gerne wissen, ob jemand in sehr kurzer Zeit nur die ersten N Elemente der Fibonacci-Sequenz erzeugen kann. Ich versuche es in Python zu machen, aber ich bin an jeder kurzen Antwort in jeder Sprache interessiert. Die Funktion F (N) erzeugt die ersten N Elemente der Sequenz, gibt sie entweder als Rückgabe der Funktion zurück oder druckt sie aus.

Interessanterweise scheinen die Code-Golf-Antworten 1 1 2stattdessen mit zu beginnen 0 1 1 2. Ist das eine Konvention im Code-Golf oder im Programmieren im Allgemeinen? (Wikipedia sagt, dass die Fibonacci-Sequenz mit Null beginnt.)

Python-Beispiel (erste 5 Elemente):

def f(i,j,n):
    if n>0:
        print i;
        f(j,i+j,n-1)
f(1,1,5)
Warren P.
quelle
1
Ich denke, das ist der verknüpften Frage zu ähnlich. Die meisten Lösungen dort können leicht modifiziert werden, um den First-n-Fall zu behandeln.
Hammar
3
Überall, wo ich gesehen habe, sind die Basisfälle als F_0 = 0, F_1 = 1oder gleichwertig definiert F_1 = 1, F_2 = 1. Der Unterschied besteht darin, ob Sie die Sequenz bei Index 0 (häufiger in der Programmierung) oder 1 (häufiger in der Mathematik) beginnen möchten.
Hammar
1
Und das Definieren F_0 = 0, F_1 = 1hat einen eindeutigen Vorteil in der Einfachheit der Matrixdarstellung [[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]].
Peter Taylor
1
@Peter: Nun , da dies ein guter Grund ist, das eine dem anderen vorzuziehen (ich hätte aus ästhetischen Gründen lange Zeit 0, 1 vorgezogen, aber glaube nicht, dass diese an und für sich drängen).
dmckee --- Ex-Moderator Kätzchen
1
Mir ist klar, dass dies zu diesem Zeitpunkt eine ziemlich alte Herausforderung ist, aber beachten Sie, dass Sie eine Antwort akzeptiert haben, die nicht die kürzeste ist. Da es sich um einen Code-Golf-Wettbewerb handelt, sollte die kürzeste Antwort diejenige sein, die als akzeptiert markiert ist.
Alex A.

Antworten:

39

C.

Ich habe nicht gezählt, aber hier ist ein lustiges Beispiel:

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

Beweis, dass es funktioniert.


Darauf bin ich ziemlich stolz: Ich habe mich gelangweilt und meinen Code (mit ein paar kleinen Ergänzungen) neu angeordnet, damit jede Zeile einen Wert in der Fibonacci-Sequenz darstellt.

                         #                                // 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

Beweis, dass es funktioniert.

Herr Lama
quelle
Nett. 90 Zeichen (ohne Zeilenumbruch). Speichern Sie 2 Bytes: a++<=b-> a++-bund return--n<3?1:f(n)+f(n-1). Außerdem können Sie vermeiden, scanfwenn Sie n benötigen, um dabei zu sein argc.
Ugoren
Liebe es! Dies ist ein großartiges Beispiel dafür, wo das undefinierte Verhalten der Reihenfolge der beiden Instanzen --nim selben Ausdruck irrelevant ist. Brillant!
Todd Lehman
Übrigens denke ich, dass 4es eigentlich eine geben sollte 3. Wie derzeit mit dem geschrieben <4, ist die erzeugte Sequenz 1, 1, 1, 2, 3, 5, 8 ... Das ist eine zu viele Einsen.
Todd Lehman
Wenn Sie das nullte Element der Sequenz korrekt behandeln möchten, können Sie außerdem 2 Zeichen hinzufügen und den Code inreturn n<3?n>0:f(--n)+f(--n);
Todd Lehman,
6

Haskell (26)

Überraschenderweise ist dies nur ein Zeichen länger als die J-Lösung.

f = (`take`s)
s = 0: scanl (+) 1s

Ich rasiere ein paar Charaktere ab durch:

  1. Verwendung takeals binärer Operator;
  2. Verwenden scanlanstelle der ausführlichen zipWith.
Lambda-Fee
quelle
Ich habe buchstäblich eine halbe Stunde gebraucht, um zu verstehen, was hier vor sich geht, und das sist so elegant, dass ich nicht weiß, wie sich jemand eine solche Lösung vorstellen würde! Was ich nicht wusste ist, dass Sie sbeim Definieren wieder verwenden können s. (Ich bin noch ein Anfänger =)
Fehler
5

Hier ist ein einzeiliger Python. Es wird Gleitkomma verwendet, daher kann es einige geben, nfür die es nicht mehr genau ist.

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

F(n)Gibt eine Zeichenfolge zurück, die die ersten nFibonacci-Zahlen enthält, die durch Leerzeichen getrennt sind.

Keith Randall
quelle
Ich dachte darüber nach, dachte aber, es würde zu lange dauern. Ich habe nicht daran gedacht, Fußböden zu verwenden. Sehr schön.
Kris Harper
Ah, Binets Formel. Ich habe es auch benutzt und es ist genau, zumindest bis zur 59. Fibonacci-Zahl, wenn Sie 0 als erste zählen. Danach werden die Zahlen zu groß und es werden Exponenten verwendet.
Elssar
70 Zeichen, 1 Zeile, um die Funktion zu definieren. + 4 + crlf zum Aufrufen. Ziemlich gut!
Warren P
5

GolfScript, 16 Zeichen

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

Beispielausgabe:

$ ruby golfscript.rb ~/Code/golf/fib.gs <<< "12"
[0 1 1 2 3 5 8 13 21 34 55 89]
Hammar
quelle
4

Perl, 50 Zeichen

sub f{($a,$b,$c)=@_;$c--&&say($a)&&f($b,$a+$b,$c)}
Toto
quelle
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)

druckt

0
1
1
2
3
5
8
13
21
34
Benutzer unbekannt
quelle
Cool. Ich habe noch nicht einmal mit Scala gespielt. Ich werde es heute Abend zu Hause versuchen.
Warren P
3

Perl, 29 28 Bytes

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

Erläuterung

Dies basiert auf der klassischen $b += $a = $b-$aWiederholung, die wie folgt funktioniert:

  • Zu Beginn jeder Schleife $aenthält F(n-2)und $benthältF(n)
  • Nach $a = $b-$a $aenthältF(n-1)
  • Nach $b += $a $benthältF(n+1)

Das Problem hierbei ist die Initialisierung. Der klassische Weg ist $b += $a = $b-$a || 1aber dann geht die Sequenz1 2 3 5 ...

Durch Erweitern der Fibonacci-Sequenz nach links:

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

Sie sehen, dass der richtige Ausgangspunkt $a = -1und ist $b = 0. Das Initialisieren von $ a kann mit dem Einrichten der Schleife kombiniert werden

Schließlich ersetzt $adurch $;, bevor die von dem Raum loszuwerdenfor

Ton Hospel
quelle
2

Ich kann Ihnen eine zweizeilige Python-Lösung geben. Dadurch werden sie als Liste zurückgegeben.

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)

Sie könnten sie ausdrucken lassen, indem Sie eine weitere Karte hinzufügen, um sie zu Zeichenfolgen zu machen, und dann einen Join hinzufügen, aber das scheint mir einfach unnötig.

Leider weiß ich nicht, wie ich ein rekursives Lambda einfügen soll map, deshalb stecke ich in zwei Zeilen fest.

Kris Harper
quelle
Wofür wird es zurückgegeben g(100)? ;)
Mr. Llama
@GigaWatt Heh, OP hat nie gesagt, dass es vernünftig sein muss. Ist die asymptotische Laufzeit so etwas wie O (n (1.62) ^ n)?
Kris Harper
Hier ist eine Möglichkeit, wie Sie dies tun können. Beachten Sie, dass f(n)mit n<=0Rückgabe Ganzzahlen und n>0Rückgabelisten, also .. vielleicht ist es nicht ideal: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)
Dillon Cower
Übrigens haben Sie den ersten 0in Ihrer Antwort verpasst . Das Ändern fzur Rückkehr n if n < 2ist eine Problemumgehung. :)
Dillon Cower
@DC Ich mag deine Lösung. Ziemlich kreativ. Ja, ich habe mit 1, 1 angefangen, weil ich es immer so gelernt habe. Ich dachte, es zu ändern wäre einfach genug.
Kris Harper
2

Python (78 Zeichen)

Ich habe Binets Formel verwendet , um die Fibonacci-Zahlen zu berechnen -

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

Es ist nicht so klein, einige der anderen Antworten hier, aber Junge, es ist schnell

n=input()
i=1
x=5**0.5
while i<=n:
    print ((1+x)**i-(1-x)**i)/((2**i)*x)
    i+=1
Elssar
quelle
1
Python (12 Zeichen): print"11235":)
Joel Cornett
Sie können 2 Zeichen rasieren, indem Sie die Klammern entfernen 2**i. **haben höhere Priorität als*
Joel Cornett
Der zweite Term in der Binet-Formel beginnt klein und wird nur kleiner. Sie können es komplett weglassen und stattdessen das Ergebnis des ersten Terms auf die nächste ganze Zahl runden (oder 0,5 hinzufügen und
abrunden
2

Planen

Dies wird durch Schwanzrekursion optimiert:

(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
quelle
2

J, 25 Zeichen

Mir ist klar, dass J-Lösungen wahrscheinlich nicht das sind, wonach Sie suchen, aber hier ist trotzdem eine. :-)

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

Verwendungszweck:

    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

Wie es funktioniert:

Ausgehend von rechts (weil J-Programme von rechts nach links gelesen werden),

2-~ 6Der ~Operator kehrt das Argument zum Verb um, so dass dies dasselbe ist wie6-2

Wenn Sie den Abschnitt in Klammern vorerst ignorieren, 0 1(...)@[&0~ xnehmen Sie das Verb in Klammern und führen Sie es xmal aus, indem Sie die Liste 0 1als Eingabe verwenden. ~Kehren Sie die Argumente hier erneut um und geben Sie an x (...)@[&0 ] 0 1, was bedeutet, dass ich die Eingabe am Ende der Funktion behalten kann.

Innerhalb der Klammern ist eine Gabel , ],+/&(_2&{.)die aus drei Verben gemacht wird - ], ,und +/&(_2&{.).

Eine Gabel nimmt drei Verben a b cund verwendet sie wie folgt: (x a y) b (x c y)Wo xund ysind die Argumente für die Gabel. Das ,ist das zentrale Verb in dieser Gabel und verbindet die Ergebnisse von x ] yund x +/&(_2&{.) ymiteinander.

]Gibt das linke Argument unverändert zurück und x ] ywertet es aus x.

+/&(_2&{.)Nimmt die letzten beiden Elemente aus der angegebenen Liste (_2&{.)- in diesem Fall 0 1- und addiert sie dann +/(die &s dienen nur als Klebstoff).

Sobald das Verb funktioniert hat, wird das Ergebnis für den nächsten Lauf zurückgesendet und die Sequenz generiert.

Gareth
quelle
2

TI-Basic, 43 Zeichen

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

Dieser Code kann direkt in das Hauptprogramm eingefügt oder in ein separates Programm umgewandelt werden, auf das das erste Programm verweist.

PhiNotPi
quelle
Dies ist die erste TI-BASIC-Lösung, die ich jemals hier gesehen habe und die nicht von mir stammt :) +1
Timtech
Beachten Sie auch für andere Personen, dass Zeilenumbrüche hier nicht gezählt werden, da sie entfernt werden können.
Timtech
Ich habe gerade einen TI-92 Big-Riesen-QWERTY-Tastaturrechner bekommen. Danke für diesen einen.
Warren P
2

APL (33)

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

Verwendungszweck:

   {⍎'⎕','←0,1',⍨'←A,+/¯2↑A'⍴⍨9×⍵-2}7
0 1 1 2 3 5 8
Marinus
quelle
Ist das Kästchen ⎕ Teil von APL oder ein fehlendes Symbol?
Warren P
@WarrenP: Wenn du das 4. Zeichen von links meinst, heißt das 'Quad' und es soll so aussehen. Es sollte nur eine Box geben.
Marinus
2

Python (55)

a,b=0,1

for i in range(int(input())):a,b=b,a+b;print(b)
Donald Hobson
quelle
1

Powershell - 35 Zeichen

Powershell akzeptiert Pipeline- Eingaben , daher bin ich der Überzeugung, dass das n |In n | <mycode>nicht gegen meine Zählung sein sollte, sondern nur ein Teil der Initiierung einer "Funktion" in der Sprache ist.

Die erste Lösung geht davon aus, dass wir bei 0 beginnen:

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

Die zweite Lösung geht davon aus, dass wir bei 1 beginnen können:

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

Beispielaufruf: 5 | %{for($2=1;$_--){($1=($2+=$1)-$1)}}

Ausbeuten:

1
1
2
3
5

Interessanterweise führten Versuche, den Overhead der for()Schleife zu vermeiden, zu derselben Zeichenanzahl : %{$2=1;iex('($1=($2+=$1)-$1);'*$_)}.

RechtschreibungD
quelle
1

Python, 43 Zeichen

Hier sind drei grundlegend unterschiedliche Einzeiler, die die Binet-Formel nicht verwenden.

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

Ich habe noch nie reduceso schlimm missbraucht .

Standby
quelle
1
+1 für reduceMissbrauch
Warren P
1

dc, 32 Zeichen:

Dies zeigt eigentlich immer die beiden ersten Einsen an, sodass die Funktion nur wie erwartet für N> = 2 funktioniert .

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

C, 75 Zeichen:

Nicht so cool wie die akzeptierte Antwort, aber kürzer und viel schneller:

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

CL, 64 Zeichen:

Eines meiner am häufigsten verwendeten Lesezeichen in diesem Semester hat ein interessantes Beispiel, das kürzer ist als viele der anderen hier, und es ist nur ein direkter Aufruf des loopMakros - im Grunde nur eine Aussage! Ich habe es für alle Leerzeichen entfernt, die ich konnte:

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

Ganz kurz und schön und lesbar! Zum Lesen von Eingaben n (einschließlich der umgebenden Leerzeichen) können (read)3 Zeichen hinzugefügt werden.

daniero
quelle
Nimmt ... mainvier Argumente?
Katze
1
Es braucht so viele, wie du gibst. In diesem Fall wird es nur (ab) verwendet, um einige Variablen zu definieren, die später verwendet werden :)
daniero
1

FALSE, 28 Bytes

0 1- 1 10[$][@@$@+$." "@1-]#
Katze
quelle
Sie können generieren -1 verwenden , 1_anstatt0 1 -
12Me21
1

Python 2, 38 Bytes

Eine Verbesserung gegenüber einer zuvor veröffentlichten Lösung:

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

Dies verwendet eine execString-Multiplikation, um Schleifen zu vermeiden.

Python 3, 46 Bytes

Nicht ganz so effizient in Python 3:

a=b=1
exec('print(a);a,b=b,a+b;'*int(input()))
Russell Schwartz
quelle
Durch den Wechsel zu Python 2 können Sie 9 Bytes sparen: Try It Online! Sie können Ihrer Antwort wahrscheinlich die Python 2-Version hinzufügen.
Stephen
@ Stephen Guter Punkt! Aktualisiert.
Russell Schwartz
0

C99, 58 Zeichen

Die folgende Funktion füllt ein Array von Ganzzahlen mit den ersten nWerten aus der Fibonacci-Sequenz, beginnend mit 0.

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

Testgeschirr nals Befehlszeilenargument:

#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
quelle
0

CoffeeScript, 48

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

65 in js:

function f(n,i,j){if(n>0)console.log(i),f(n-1,(j=j||1),(i||1)+j)}
Ricardo Tomasi
quelle
0

PHP, 87

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

Verwendet array_sumund rekursive Funktion zum Generieren von Serien.

Z.B:

 $ php5 fibo.php 9
 0 1 1 2 3 5 8 13 21 34 
karthik
quelle
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
quelle
0

Scala, 65 Zeichen

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

Dies druckt zum Beispiel die ersten 9 Fibonacci-Zahlen. Für eine benutzerfreundlichere Version, bei der die Sequenzlänge von der Konsoleneingabe übernommen wird, sind 70 Zeichen erforderlich:

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

Beachten Sie, dass die Verwendung eines Bereichs dies auf Int-Werte begrenzt.

Don Mackenzie
quelle
0

Q 24

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

Erste n Fibonacci-Zahlen

sinedcm
quelle
0

Lua, 85 Bytes

Ich lerne Lua und möchte diese Sprache dem Pool hinzufügen.

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

und das Ganze dauerte 85 Zeichen, mit dem Parameter als Befehlszeilenargument. Ein weiterer guter Punkt ist, dass es leicht zu lesen ist.

Katze
quelle
0

FALSE, 20 Zeichen

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

Die Eingabe sollte sich auf dem Stapel befinden, bevor dies ausgeführt wird.

12Me21
quelle
0

Pyt , 3 Bytes

ř⁻Ḟ

Probieren Sie es online aus!

ř erstellt ein Array [1, 2, 3, ..., x]
⁻ Dekrementiert jedes Element einmal (da Ḟ 0 indiziert ist)
Ḟ konvertiert es für jedes Element in x in sein Fibonacci-Äquivalent

FantaC
quelle
0

x86-Maschinencode - 379 Bytes

Die Version mit ELF-Headern mit 484 Bytes:

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                                .@..

Headerless-Version (das ist die zu bewertende Version):

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.......

Krzysztof Szewczyk
quelle