ForHosting KIT · Entwickler-Tools

Fenwick-Baum-Indexrechner

Geben Sie einen Index ein und sehen Sie, wie sich ein Fenwick-Baum davon aus bewegt: 13 ist binär 1101, das niedrigste gesetzte Bit ist 1, der Update-Schritt führt zu 14 und der Abfrage-Schritt zu 12. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Index
13
Größe
16
Erhalten Sie
Niedrigstes gesetztes Bit
1
Nächster Update-Index
14
Abfrage-Elternknoten
12
Binär
0b1101

Ein Fenwick-Baum, auch binary indexed tree genannt, beantwortet Präfixsummen und Punkt-Updates in logarithmischer Zeit, indem er Teilbereiche speichert, deren Längen Zweierpotenzen sind. Jeder Navigationsschritt hängt von einem Bit-Trick ab: dem niedrigsten gesetzten Bit des aktuellen 1-basierten Index, geschrieben lsb gleich i AND dem Negativen von i im Zweierkomplement. Addiert man dieses lsb, wandert man die Update-Kette; subtrahiert man es, die Präfixabfrage-Kette. Studierende, Wettbewerbsprogrammierer und Bibliotheksautoren brauchen diese Eltern- und Nachfolgeindizes, ohne die Identitäten unter Prüfungsdruck neu abzuleiten. Dieser Fenwick-Baum-Indexrechner akzeptiert einen positiven Index i und optional eine Baumgröße n; er liefert das lsb, den einstufigen Update-Nachfolger und den Abfrage-Elternindex, Binärformen zum Lernen und, wenn n gesetzt ist, den vollständigen Update- und Abfragepfad des klassischen BIT-Codes.

Wie Fenwick-Indizes das niedrigste gesetzte Bit nutzen

In einem 1-basierten binary indexed tree ist die Zelle am Index i für ein zusammenhängendes Segment des zugrundeliegenden Arrays verantwortlich, dessen Länge dem niedrigsten gesetzten Bit von i entspricht. Diese Länge berechnet sich als lsb gleich i AND der Zweierkomplement-Negation von i, oft als i and minus i geschrieben in Sprachen mit modularer Arithmetik auf Festbreiten-Ganzzahlen. Geometrisch isoliert das Umdrehen aller Bits unter dem niedrigstwertigen Einser-Bit diese Zweierpotenz; das bitweise UND mit dem Originalindex ergibt genau diese Potenz.

Die klassische Update-Schleife startet am geänderten Index und ersetzt i wiederholt durch i plus lsb, solange i innerhalb der Baumgröße n bleibt, sodass jeder Schritt zum nächsten Index springt, der das Delta aufnehmen muss. Die klassische Präfixabfrage-Schleife startet am rechten Endpunkt des Präfixes und ersetzt i durch i minus lsb, solange i positiv bleibt, und summiert die verantwortlichen Zellen, die den Bereich von eins bis zum Originalindex überdecken. Zusammen realisieren diese beiden Läufe Bereichssummen über die Inklusion zweier Präfixe.

Ein einzelner Schritt—Update-Nachfolger gleich i plus lsb, Abfrage-Elternindex gleich i minus lsb—reicht, um Off-by-one-Fehler zu debuggen, den Verantwortungsbaum an der Tafel zu zeichnen und zu prüfen, dass eine Implementierung den Lehrbuch-Identitäten entspricht, bevor Sie sie in eine Wettbewerbsvorlage oder eine produktive Analyse-Pipeline integrieren.

Wann die Schritte eines Fenwick-Baums helfen

Trainer im Wettbewerbsprogrammieren und Online-Jurys nutzen einen Fenwick-Baum-Indexrechner, damit Lernende Eltern- und Nachfolgerschritte prüfen können, während sie Update- und Abfrageschleifen von Hand schreiben. Interview-Vorbereitungswerkzeuge brauchen ein deterministisches Orakel, das mit jedem Standard-BIT-Tutorial auf denselben ganzzahligen Eingaben übereinstimmt, einschließlich unangenehmer Indizes, die eins unter einer Zweierpotenz liegen. Fehlgeschlagene Validierung wird nicht berechnet.

Halten Sie Indizes im positiven Zweiunddreißig-Bit-Bereich, fixieren Sie die Pfad-Arrays in Tests, wenn size gesetzt ist, und Sie erhalten reproduzierbare Navigation für Hausaufgaben, Dokumentations-Screenshots und Edge-Worker, ohne eine eigene vollständige Datenstruktur-Sandbox aufzubauen.

Interview- und Vorlagenvalidierung

Vergleichen Sie Kandidaten-BIT-Implementierungen mit einem deterministischen Orakel von Update- und Präfixabfrage-Indexfolgen für feste Größen.

Sind Indizes 0-basiert oder 1-basiert?

1-basiert, wie in der Standardformulierung von Fenwick / binary indexed tree. Der Index muss eine Ganzzahl von 1 bis 2147483647 sein.

