Betrachten Sie die folgende Zahlenfolge:
Sie zählt alle binären Brüche im Einheitsintervall auf .
(Um diese Herausforderung zu vereinfachen, ist das erste Element optional: Sie können es überspringen und berücksichtigen, dass die Sequenz mit 1/2 beginnt.)
Aufgabe
Schreiben Sie ein Programm (komplettes Programm oder eine Funktion), das ...
Wählen Sie eines dieser Verhaltensweisen:
- Eingabe n, Ausgabe n-tes Element der Sequenz (0-indiziert oder 1-indiziert);
- Eingabe n, Ausgabe der ersten n Elemente der Sequenz;
- Geben Sie nichts ein und geben Sie die unendliche Zahlenfolge aus, die Sie nacheinander abrufen können.
Regel
- Ihr Programm sollte mindestens die ersten 1000 Elemente unterstützen.
- Sie können Dezimalstellen oder Brüche (eingebaute, ganzzahlige Paare, Strings) nach Belieben ausgeben.
- Die Eingabe / Ausgabe als Binärziffern ist in dieser Frage nicht zulässig.
- Das ist Code-Golf , kürzeste Codes gewinnen;
- Standardlücken sind nicht erlaubt.
Testfälle
input output
1 1/2 0.5
2 1/4 0.25
3 3/4 0.75
4 1/8 0.125
10 5/16 0.3125
100 73/128 0.5703125
511 511/512 0.998046875
512 1/1024 0.0009765625
Diese Beispiele basieren auf einer mit 0 indizierten Sequenz, wobei die führende 0 enthalten ist. Sie müssten die Eingabe anpassen, um Ihre Lösung anzupassen.
Weiterlesen
- OEIS A006257
- Josephus-Problem: . (Ehemals M2216)
- 0, 1, 1, 3, 1, 3, 5, 7, 1, 3, 5, 7, 9, 11, 13, 15, 1, 3, 5, ...
- OEIS A062383
- : für , oder .
- 1, 2, 4, 4, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 32, 32, 32, ...
In A006257 (n) / A062383 (n) = (0, 0,1, 0,01, 0,11, 0,001, ...) werden alle binären Brüche im Einheitsintervall [0, 1) aufgelistet. - Fredrik Johansson, 14. August 2006
"1/2" "1/4" "1/8"...
take
später n Elemente daraus können.
int
s, oder double
in einer Sprache / Implementierung, in der double
das IEEE binary64-Format verwendet wird ? Ich hoffe, Sie meinen nicht, dass Sie eine ASCII-Zeichenfolge analysieren müssen, wenn wir eine Ganzzahleingabe vornehmen möchten. Normale Integer-Typen sind in Sprachen wie C binär. Oder heißt das, dass die Eingabe / Ausgabe kein Array oder keine Zeichenfolge aus Integer- oder ASCII-Nullen / Einsen sein kann?