Hashtabelle-Fächerzahl
Eine Hashtabelle ist nur so schnell wie das Array dahinter gut bemessen ist. Speichern Sie n Schlüssel in m Fächern, entscheidet der Auslastungsfaktor α = n / m, wie lang Ketten wachsen, wann offenes Adressieren klumpt und wie oft eine Vergrößerung zündet.
Im Browser ausführen – kostenlos
Wählen Sie m zu klein, läuft jede Suche durch einen Haufen Kollisionen. Wählen Sie m viel zu groß, zahlen Sie RAM für leere Plätze, die der Latenz nicht helfen. Dieser Rechner für die Fächerzahl einer Hashtabelle nimmt die erwartete Elementzahl, einen Ziel-Auslastungsfaktor wie den Java-HashMap-Standard 0.75 und eine Rundungsstrategie und liefert die kleinste zuweisbare Tabelle, die die Belegung bei oder unter diesem Ziel hält. Zuerst berechnet er die rohe Decke ceil(n / α) und rundet diese Untergrenze auf die nächste Zweierpotenz oder die nächste Primzahl — die zwei Größen, die Produktionsmaps tatsächlich anlegen. Zweierpotenzgrößen passen zu maskenbasierten Maps, die mit dem bitweisen UND des Hashs und (m minus eins) indizieren. Primzahlen passen zu modulobasierten Maps, die mit hash mod m indizieren. Dieselbe deterministische Arithmetik speist das kostenlose Browser-Widget und den API-Pfad, sodass ein Dimensionierungsnotizbuch und eine Produktionsvorprüfung niemals uneins sind, wie groß das Fächerarray sein soll.
So verwenden Sie das Werkzeug
Geben Sie Ihre Werte in das Formular oben ein. Das Werkzeug prüft sie vor der Berechnung und zeigt das Ergebnis auf derselben Seite.
Eingaben prüfen
Beachten Sie die Beschriftungen und Einheiten der Felder. Fehlt etwas oder liegt ein Wert außerhalb des erlaubten Bereichs, zeigt die Seite das zu korrigierende Feld.
Erneut berechnen oder automatisieren
Nutzen Sie das Web-Werkzeug für einzelne Prüfungen und die API, wenn Sie dieselbe Funktion automatisieren möchten.
Anwendungsfälle
Sofort ein Ergebnis erhalten
Geben Sie einen Satz Werte ein und sehen Sie das Ergebnis ohne Tabellenkalkulation oder Skript.
Szenarien vergleichen
Ändern Sie jeweils einen Wert und berechnen Sie erneut, um den Einfluss auf das Ergebnis zu sehen.
Wiederholte Aufgaben automatisieren
Nutzen Sie die API, wenn dieselbe Berechnung in Ihrem Produkt oder Ablauf laufen soll.
Häufige Fragen
Wie verwende ich diese Funktion?
Füllen Sie die Felder oben aus und starten Sie sie auf dieser Seite. Das Formular markiert Angaben, die korrigiert werden müssen.
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/dev/hash-table-capacity \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":1000,"load_factor":0.75}'const res = await fetch("https://api.kit.forhosting.com/dev/hash-table-capacity", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": 1000,
"load_factor": 0.75
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/hash-table-capacity",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": 1000,
"load_factor": 0.75
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/hash-table-capacity", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":1000,"load_factor":0.75}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":1000,"load_factor":0.75}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/hash-table-capacity", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"items": 1000,
"load_factor": 0.75
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.hash_table_capacity",
"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_items | 1000000000 |
min_load_factor | 0.05 |
max_load_factor | 1 |
max_buckets | 34359738368 |
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. |