Warum verwendet man i & -i für das niedrigste gesetzte Bit?

Im Zweierkomplement kehrt -i die Bits unter dem niedrigstwertigen 1-Bit von i um; das bitweise UND isoliert diese Zweierpotenz, genau die Verantwortungslänge der Zelle i.

Welche Pfade hat der Index 13 in einem Baum der Größe 16?

Bei Größe 16 lautet der Update-Pfad 13, 14, 16: die Zellen, die eine Änderung an 13 aufnehmen. Der Abfragepfad lautet 13, 12, 8: die Zellen, deren Summe die Präfixsumme bis 13 ergibt.

Wofür wird ein Fenwick-Baum verwendet?

Er beantwortet Präfixsummen und Änderungen einzelner Werte in logarithmischer Zeit. Jede Zelle speichert einen Teilbereich, dessen Länge eine Zweierpotenz ist, deshalb berühren Summe und Update nur wenige Zellen.

Welche Indizes kann ich eingeben?

Jede ganze Zahl von 1 bis 2147483647, den größten positiven 32-Bit-Wert. Geben Sie zusätzlich eine Baumgröße an, muss sie mindestens so groß wie der Index sein und dieselbe Grenze einhalten.

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.

POSThttps://api.kit.forhosting.com/dev/fenwick-index

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/dev/fenwick-index \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"index":13}'
{
  "index": 13
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.fenwick_index",
  "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.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Die reine deterministische Logik stimmt Byte für Byte zwischen kostenloser Browser-Nutzung und bezahlten API-Aufrufen überein.

Eingabevertrag, Antwortfelder und Validierung

Aliase i, idx und position werden akzeptiert. Beispiel: Index dreizehn hat Binär zero-b one one zero one, niedrigstes gesetztes Bit eins, Update-Nachfolger vierzehn, Abfrage-Elternindex zwölf; mit size sechzehn ist der Update-Pfad dreizehn dann vierzehn dann sechzehn, der Abfragepfad dreizehn dann zwölf dann acht. Senden Sie per POST einen JSON-Body mit dem Pflichtfeld index: eine positive Ganzzahl im geschlossenen Intervall von eins bis zwei hoch einunddreißig minus eins, dem positiven vorzeichenbehafteten Zweiunddreißig-Bit-Maximum, bei dem JavaScript-Bitoperatoren treu bleiben. Das optionale Feld size (Aliase n, n_max, tree_size) ist der Maximalindex des Baums; wenn vorhanden, muss es eine Ganzzahl sein, die mindestens so groß wie index und höchstens dieselbe Obergrenze ist. Fehlende, nicht ganzzahlige, null oder außerhalb des Bereichs liegende Werte scheitern mit invalid_input unter Nennung des Feldes und werden nicht berechnet. Bei Erfolg enthält der Body stets index, lowest_set_bit, update_next, query_parent, binary- und lsb_binary-Zeichenketten mit zero-b-Präfix sowie eine kurze formula-Zeichenkette, die die Identitäten wiederholt. Wenn size angegeben ist, enthält der Body außerdem size, update_path als geordnete Liste der von der Update-Schleife besuchten Indizes, query_path als geordnete Liste der Präfix-Schleife und update_next_in_range als Booleschen Wert, ob der einstufige Update-Nachbar noch im Baum liegt. Kombinieren Sie die Antwort mit Ihrer eigenen Array-Visualisierung, falls Sie ein Diagramm brauchen; dieser Endpoint berechnet nur Indexarithmetik und speichert keine Baumwerte und führt keine Summenabfragen über Benutzerarrays aus.

Wo eine Fenwick-Index-API ihren Nutzen zeigt

Weil die Implementierung pure parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netzwerk.

BIT-Übungen für Wettbewerb und Hausaufgaben

Geben Sie Lernenden den Index i und optional size n; prüfen Sie lowest_set_bit, update_next, query_parent und vollständige Pfade gegen handgeschriebene Fenwick-Schleifen.

Golden Paths für Docs und Bibliotheken

Erzeugen Sie update_path- und query_path-Fixtures für Binary-Indexed-Tree-Dokumentation, Unit-Tests und Portabilitätsprüfungen über Sprachen hinweg.

Wie berechne ich Eltern- und Nachfolgeindizes im Fenwick-Baum?

Senden Sie einen positiven 1-basierten Index i. Die API liefert lsb = i & -i, update_next = i + lsb und query_parent = i - lsb sowie die Binärformen von i und des lsb.

Was bewirkt der optionale Parameter size?

Wenn size n gesetzt ist (n >= index), ergänzt die Antwort update_path (i += lsb solange i <= n) und query_path (i -= lsb solange i > 0), analog zu klassischen BIT-Schleifen.

Was kostet der Fenwick-Baum-Indexrechner?

Das Browser-Tool ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingaben werden nicht berechnet.

Vollständige KIT-Dokumentation lesen →