Darstellbarkeit mit zwei teilerfremden Münzen prüfen
Erfahren Sie, ob sich ein exakter Betrag aus zwei Münzwerten bilden lässt: Mit Münzen zu 4 und 7 ergibt sich 23 aus vier Münzen zu 4 und einer zu 7. Passt keine Kombination, wird Ihnen das klar gesagt. 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
- Münze a
- 4
- Münze b
- 7
- Ziel
- 23
- Anzahl a
- 4
- Anzahl b
- 1
Der Prüfer für zwei Münzen ermittelt, ob sich ein nichtnegativer Zielbetrag mit beliebig vielen, jedoch nie negativen Stückzahlen zweier vorgegebener Münzwerte bilden lässt. Die Münzwerte müssen teilerfremd sein, wodurch sich die Aufgabe exakt mit modularer Arithmetik lösen lässt. Ist das Ziel darstellbar, enthält das Ergebnis ein genaues Paar von Münzanzahlen; andernfalls wird eindeutig gemeldet, dass kein solches Paar existiert. Das Werkzeug eignet sich für numerische Versuche, Aufgaben der diskreten Mathematik, die Gestaltung von Stückelungen und die Prüfung exakter Mengenkombinationen ohne vollständige Suche.
Formulieren Sie die Aufgabe mit zwei Münzen genau
Darstellbar bedeutet somit weder einen nahe gelegenen Wert noch eine Kombination unterhalb eines Budgets: Die Gleichheit muss genau gelten und keine Anzahl darf negativ sein. Null ist ein gültiges Ziel, da es durch jeweils null Münzen entsteht. Auch ein Münzwert von eins ist zulässig und macht jedes nichtnegative Ziel darstellbar.
Alle drei Eingaben müssen sichere Ganzzahlen sein. Dezimalwerte, Zahlentexte, unendliche Werte und Ganzzahlen außerhalb des exakten JavaScript-Bereichs werden abgewiesen, statt unbemerkt gerundet zu werden. Zusätzlich müssen beide Münzwerte teilerfremd sein; ihr größter gemeinsamer Teiler muss also eins betragen.
Diese Voraussetzung kontrolliert der Prüfer vor der Berechnung.
Deuten Sie Ergebnisse und Eingabefehler
Multiplizieren Sie beide Anzahlen mit ihrem jeweiligen Münzwert, erhalten Sie wieder exakt das Ziel. Das ausgegebene Paar ist ein gültiger Nachweis; für ein hinreichend großes Ziel kann es mehrere Darstellungen geben, die der Prüfer weder vollständig aufzählt noch optimiert. Bei einer falschen Antwort fehlen die Anzahlen, da kein passendes Paar existiert.
Unterscheiden Sie einen Fehler wegen nicht teilerfremder Münzen von einem falschen Ergebnis. Falsch bedeutet, dass die Eingabe dem Vertrag entspricht, das konkrete Ziel aber nicht gebildet werden kann. Ein Fehler bedeutet, dass das Münzpaar außerhalb des festgelegten Bereichs dieser Funktion liegt und daher keine Entscheidung ausgegeben wird.
Beispielsweise haben die Münzen 6 und 9 den gemeinsamen Faktor 3 und werden selbst dann abgewiesen, wenn das Ziel durch 3 teilbar ist. So wird eine unzulässige Eingabe nicht mit mathematischer Unmöglichkeit verwechselt.
Anwendungsfälle
Einen exakten Zahlbetrag prüfen
Ermitteln Sie, ob zwei verfügbare Stückelungen den benötigten Gesamtbetrag bilden, und erhalten Sie gegebenenfalls ein passendes Anzahlpaar.
Eine Aufgabe zur Zahlentheorie kontrollieren
Testen Sie ein Ziel für zwei teilerfremde Münzwerte und vergleichen Sie den ausgegebenen Nachweis mit Ihrer Rechnung.
Kombinationen fester Größen validieren
Modellieren Sie zwei teilerfremde Packungsgrößen als Münzen und prüfen Sie, ob sich eine exakte Menge ohne Teilpackungen zusammenstellen lässt.
Häufige Fragen
Warum müssen die Münzen teilerfremd sein?
Diese Funktion folgt dem Vertrag für zwei teilerfremde Münzen. Dadurch ist das modulare Inverse für den direkten Algorithmus garantiert. Ein Paar mit einem gemeinsamen Teiler größer als eins wird abgewiesen.
Werden alle möglichen Kombinationen ausgegeben?
Nein. Das Werkzeug entscheidet über die Darstellbarkeit und liefert gegebenenfalls einen Nachweis; es zählt nicht alle Paare auf und optimiert sie nicht.
Darf das Ziel null sein?
Ja. Null ist mit jeweils null Münzen beider Stückelungen darstellbar.
Kann ich 23 mit Münzen zu 4 und 7 bezahlen?
Ja. Vier Münzen zu 4 und eine Münze zu 7 ergeben genau 23, und genau diese Kombination wird in diesem Fall ausgegeben. Eine einzige gültige Kombination genügt für ein Ja.
Was ist der Unterschied zwischen einem Nein und einem Fehler?
Ein Nein bedeutet, dass die Münzen zulässig sind, der exakte Betrag aber nicht gebildet werden kann. Ein Fehler zeigt, dass die Münzen einen gemeinsamen Teiler haben, etwa 6 und 9 mit 3, und dann gibt es keine Aussage zum Betrag.
Kann der Zielbetrag null sein?
Ja. Null lässt sich immer bilden, indem Sie von beiden Münzen keine nehmen. Auch eine Münze mit dem Wert 1 ist erlaubt; dann ist jeder nichtnegative Betrag darstellbar.
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/coin-representable-two \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"coin_a":4,"coin_b":7,"target":23}'const res = await fetch("https://api.kit.forhosting.com/numth/coin-representable-two", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"coin_a": 4,
"coin_b": 7,
"target": 23
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/coin-representable-two",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"coin_a": 4,
"coin_b": 7,
"target": 23
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/coin-representable-two", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"coin_a":4,"coin_b":7,"target":23}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"coin_a":4,"coin_b":7,"target":23}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/coin-representable-two", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"coin_a": 4,
"coin_b": 7,
"target": 23
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.coin_representable_two",
"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.
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
Formulieren Sie die Aufgabe mit zwei Münzen genau
Geben Sie zwei positive ganzzahlige Münzwerte als coin_a und coin_b sowie anschließend ein nichtnegatives ganzzahliges Ziel ein. Der Prüfer sucht nichtnegative ganze Zahlen count_a und count_b, sodass die Anzahl der ersten Münzen mal coin_a plus die Anzahl der zweiten Münzen mal coin_b exakt dem Ziel entspricht.
Verstehen Sie die modulare Berechnung
Da die Münzwerte teilerfremd sind, besitzt der erste Wert ein multiplikatives Inverses modulo des zweiten. Nach Abzug des Beitrags dieser ersten Münzen vom Ziel bleibt ein Rest. Ist der Rest negativ, gibt es keine nichtnegative Darstellung. Der Prüfer berechnet dieses Inverse mit dem erweiterten euklidischen Algorithmus und bestimmt damit den eindeutigen Kandidaten für count_a zwischen null und coin_b minus eins, der die erforderliche Kongruenz erfüllt. Ist er nichtnegativ, ist er durch coin_b teilbar und ergibt einen gültigen Wert für count_b; die Antwort enthält beide Anzahlen als konkreten Nachweis. Diese Aussage ist vollständig und keine Näherung: Jede andere ganzzahlige Lösung verändert count_a um ein ganzzahliges Vielfaches von coin_b und count_b in Gegenrichtung um ein ganzzahliges Vielfaches von coin_a. Weil die Berechnung mit dem kleinsten nichtnegativen Kandidaten für count_a beginnt, lässt sich ein negativer Rest nicht beheben, ohne count_a negativ zu machen. Das Verfahren benötigt logarithmische Laufzeit und probiert nicht zahlreiche Münzanzahlen nacheinander aus.
Deuten Sie Ergebnisse und Eingabefehler
Eine Antwort mit wahrem representable enthält count_a und count_b. Die Berechnung ist deterministisch, nutzt keinen Netzwerkdienst und liefert im Browser sowie über die API bei denselben exakten Ganzzahlen dasselbe Ergebnis.
Technische Fragen
Was bedeutet darstellbar?
Das Ziel entspricht coin_a mal count_a plus coin_b mal count_b für bestimmte nichtnegative ganzzahlige Anzahlen.
Enthält ein wahres Ergebnis eine Kombination?
Ja. Die Antwort gibt count_a und count_b als exakte nichtnegative Kombination aus, die das Ziel wiederherstellt.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Die Browserversion kann dieselbe deterministische Berechnung lokal ausführen.