Durchschnitt aus zwei Listen
Herausforderung
Bestimmen Sie anhand von zwei Listen positiver Ganzzahlen, ob es möglich ist, die Elemente in zwei neue Listen umzuordnen, sodass die neuen Listen das gleiche arithmetische Mittel (Durchschnitt) haben.
Eingang
Die Eingabe kann über STDIN oder als Funktionsargumente erfolgen. Die Eingabe kann als Liste verwendet werden. Wenn Ihre Sprache keine Listen unterstützt (oder ähnliche Elemente wie Arrays / Wörterbücher), kann die Eingabe als durch Kommas oder Leerzeichen getrennte Zeichenfolge verwendet werden. Das ist,
"1 4 8 2 5,3 1 5 2 5"
ist das gleiche wie:
[ [1,4,8,2,5], [3,1,5,2,5] ]
Alle Eingabelisten haben die gleiche Länge.
Ausgabe
Wenn Sie zwei neue Listen mit demselben Durchschnitt erstellen können, sollte Ihr Programm / Ihre Funktion den Mittelwert drucken oder zurückgeben. Wenn Sie nicht können, sollte Ihr Programm ein trauriges Gesicht ausgeben :(
.
Beachten Sie, dass die neu angeordneten Listen mit gleichen Mitteln, falls vorhanden, nicht dieselbe Länge haben müssen. Es können beliebig viele Swaps durchgeführt werden, um die neuen Listen zu erstellen.
Beispiele
1 4 8 2 5,3 1 5 2 5 -> 1 4 8 2 3,5 1 5 2 5 (swapped 3 and 5) -> 3.6
1 3 6 2,16 19 19 14 -> [[1,6,19,14],[3,2,16,19]] -> 10
2 6 2,6 3 5 -> 2 6,2 6 3 5 (moved 2) -> 4
90 80 20 1,40 60 28 18 -> :(
Dies ist Code-Golf, so dass der kürzeste Code in Bytes gewinnt. Standardschlupflöcher sind wie immer nicht zulässig.
quelle
Antworten:
Pyth, 24 Bytes
Probieren Sie es online aus: Demonstration
Vielen Dank an Dennis, der einen Fehler bemerkt und ein Byte Golf gespielt hat.
Erläuterung:
quelle
.O
)SWI-Prolog, 159 Bytes
Genannt als
a([1,4,8,2,5],[3,1,5,2,5]).
quelle
Julia, 101 Bytes
Dadurch wird eine Funktion erstellt, die zwei Arrays akzeptiert und entsprechend eine Zeichenfolge oder einen Gleitkommawert zurückgibt.
Ungolfed + Erklärung:
quelle
R, 94 Bytes
Im Grunde das gleiche wie Jakubes, denke ich. Wenn der Mittelwert beider Listen mit dem Mittelwert einer beliebigen Kombination der Werte in Listen übereinstimmt, jedoch die kombinierte Länge der Liste nicht einschließt, geben Sie den Mittelwert aus, andernfalls das traurige Gesicht.
Testlauf
quelle
Gelee , 22 Bytes
Probieren Sie es online aus!
Fertig mit Hilfe von Mr. Xcoder im Chat
Erläuterung
quelle
2 6 2,6 3 5 -> 2 6,2 6 3 5 (moved 2) -> 4
. Sie teilen es jetzt nur in zwei Teile gleicher Länge auf.