Imaginärquadratische Klassenzahl
Geben Sie ein quadratfreies d ein und erhalten Sie die exakte Klassenzahl von Q(√−d): Für 23 ist die Diskriminante −23 und die Klassenzahl 3, für 1, die gaußschen rationalen Zahlen, ist sie 1. 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
- D
- 23
- Diskriminante
- -23
- Klassenzahl
- 3
Dieser Rechner nimmt eine positive quadratfreie ganze Zahl d entgegen und ermittelt die Klassenzahl von Q(sqrt(-d)). Er bestimmt zuerst die Fundamentaldiskriminante und zählt anschließend deterministisch die primitiven, positiv definiten reduzierten binären quadratischen Formen. Das exakte Ergebnis nennt auch die verwendete Diskriminante, sodass Sie Aufgaben, Tabellen und Experimente ohne entfernte Datenbank prüfen können.
Was die Klassenzahl angibt
Jeder imaginärquadratische Zahlkörper Q(√−d) besitzt eine Idealklassengruppe, und die Klassenzahl zählt ihre Elemente. Ist sie 1, so ist jedes gebrochene Ideal ein Hauptideal; größere Werte zeigen, wie stark die Zerlegung von Idealen von Hauptidealen abweicht. Berechnet wird sie über primitive, positiv definite binäre quadratische Formen: Jeder Idealklasse entspricht eine Formenklasse derselben Diskriminante, und jede Klasse hat genau einen reduzierten Vertreter. Für 23 lautet die Diskriminante −23, und es gibt 3 reduzierte Formen.
So wird gerechnet, und typische Fehler
Zuerst wird die Fundamentaldiskriminante gewählt: Lässt d beim Teilen durch 4 den Rest 3, ist sie −d, sonst −4d. Danach werden a und b in endlichen Grenzen durchlaufen, c folgt aus der Diskriminante, und es bleiben nur Formen, bei denen der Betrag von b höchstens a und a höchstens c ist, mit nichtnegativem b am Rand und größtem gemeinsamem Teiler 1. Das Ergebnis ist exakt, ohne Näherung oder externe Tabelle. Häufige Fehler sind −d statt −4d, wodurch eine Ordnung im Körper statt des ganzen Ganzheitsrings gezählt wird, und ein d, das nicht quadratfrei ist, etwa 12, das durch 4 teilbar ist.
Vom quadratfreien Radikanden zur Diskriminante
Die Eingabe d bezeichnet Q(sqrt(-d)), doch die Formendiskriminante ist nicht immer -d. Gilt d gleich 3 modulo 4, lautet die Fundamentaldiskriminante -d; sonst ist sie -4d. Diese Unterscheidung verhindert, dass eine Ordnung statt des vollen Ganzheitsrings gezählt wird.
Der Rechner wendet die Regel an und gibt die Diskriminante aus. d muss positiv und quadratfrei sein: 5 ist zulässig, 12 wegen des Teilers 4 nicht. Die Ablehnung nicht quadratfreier Werte erhält eine eindeutige Körperbeschreibung. Die veröffentlichte Obergrenze sorgt zudem für eine schnelle, planbare Ausführung in Ihrem Browser.
Wie reduzierte Formen die Klassenzahl liefern
Für eine negative Fundamentaldiskriminante D entsprechen Idealklassen den Klassen primitiver positiver Formen ax^2+bxy+cy^2 mit b^2-4ac=D. Jede Klasse besitzt einen reduzierten Vertreter. Der Algorithmus zählt a und b in endlichen Grenzen auf, berechnet c und behält |b|<=a<=c.
An |b|=a oder a=c wird nur nichtnegatives b zugelassen, um Doppelzählungen zu vermeiden; gcd(a,b,c)=1 sichert die Primitivität. Die Schranke a<=sqrt(|D|/3) garantiert das Ende. Das Ergebnis ist exakt und benötigt weder Näherung, Zufall, externe Tabellen noch Heuristiken.
Anwendungsfälle
Aufgabe überprüfen
Prüfen Sie eine manuelle Aufzählung reduzierter positiver Formen.
Kleine Tabelle erstellen
Verarbeiten Sie quadratfreie Radikanden mit Diskriminante und exakter Anzahl.
Andere Implementierung testen
Vergleichen Sie idealbasierte Programme, Formeln oder andere Konventionen.
Häufige Fragen
Welche Eingaben sind zulässig?
Eine positive quadratfreie ganze Zahl d von 1 bis 1,000,000,000.
Warum muss d quadratfrei sein?
So beschreibt d den Körper eindeutig und bestimmt seine Fundamentaldiskriminante.
Welche Diskriminante wird verwendet?
-d für d gleich 3 modulo 4, andernfalls -4d.
Was wird genau gezählt?
Primitive, positiv definite reduzierte ganzzahlige binäre quadratische Formen.
Was bedeutet die Klassenzahl 1?
Sie bedeutet, dass jedes gebrochene Ideal des Körpers ein Hauptideal ist. Größere Werte messen, wie weit die Zerlegung von Idealen von reinen Hauptidealen abweicht; für 23 beträgt die Klassenzahl zum Beispiel 3.
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/numth/class-number-imaginary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"d":23}'const res = await fetch("https://api.kit.forhosting.com/numth/class-number-imaginary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"d": 23
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/class-number-imaginary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"d": 23
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/class-number-imaginary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"d":23}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"d":23}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/class-number-imaginary", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"d": 23
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.class_number_imaginary",
"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_d | 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
Ergebnis lesen und prüfen
Eins bedeutet, dass jedes gebrochene Ideal ein Hauptideal ist; größere Werte messen fehlende Hauptgeneratoren, nicht ein Versagen der eindeutigen Idealzerlegung. Die direkte Aufzählung eignet sich für mäßige Eingaben, nicht für riesige Forschungsläufe. Die Antwort enthält d, die Fundamentaldiskriminante und class_number. Bekannte Prüfwerte sind d=1 mit Klassenzahl eins und d=23 mit Diskriminante -23 und Klassenzahl drei. Eine API-Anfrage kostet $0.002; im Browser läuft dieselbe reine Berechnung lokal. Ohne Netzwerk, Uhr oder Zufall liefert dieselbe Eingabe stets dasselbe JSON.
Technische Fragen
Ist das Ergebnis angenähert?
Nein, die endliche Aufzählung verwendet exakte Ganzzahlarithmetik.
Was kostet eine API-Anfrage?
Jede Anfrage kostet $0.002; die Browserberechnung ist kostenlos.