Sternsche diatomische / Stern–Brocot-Folge
Ermitteln Sie jedes Glied der diatomischen Folge von Stern aus seinem Index: s(10) ist 3, berechnet in ganzzahligen Schritten, die den Index jeweils halbieren, sodass auch große Indizes exakt bleiben. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- N
- 10
- Stern-Wert
- 3
- Rekursion
- s(0)=0; s(1)=1; s(2k)=s(k); s(2k+1)=s(k)+s(k+1)
Sterns diatomische Folge ist eine klassische ganzzahlige Folge, eng verknüpft mit dem Stern–Brocot-Baum positiver Rationalzahlen. Sie wird durch zwei Startwerte und eine Teilungsregel nach der Parität des Index definiert: s von null ist null, s von eins ist eins; wenn der Index gerade und gleich zwei k ist, gleicht das Glied s von k; wenn er ungerade und gleich zwei k plus eins ist, gleicht das Glied s von k plus s von k plus eins. Die resultierende Liste beginnt null, eins, eins, zwei, eins, drei, zwei, drei, eins, vier, drei, fünf, zwei, fünf, drei, vier und setzt sich mit der bemerkenswerten Eigenschaft fort, dass aufeinanderfolgende Glieder stets teilerfremd sind.
So entsteht die Folge
Die Folge beginnt mit zwei Startwerten: s(0) ist 0 und s(1) ist 1. Jedes weitere Glied hängt nur davon ab, ob der Index gerade oder ungerade ist. Bei einem geraden Index übernehmen Sie einfach den Wert beim halben Index. Bei einem ungeraden Index addieren Sie die beiden Glieder um die Hälfte herum, also s(k) und s(k + 1). So entstehen die ersten Glieder 0, 1, 1, 2, 1, 3, 2, 3, 1, 4, 3, 5, 2, 5, 3, 4. Weil der Index bei jedem Schritt etwa halbiert wird, braucht selbst ein großer Index nur wenige Schritte, und da nur ganze Zahlen addiert werden, entsteht kein Rundungsfehler.
Was die Folge besonders macht
Zwei benachbarte Glieder sind immer teilerfremd. Liest man die Quotienten aufeinanderfolgender Glieder, erscheint jede positive rationale Zahl genau einmal, bereits gekürzt. Diese Aufzählung entspricht dem Stern-Brocot-Baum, Ebene für Ebene gelesen. Im Unterricht zeigt die Folge, wie zwei einfache Regeln alle Brüche ordnen, und beim Training für Programmierwettbewerbe dient sie als zuverlässige Kontrolle eigener Lösungen. Beachten Sie, dass die Zählung bei s(0) beginnt und negative Indizes nicht erlaubt sind.
Was Sterns diatomische Folge ist und wie die gerade/ungerade Rekursion funktioniert
Beginnen Sie mit den Keimen s von null gleich null und s von eins gleich eins. Für jeden späteren Index hängt die Regel nur von der Parität ab. Ist n gerade, schreiben Sie n gleich zwei k und setzen s von n gleich s von k — derselbe Wert erscheint bei halb so großem Index.
Ist n ungerade, schreiben Sie n gleich zwei k plus eins und setzen s von n gleich s von k plus s von k plus eins. Einige Schritte abrollen liefert null, eins, eins, zwei, eins, drei, zwei, drei, eins, vier, drei, fünf, zwei, fünf, drei, vier, eins, fünf, vier, sieben, drei und so weiter.
Benachbarte Paare sind stets teilerfremd, jede positive rationale Zahl erscheint genau einmal als aufeinanderfolgendes Verhältnis s von m über s von m plus eins beim Durchlaufen der Folge, und diese Aufzählung ist genau der Stern–Brocot-Baum, der in der Breite abgeflacht ist. Dieselbe Rekursion heißt je nach Darstellung manchmal Calkin–Wilf- oder Stern–Brocot-Folge; dieses Werkzeug nutzt die standardmäßige diatomische Form mit s von null gleich null. Weil jeder Schritt exakte Ganzzahladdition oder reines Index-Halbieren ist, gibt es keinen Rundungsfehler und keine Abhängigkeit von Wanduhrzeit oder Zufallskeimen.
Wenn Sie nur ein einzelnes Glied brauchen, senden Sie den Index n; die Antwort echoiert n, den Stern-Wert, eine kurze Formelzeichenkette für die geraden und ungeraden Fälle und die vollständige Beschreibung der Rekursionskeime, damit Bewerter und Studierende von Hand oder auf Papier nachrechnen können.
Praktische Tipps, Grenzen und verwandte Suchen
Beim Benoten prüfen Sie sowohl das Feld stern als auch die Formelzeichenkette, damit eine falsche Rekursion oder eine Fibonacci-Verwechslung leicht zu diagnostizieren ist. Geschwisterseiten in diesem Kit decken andere Folgen- und Figurierten-Absichten wie Padovan-Zahlen, Dreieckszahlen, Polygonalzahlen und Summen arithmetischer Reihen ab; diese Seite ist speziell für Personen, die nach einem Stern–Brocot-Folgenrechner, sternschen diatomischen Zahlen oder dem n-ten Glied von Sterns Folge suchen.
Behandeln Sie die ganze Zahl nicht allein als Blackbox — koppeln Sie sie beim Unterrichten mit den dokumentierten geraden und ungeraden Regeln, damit alternative OEIS-Offsets nicht mit der hier verwendeten Konvention s von null gleich null verwechselt werden. Decken Sie n bei einer Milliarde, damit jede Anfrage beschränkt bleibt; brauchen Sie größere Indizes, wechseln Sie zu Big-Integer-Werkzeugen außerhalb dieses kostenlosen Parse-Pfads.
Anwendungsfälle
Validatoren für Programmierwettbewerbe und Interviews
Prüfen Sie Kandidatenlösungen zu Stern-Folge- oder Stern–Brocot-Baum-Problemen, ohne die Rekursion in jedem Sprach-Harness neu zu implementieren.
Lehrdemos teilerfremder aufeinanderfolgender Paare und rationaler Aufzählung
Projizieren Sie n, stern, formula und recurrence im Unterricht, damit Lernende die Keime, die geraden und ungeraden Regeln und sehen, wie aufeinanderfolgende Verhältnisse die positiven Rationalzahlen abdecken.
Häufige Fragen
Was ist Sterns diatomische Folge?
Die Folge definiert durch s(0)=0, s(1)=1, s(2k)=s(k) und s(2k+1)=s(k)+s(k+1). Sie beginnt 0, 1, 1, 2, 1, 3, 2, 3, 1, 4, 3, 5, … und ist mit dem Stern–Brocot-Baum verknüpft.
Warum heißt sie Stern–Brocot?
Das Durchlaufen aufeinanderfolgender Paare s(n)/s(n+1) zählt jede positive rationale Zahl genau einmal auf — dieselbe Struktur wie der Stern–Brocot-Baum der Brüche. Die Folge selbst ist Sterns diatomische Folge.
Was sind s(0) und s(1)?
Unter der hier verwendeten Konvention gilt s(0)=0 und s(1)=1. Jedes spätere Glied folgt den Regeln für geraden und ungeraden Index. Die Antwort echoiert stets die Rekursion, damit die Keime explizit sind.
Wie berechne ich s(10) von Hand?
Halbieren Sie den Index, solange er gerade ist, und teilen Sie ihn auf, wenn er ungerade ist. Da 10 gerade ist, gilt s(10) gleich s(5); 5 ist ungerade, also ist s(5) gleich s(2) plus s(3), das heißt 1 plus 2, also 3.
Warum haben benachbarte Glieder nie einen gemeinsamen Teiler?
Das ist eine Eigenschaft der Folge: Benachbarte Glieder sind immer teilerfremd. Deshalb durchlaufen die Quotienten s(m) durch s(m + 1) jeden positiven Bruch genau einmal, bereits vollständig gekürzt, und bilden so den Stern-Brocot-Baum ab.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/math/stern-brocot \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/math/stern-brocot", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/stern-brocot",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/stern-brocot", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/stern-brocot", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"n": 10
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.stern_brocot",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_n | 1000000000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Wie Sie die API aufrufen und was zurückkommt
Eine erfolgreiche Antwort enthält n echoiert, stern gleich s von n, formula gleich den kompakten geraden und ungeraden Regeln, und recurrence, das die Keime zusammen mit s von zwei k gleich s von k und s von zwei k plus eins gleich s von k plus s von k plus eins dokumentiert. Nutzen Sie es aus Hausaufgaben-Pipelines, Programmierwettbewerbs-Validatoren, Interview-Vorbereitungs-Sandboxes, Notebook-Anreicherungsjobs oder jedem Workflow, der ein reproduzierbares Stern-Glied braucht, ohne spezialisierte Folgenpakete auf jeder Maschine zu installieren. Für Multipräzisions-Indizes jenseits dieser Grenze verwenden Sie einen eigenen Big-Integer-Stack statt dieser leichten Parse-Fähigkeit. Senden Sie einen JSON-Körper mit einem einzigen Pflichtfeld n: eine nichtnegative ganze Zahl höchstens eine Milliarde, der Index des gewünschten Stern-Glieds. Alias index und order werden mit derselben Bedeutung akzeptiert. Fehlgeschlagene Validierung — fehlendes n, Nicht-Ganzzahl, Bruch, Wert über dem veröffentlichten Limit von einer Milliarde oder irgendeine negative Zahl — liefert invalid_input und wird nie berechnet. Die Preisgestaltung ist pauschal $0.002 pro erfolgreicher Anfrage mit Einheitsposten und null marginalem Stückpreis. Halten Sie n innerhalb der veröffentlichten Obergrenze; der gerade/ungerade Gang ist logarithmisch in n, sodass eine einzelne Anfrage auf dem Worker und im Browser günstig bleibt.
Praktische Tipps, Grenzen und verwandte Suchen
Bevorzugen Sie gepaarte Unterrichtsbeispiele: n gleich null ergibt null; n gleich eins ergibt eins; n gleich zehn ergibt drei; n gleich fünfzehn ergibt vier; und ein negatives n demonstriert den harten Ablehnungspfad mit invalid_input. Weil aufeinanderfolgende Glieder stets teilerfremd sind, können Studierende den ggt von s von n und s von n plus eins für kleine n von Hand prüfen und die API treffen. Fehlgeschlagene Tasks, die invalid_input liefern, verbrauchen kein vorausbezahltes Guthaben, was explorative Skripte günstig hält, wenn Nutzer beim Lernen des Vertrags schlechte Werte tippen.
Integrationsbeispiele
Hausaufgaben: das n-te sternsche diatomische Glied berechnen
Geben Sie Studierenden einen Index und prüfen Sie ihren handberechneten Stern-Wert gegen ein deterministisches API- oder kostenloses Browser-Ergebnis mit derselben gerade/ungerade Rekursion und denselben Keimen.
Technische Fragen
Welche Eingaben werden abgelehnt?
Fehlendes n, Nicht-Ganzzahlen, Werte über 1_000_000_000 und jede negative Zahl liefern invalid_input. Diese Fehlschläge werden nicht berechnet.
Ist der Stern–Brocot-Folgenrechner kostenlos?
Das Browser-Tool ist kostenlos und läuft lokal. API-Aufrufe nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreicher Anfrage; Fehlschläge werden nie berechnet.