(Ein Paradoxon, ein Paradoxon, ein genialstes Paradoxon)
Dies ist der erste Teil einer mehrteiligen Serie, die von verschiedenen R-Funktionen inspiriert ist.
Die Aufgabe
Ausgehend von einem Datensatz mit positiven ganzen Zahlen müssen Sie die 5-stellige Zusammenfassung von berechnen . Da ich jedoch an großen Datenmengen arbeite, muss Ihr Code so klein wie möglich sein, damit ich ihn auf meinem Computer speichern kann.
Die Fünf-Nummern-Zusammenfassung besteht aus:
- Mindestwert
- Erstes Quartil (Q1)
- Median / Zweites Quartil (Q2)
- Drittes Quartil (Q3)
- Maximalwert
Es gibt verschiedene Möglichkeiten, die Quartile zu definieren, aber wir werden die von R implementierte verwenden:
Definitionen:
- Minimum und Maximum: der kleinste bzw. der größte Wert.
- Median: der mittlere Wert, wenn eine ungerade Anzahl von Einträgen hat, und das arithmetische Mittel der beiden am weitesten in der Mitte liegenden Werte, wenn eine gerade Anzahl von Einträgen hat. Beachten Sie, dass dies bedeutet, dass der Median ein nicht ganzzahliger Wert sein kann. Wir mussten vorher den Median berechnen .
- Erstes und drittes Quartil: Teilen Sie die Daten in zwei Hälften, einschließlich des zentralen Elements in jeder Hälfte, wenn eine ungerade Anzahl von Einträgen aufweist, und ermitteln Sie den Medianwert jeder Hälfte. Der Median der unteren Hälfte ist das erste Quartil und der Median der oberen Hälfte ist das dritte Quartil.
Beispiele:
. Der Median ist dann , und die untere Hälfte ist , was ein erstes Quartil von ergibt, und die obere Hälfte ist , was ein drittes Quartil von ergibt.
. Der Median ist , und die untere Hälfte ist , was ein erstes Quartil von ergibt, und die obere Hälfte ist , was ein drittes Quartil von ergibt.
Zusätzliche Regeln:
- Die Eingabe erfolgt als Array oder als das nächste Äquivalent Ihrer Sprache.
- Sie können davon ausgehen, dass das Array in aufsteigender oder absteigender Reihenfolge sortiert ist (geben Sie jedoch an, welche).
- Sie können die Ergebnisse in jeder Rückkehr / drucken konsistente Reihenfolge und in je nachdem , was flexibles Format Sie wollen, aber bitte den Auftrag und das Format in Ihrer Antwort bezeichnen.
- Eingebaute Funktionen, die äquivalent zu
fivenum
sind , sind zulässig, aber bitte implementieren Sie auch Ihre eigene Lösung. - Sie können nicht davon ausgehen, dass jede der fünf Zahlen eine Ganzzahl ist.
- Erklärungen sind erwünscht.
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in jeder Sprache!
Nach dem Zufallsprinzip generierte Testfälle
1 1 1 1 1 2 2 2 2 2 3 3 4 4 4 4 4 5 5 5 -> 1 1.5 2.5 4 5
1 2 2 2 4 4 5 5 6 7 7 8 9 9 9 9 9 10 10 10 -> 1 4 7 9 10
2 2 2 6 8 10 15 16 21 22 23 24 26 33 35 38 38 45 46 47 48 -> 2 10 23 38 48
1 2 9 -> 1 1.5 2 5.5 9
1 2 3 3 3 4 9 -> 1 2.5 3 3.5 9
1 1 2 5 7 7 8 8 15 16 18 24 24 26 26 27 27 28 28 28 29 29 39 39 40 45 46 48 48 48 48 49 50 52 60 63 72 73 79 85 86 87 88 90 91 93 94 95 95 97 100 -> 1 25 45 76 100
2 2 4 4 6 8 10 11 13 14 14 15 17 21 23 24 26 27 27 28 28 30 31 33 33 34 36 36 38 38 39 40 41 42 42 43 45 45 47 47 47 47 47 48 48 48 50 51 53 53 55 56 56 56 57 57 58 62 62 63 64 64 65 65 66 67 67 67 68 69 69 71 71 71 74 79 80 81 81 81 82 82 83 83 86 86 86 87 89 94 94 94 95 95 97 98 99 100 100 100 -> 2 33.5 54 76.5 100
1 3 3 4 -> 1 2 3 3.5 4
1 3 3 3 4 -> 1 3 3 3 4
quantile
ein benannter Vektor zurückgegeben wird, währendfivenum
unbenannt ist. Vielleicht ist das ein Problem hinter dem, wofivenum
verwendet wird?