Sie sollten ein Programm oder eine Funktion schreiben, die Ganzzahlen als Eingabe empfängt und ausgibt oder zwei Ganzzahlen zurückgibt, deren Summe die erste ist.
Es gibt noch eine weitere Anforderung: Für zwei verschiedene Eingänge kann keine Nummer Teil der Ausgabe sein .
Einzelheiten
- Sie sollten in der Lage sein, Eingaben für mindestens den Bereich
-32768 .. 32767
(einschließlich) zu verarbeiten. - Wenn Ihr Datentyp nicht mit beliebigen ganzen Zahlen umgehen kann, ist das in Ordnung, aber Ihr Algorithmus sollte theoretisch für beliebige große und kleine Zahlen funktionieren.
Beispiele
Jeder Block zeigt einen Teil einer korrekten oder falschen Lösung im Format input => output
.
1 => 6 -5
2 => -2 4
15 => 20 -5
Incorrect, as `-5` is used in two outputs.
-5 => -15 10
0 => 0 0
1 => 5 6
2 => -5 7
Incorrect, as `5 + 6` isn't `1`.
-1 => -1 0
0 => 6 -6
2 => 1 1
Can be correct if other outputs doesn't collide.
Dies ist Code Golf, so dass der kürzeste Eintrag gewinnt.
Antworten:
Pyth, 8 Bytes
Demonstration. Entspricht dem Python 2-Code:
Die Ausgabe hat also Form
(-n**3, n+n**3)
Einige Ausgänge:
Diese sind unterschiedlich, da die Würfel so weit voneinander entfernt sind, dass das Hinzufügen
n
zun**3
nicht ausreicht, um die Lücke zum nächsten Würfel zu überschreiten:n**3 < n+n**3 < (n+1)**3
für positivn
und symmetrisch für negativn
.quelle
,
am Anfang nicht, zwei Zeilen scheinen erlaubt zu sein.J
unterdrückt die Zuordnung das Drucken?-
in pyth ist nicht der unäre negationsoperator_
, es_J^Q3+QJ
funktioniert also wie erwartet.J
um nicht draußen zu sein. Danke, dass du mich darüber gestoßen hast.Schneemann 0.1.0 , 101 Zeichen
Eingabe auf STDIN, durch Leerzeichen getrennte Ausgabe auf STDOUT.
Dies verwendet dieselbe Methode wie die Antwort von isaacg.
Kommentierte Version mit Zeilenumbrüchen für "Lesbarkeit":
Kommentar zur allerersten Snowman-Lösung für PPCG: Ich denke, mein Designziel, meine Sprache so verwirrend wie möglich zu gestalten, wurde erreicht.
Das hätte tatsächlich viel kürzer sein können, aber ich bin ein Idiot und habe vergessen, negative Zahlen für das Parsen von Strings -> Zahlen zu implementieren. Also musste ich manuell prüfen, ob es ein
-
als erstes Zeichen gab und es entfernen, wenn ja.quelle
Pyth,
1511 Bytes4 Bytes dank @Jakube
Demonstration.
Diese Karte sieht wie folgt aus:
Und so weiter, immer mit
n^2
undn^2 + n
, plus oder minus.quelle
APL, 15 Bytes
Dies erzeugt eine unbenannte monadische Funktion, die das Paar -n ^ 3 (
-⍵*3
), n + n ^ 3 (⍵+⍵*3
) zurückgibt .Sie können es online versuchen .
quelle
Pyth -
1110 BytesMultipliziert einfach mit
10e10 und -10e10 + 1Vielen Dank an @xnor, dass er mir gezeigt hat, dass ich ihnCG
für die Zahl verwenden kann.Probieren Sie es hier online aus .
quelle
CG
.O ,
17 159 BytesVerwendet einige neue Funktionen von O.
Ältere Version
quelle
Python 3,
2927Bearbeiten: Erfüllt nicht die Anforderung im 2. Aufzählungspunkt "Details"
Bonus: Es funktioniert von -99998 bis einschließlich 99998
Dadurch wird eine anonyme Funktion * erstellt, die Sie verwenden können, indem Sie in Klammern setzen und das Argument anschließend wie folgt in Klammern setzen:
* Danke an @ vioz- für den Vorschlag.
Beispiel Eingabe / Ausgabe:
quelle
f=
und als anonyme Funktion belassen, was immer noch eine gültige Antwort ist. Dann können Sie Ihre Byteanzahl auf 27 reduzieren :)(lambda n:[99999*n,-99998*n])(99999)
und(lambda n:[99999*n,-99998*n])(-99998)
wird in der Theorie (und in der Praxis) kollidieren.Haskell, 16 Bytes
Ich habe schamlos die Methode von @ xnor kopiert. Es gibt wahrscheinlich nicht viel besseres als das.
quelle