Sie sollten ein Programm oder eine Funktion schreiben, die eine nicht negative Ganzzahl Nals Eingabe und Ausgabe verwendet oder zwei Ganzzahlen (negativ, null oder positiv) Xund zurückgibt Y.
Ganzzahlen sind im mathematischen Sinne gemeint, da es unendlich viele davon gibt.
Die implementierte Funktion muss bijektiv sein . Dies bedeutet, dass für jedes Nein anderes X YPaar X Yausgegeben werden muss und jedes Paar für eine Eingabe ausgegeben werden sollte, dh für einige sollten Nalle folgenden Paare ausgegeben werden N:
...
┌─────┬─────┬────┬────┬────┐
│-2 -2│-2 -1│-2 0│-2 1│-2 2│
├─────┼─────┼────┼────┼────┤
│-1 -2│-1 -1│-1 0│-1 1│-1 2│
├─────┼─────┼────┼────┼────┤
... │0 -2 │0 -1 │0 0 │0 1 │0 2 │ ...
├─────┼─────┼────┼────┼────┤
│1 -2 │1 -1 │1 0 │1 1 │1 2 │
├─────┼─────┼────┼────┼────┤
│2 -2 │2 -1 │2 0 │2 1 │2 2 │
└─────┴─────┴────┴────┴────┘
...
Beachten Sie, dass U Vund V Uverschiedene Paare sind, wenn U!=V.
Einzelheiten
- Wenn Ihre Sprache keine willkürlich großen Ganzzahlen unterstützt, ist dies in Ordnung, aber Ihr Algorithmus sollte mit einem willkürlich großen Ganzzahldatentyp arbeiten. Ihr Code sollte mindestens noch Eingabewerte unterstützen
2^31-1. - Wenn Sie die Ausgabe als Zeichenfolge drucken oder zurückgeben möchten, sind keine führenden Zeichen
0oder+Zeichen zulässig. Andernfalls ist die standardmäßige Ganzzahldarstellung Ihrer Sprache in Ordnung.
Beispiel
Wenn die Aufgabe darin bestehen würde, eine bijektive Funktion zu erstellen, die eine nicht negative Ganzzahl verwendet Nund eine Ganzzahl ausgibt, Xkönnte eine Lösung die Funktion sein
if (input mod 2 == 0) return N/2 else return -(N+1)/2,
in einer Sprache implementiert. Diese Funktion gibt X = 0 -1 1 -2 2...für zurück N = 0 1 2 3 4....

10=>11 12, 9=>10 11ist das ungültig, weil 11 wiederholt wird?