Die Aufgabe:
Gibt einen Wert für aus x
, wobei a mod x = b
für zwei gegebene Werte a,b
.
Annahme
a
undb
wird immer positive ganze Zahlen sein- Es wird nicht immer eine Lösung für geben
x
- Wenn mehrere Lösungen vorhanden sind, geben Sie mindestens eine davon aus.
- Wenn keine Lösungen vorhanden sind, geben Sie nichts oder einen Hinweis darauf aus, dass keine Lösungen vorhanden sind.
- Built-Ins sind erlaubt (nicht so spaßig wie andere mathematische Ansätze)
- Ausgaben sind immer ganze Zahlen
Beispiele
A, B >> POSSIBLE OUTPUTS
5, 2 >> 3
9, 4 >> 5
8, 2 >> 3, 6
6, 6 >> 7, (ANY NUMBER > 6)
8, 7 >> NO SOLUTION
2, 4 >> NO SOLUTION
8, 5 >> NO SOLUTION
10,1 >> 3, 9
Dies ist Code-Golf , also gewinnt das niedrigste Byte.
code-golf
math
number-theory
code-golf
number
integer
code-golf
string
code-golf
music
code-golf
arithmetic
array-manipulation
decision-problem
code-golf
math
rational-numbers
code-golf
code-golf
graphical-output
hardware
code-golf
math
number
code-golf
string
parsing
natural-language
code-golf
tips
brain-flak
code-golf
graph-theory
code-golf
number
polynomials
king-of-the-hill
code-golf
ascii-art
kolmogorov-complexity
animation
king-of-the-hill
code-golf
tips
code-golf
ascii-art
code-golf
string
array-manipulation
data-structures
code-golf
math
number
code-golf
string
base-conversion
binary
code-golf
decision-problem
graph-theory
code-golf
math
polynomials
code-golf
kolmogorov-complexity
physics
code-golf
sequence
number-theory
code-golf
math
integer-partitions
code-golf
array-manipulation
random
permutations
code-golf
string
decision-problem
Graviton
quelle
quelle
Antworten:
JavaScript ,
2827262423 BytesProbieren Sie es online!
false
zeigt keine Lösung an.-1 Danke @Arnauld
quelle
f=...
, und dann aufrufenf(8)(3)
? Das scheint ein bisschen schummelig? Die normale Art, eine Funktion aufzurufen, wäref(8,3)
, was Ihre Funktionsdefinition länger machen würde.(8)(3)
, aber es besteht ein Konsens über PPCG, dass dies zulässig ist . Sie müssen ihm jedoch keinen Namen geben.MATL , 6 Bytes
Probieren Sie es online! Oder überprüfen Sie alle Testfälle .
Erläuterung
Betrachten Eingänge
8
,2
als Beispiel.quelle
Python 2 ,
4034 Bytes-6 Bytes dank Bubbler
Probieren Sie es online!
quelle
lambda a,b:[(a==b)*-~a,a-b][a>b*2]
Gelee , 5 Bytes
Gibt das minimal gültige x zurück oder 0, wenn es kein gibt.
Probieren Sie es online!
quelle
Groovy, 48 Bytes (mit eingebautem):
Eval.me(...+"g")
- Fügt dem Eingang "g" hinzu und macht ihn zu einer BigInteger.modInverse(...)
- Führt die inverse Modulo-Operation aus.Java 8, 70 Bytes
quelle
R ,
3328 BytesProbieren Sie es online!
-4 Bytes dank Jarko Dubbeldam.
-1 Byte danke an Giuseppe.
Gibt zurück,
NA
wenn es keine Lösung gibt. TIO hat die Pryr-Bibliothek nicht installiert, daher wirdfunction(a,b)
stattdessen der Code unter diesem Link verwendet .quelle
pryr::f(which(a%%1:(a+1)==b))
ist 4 Bytes kürzer.match(b,a%%1:(a+1))
, dasNA
für einen fehlenden Wert zurückgibt .Jelly ,
11 bis10 BytesEin vollständiges Programm, das die beiden positiven ganzen Zahlen
a
und verwendetb
und eine Liste der ganzzahligen Lösungen zwischenmin(a,b)+1
undmax(a,b)+1
einschließlich ausgibt.Probieren Sie es online!
quelle
Mathematica 36 Bytes
Eingang:
Ausgabe:
quelle
a_ ±b_
. Aber es ist kürzer zu verwendenCases
stattSelect
eine eine unbenannte Funktion sowieso:Cases[Range[9#],x_/;#~Mod~x==#2]&
Haskell , 33 Bytes
Abstürze mit,
code.hs: out of memory (requested ??? bytes)
wenn es keine Lösung gibt (Timeout bei TIO vorher):Probieren Sie es online!
Vielen Dank an Ørjan Johansen, der einen Fehler entdeckt hat!
quelle
b
dividierena
.C # (Mono C # -Compiler) ,
57 5626 BytesPort of Rods Python Antwort. Danke an WW für -1 Byte.
Vielen Dank an Kevin Cruijssen für -30 Bytes.
Probieren Sie es online!
quelle
return
.i=>{/*code here*/}
) zu verwenden. In diesem Fall kann es jedoch eine aktuelle Lambda-Funktion sein, ein zusätzliches Byte (a=>b=>{/*code here*/}
anstelle von(a,b)=>{/*code here*/}
) zu speichern, da Sie über 2 Eingänge verfügen . Sie können auch die Klammern um Ihre If-Checks entfernen. Insgesamt, ohne dass Ihre Funktionalitäta=>b=>a-b>b?a-b:a==b?a+1:0
Pyth, 16 Bytes
Probieren Sie es online!
Alle Testfälle
Nimmt Eingaben als
[a, b]
, Fehler wenn keine Lösung gefunden wird. Wird überarbeitet, wenn Fehler nicht zulässig sind.quelle
APL (Dyalog Unicode) , 19 Byte
Probieren Sie es online!
Golfen im Gange ...
quelle
Mathematica, 28 Bytes
quelle
PHP> = 7.1, 51 Bytes
Online Version
quelle
Axiom,
147128 Bytesentgolfen und testen
Dies würde die ganze Lösung finden, auch die unendliche Menge Lösung ...
quelle
Pip , 9 Bytes
Nimmt die beiden Zahlen als Befehlszeilenargumente. Gibt die kleinste Lösung aus oder null, wenn keine Lösung vorhanden ist. Probieren Sie es online!
Erläuterung
Zum Beispiel mit Eingabe von
8
und2
:Der auf 0 basierende Index des ersten Vorkommens
2
in dieser Liste ist3
, was unsere Lösung ist.quelle
J , 14 Bytes
Probieren Sie es online!
Übersetzung von Rods Python 2-Lösung .
Wie es funktioniert
Die seltenen Fälle, in denen ein J-Code direkt in Python übersetzt werden kann.
quelle
Japt , 13 Bytes
Probieren Sie es online!
Übersetzung der JS-Lösung von eush77 .
Der Code ist nur
(U-=V)?U>V&&U:-~V
beim Übertragen auf JS, woU
undV
sind die beiden Eingabewerte.quelle
Ruby , 31 Bytes
Probieren Sie es online!
quelle
Japt , 7 Bytes
(Eventuell) Gibt aus,
undefined
wenn es keine Lösung gibt.Probieren Sie es hier aus
quelle
Perl 6 , 23 Bytes
Probieren Sie es online!
Anonymer Codeblock, der eine Liste möglicher Werte von
2
bis zu zurückgibta+1
quelle
ORK , 566 Bytes
Probieren Sie es online!
O Objekte R K ool. Glücklicherweise musste ich für diese Aufgabe keine (außer den eingebauten) verwenden.
quelle
F #, 40 Bytes
Probieren Sie es online!
Ziemlich einfach. Wirft ein,
System.Collections.Generic.KeyNotFoundException
wenn keine Lösung gefunden werden kann.Sie können es auch in ändern
Seq.tryFind
, wodurch eine zurückgegeben wirdint option
,None
wenn keine Lösung gefunden werden kann.quelle
05AB1E , 7 Bytes
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
Java 8, 26 Bytes
Port of @Epicness 'C # antworte , nachdem ich ein bisschen mehr Golf gespielt habe.
Probieren Sie es online aus.
quelle
> <> , 21 Bytes
Gleicher Trick wie bei den meisten veröffentlichten Lösungen. Zuerst bereiten wir alle notwendigen Werte auf dem Stack vor und überprüfen dann die Vergleiche.
Probieren Sie es online!
quelle
Flüstert v2 , 128 Bytes
Probieren Sie es online!
Wie es funktioniert
Es ist nicht überraschend, dass es fast identisch mit den meisten anderen Antworten funktioniert: Es wird eine Liste von Zahlen erstellt und jede mit dem Argument auf den inversen Modul überprüft.
Wenn Sie mit der Programmstruktur von Whispers vertraut sind, können Sie jederzeit zur horizontalen Linie springen. Wenn nicht: Whispers arbeitet im Wesentlichen zeilenweise ab der letzten Zeile. Jede Zeile wird als eine von zwei Optionen eingestuft. Entweder ist es eine Nulllinie oder es ist eine Operatorlinie .
>
> Input
> {0}
> {0}
> Input
>>
>> 1²
>> (3]
²
>> 1²
Normalerweise funktionieren Operatorzeilen nur mit Zahlen als Referenz. Möglicherweise haben Sie jedoch die Zeilen
>> L=2
und bemerkt>> L⋅R
. Diese beiden WerteL
undR
werden in Verbindung mitEach
Anweisungen verwendet.Each
Anweisungen funktionieren, indem zwei oder drei Argumente als numerische Referenzen verwendet werden. Das erste Argument (z. B.5
) ist eine Referenz auf eine Operatorzeile, in der eine Funktion verwendet wird, und die restlichen Argumente sind Arrays. Anschließend iterieren wir die Funktion über das Array, wobeiL
undR
in der Funktion die aktuellen Elemente in den Arrays darstellen, über die iteriert wird. Als Beispiel:Each
Probieren Sie es online!
Wie dieser Code funktioniert
Wir arbeiten kontraintuitiv mit der Arbeitsweise von Whispers und beginnen mit den ersten beiden Zeilen:
>> Each 5 4
>> Each 6 7
Wir springen dann runter zu
Each
>> L⋅R
>> {10}
quelle
C #, 53 Bytes (83 mit Funktionsüberschrift)
Probieren Sie es online
Versuchen Sie es zuerst mit Codegolf. Wahrscheinlich nicht die beste Sprache, noch die effizienteste Codierung.
quelle