Definitionen
Der k- te Ring einer quadratischen Matrix der Größe N , wobei 1 ≤ k ≤ Decke (N / 2) die Liste ist, die durch die Elemente der k- ten und (N-k + 1) -ten Zeilen und Spalten gebildet wird, jedoch ohne die erstes und letztes k-1 Element.
Beispiel:
Matrix: 1 2 3 4 5 6 7 8 9 1 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 In Ringen getrennt: + ------------------- + | 1 2 3 4 5 | | + ----------- + | | 6 | 7 8 9 | 1 | | | + --- + | | | 8 | 7 | 6 | 5 | 4 | | | + --- + | | | 3 | 2 1 9 | 8 | | + ----------- + | | 7 6 5 4 3 | + ------------------- +
Der erste Ring von oben ist 1,2,3,4,5,1,4,8,3,4,5,6,7,3,8,6
, der zweite ist 7,8,9,5,9,1,2,7
und der dritte ist 6
.
Eine N x N- Matrix positiver Ganzzahlen ist (für die Zwecke dieser Herausforderung):
konkav, wenn alle ganzen Zahlen im k- ten Ring genau größer sind als die im (k + 1) -ten Ring, wobei k eine ganze Zahl zwischen 1 und N ist (die im ersten Ring sind größer als die im zweiten Ring) wiederum größer als die auf der dritten usw.). Beispiel:
4 5 6 4 7 -> weil 4,5,6,4,7,4,8,5,5,4,6,5,9,5,5,4 alle höher sind als 4 3 2 2 4 beliebig von 3,2,2,3,2,3,3,2, die alle höher als 1 sind 5 2 1 3 8 5 3 3 2 5 9 5 6 4 5
flach, wenn alle ganzen Zahlen in der Matrix gleich sind. Ein anderes Beispiel (vielleicht überflüssig):
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
konvex, wenn alle ganzen Zahlen im k- ten Ring genau niedriger sind als die im (k + 1) -ten Ring, wobei k eine ganze Zahl zwischen 1 und N ist (die im ersten Ring sind niedriger als die im zweiten Ring) wiederum niedriger als beim dritten usw.). Beispiel:
1 2 1 -> weil 1 und 2 beide kleiner als 6 sind 2 6 2 1 2 1
gemischt, wenn die Matrix keines der oben genannten Kriterien erfüllt. Beispiel:
3 3 3 3 3 3 2 2 2 3 3 2 3 2 3 3 2 2 2 3 3 3 3 3 3
Herausforderung
Bei einer quadratischen Matrix positiver Ganzzahlen mit einer Größe von mindestens 3 klassifizieren Sie diese gemäß den obigen Definitionen. Das heißt, Sie können einen von vier verschiedenen konsistenten Werten ausgeben, je nachdem, ob die Matrix konkav, flach, konvex oder gemischt ist.
Sie können in jeder Programmiersprache antreten und Eingaben und Ausgaben mit jeder Standardmethode und in jedem vernünftigen Format vornehmen. Beachten Sie jedoch, dass diese Lücken standardmäßig verboten sind. Dies ist Codegolf , daher gewinnt die kürzeste Übermittlung (in Bytes) für jede Sprache .
Testfälle
Hier sind einige Beispiele zur Auswahl - ich habe aus jeder Kategorie 6 ausgewählt.
Konkav
[[3, 3, 3], [3, 1, 3], [3, 3, 3]]
[[2, 3, 4], [5, 1, 6], [7, 8, 9]]
[[19, 34, 45], [34, 12, 14], [13, 13, 13]]
[[3, 4, 3, 4], [4, 2, 1, 3], [3, 1, 2, 4], [4, 3, 4, 3]]
[[4, 5, 6, 4, 7], [4, 3, 2, 2, 4], [5, 2, 1, 3, 8], [5, 3, 3, 2, 5], [9, 5, 6, 4, 5]]
[[7, 7, 7, 7, 7], [7, 6, 6, 6, 7], [7, 6, 5, 6, 7], [7, 6, 6, 6, 7], [7, 7, 7, 7, 7]]
Eben
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
[[2, 2, 2], [2, 2, 2], [2, 2, 2]]
[[8, 8, 8], [8, 8, 8], [8, 8, 8]]
[[120, 120, 120], [120, 120, 120], [120, 120, 120]]
[[10, 10, 10, 10], [10, 10, 10, 10], [10, 10, 10, 10], [10, 10, 10, 10]]
[[5, 5, 5, 5, 5, 5], [5, 5, 5, 5, 5, 5], [5, 5, 5, 5, 5, 5], [5, 5, 5, 5, 5, 5], [5, 5, 5, 5, 5, 5], [5, 5, 5, 5, 5, 5]]
Konvex
[[1, 2, 1], [2, 6, 2], [1, 2, 1]]
[[1, 1, 1], [1, 2, 1], [1, 1, 1]]
[[19, 34, 45], [34, 76, 14], [13, 6, 13]]
[[3, 3, 3, 3], [3, 4, 4, 3], [3, 4, 4, 3], [3, 3, 3, 3]]
[[192, 19, 8, 6], [48, 324, 434, 29], [56, 292, 334, 8], [3, 4, 23, 23]]
[[291, 48, 7, 5], [47, 324, 454, 30], [58, 292, 374, 4], [9, 2, 53, 291]]
Gemischt
[[1, 2, 3], [4, 5, 9], [6, 7, 8]]
[[10, 14, 21], [100, 8, 3], [29, 2, 19]]
[[5, 5, 5, 5], [5, 4, 4, 5], [5, 4, 6, 5], [5, 5, 5, 5]]
[[3, 3, 3, 3], [3, 1, 2, 3], [3, 3, 2, 3], [3, 3, 3, 3]]
[[12, 14, 15, 16], [12, 18, 18, 16], [12, 11, 11, 16], [12, 14, 15, 16]]
[[5, 5, 5, 5, 5], [5, 4, 4, 4, 5], [5, 4, 6, 4, 5], [5, 4, 4, 4, 5], [5, 5, 5, 5, 5]]