Definition
Ein Vektor a enthaltend n Elemente werden gesagt, majorize oder dominate eine Vektor b mit n Elementen iff für alle Werte k , so dass 1 ≤ k ≤ n , wobei die Summe des ersten Elements von einer ↓ durch die k - te Element von einer ↓ größer ist als oder gleich der Summe der ersten bis k- ten Elemente von b ↓ , wobei v ↓ den in absteigender Reihenfolge sortierten Vektor v darstellt .
Das ist,
a_1 >= b_1
a_1 + a_2 >= b_1 + b_2
a_1 + a_2 + a_3 >= b_1 + b_2 + b_3
...
a_1 + a_2 + ... + a_n-1 >= b_1 + b_2 + ... + b_n-1
a_1 + a_2 + ... + a_n-1 + a_n >= b_1 + b_2 + ... + b_n-1 + b_n
Dabei werden a und b in absteigender Reihenfolge sortiert.
Für diese Herausforderung verwenden wir eine leichte Verallgemeinerung der Majorisierung: Wir werden sagen, dass eine Liste eine unsortierte Majorisierung einer anderen ist, wenn alle oben genannten Ungleichungen wahr sind, ohne a und b zu sortieren . (Dies ist natürlich mathematisch nutzlos, macht die Herausforderung jedoch interessanter.)
Herausforderung
Bei einer Eingabe von zwei unterschiedlichen Listen a und b von ganzen Zahlen im Bereich von 0 bis 255 (einschließlich) geben beide Listen der Länge n ≥ 1 aus, ob die erste Liste die zweite unsortiert ( a > b ), die zweite unsortiert Majorisiert die erste ( b > a ) oder keine.
Optional können Sie die Länge der beiden Listen als Eingabe festlegen. Die Ausgabe muss immer einer von drei unterschiedlichen Werten sein, aber die Werte selbst können beliebig sein (bitte geben Sie an, welche Werte für a > b , b > a und keine in Ihrer Antwort stehen).
Testfälle für a > b :
[255] [254]
[3,2,1] [3,1,2]
[6,1,5,2,7] [2,5,4,3,7]
Testfälle für b > a :
[9,1] [10,0]
[6,5,4] [7,6,5]
[0,1,1,2,1,2] [0,1,2,1,2,1]
Testfälle ohne Majorisierung:
[200,100] [150,250]
[3,1,4] [2,3,3]
[9,9,9,9,9,0] [8,8,8,8,8,9]