Das sogenannte Will Rogers-Phänomen beschreibt eine Möglichkeit, die Statistik zu optimieren, indem der Durchschnitt in zwei (Mehrfach-) Sätzen erhöht wird, wenn ein Element zwischen den beiden Sätzen verschoben wird. Betrachten Sie als einfaches Beispiel die beiden Mengen
A = {1, 2, 3}
B = {4, 5, 6}
Deren arithmetische Mittel sind 2
und 5
jeweils. Wenn wir den 4
zu bewegen A
:
A = {1, 2, 3, 4}
B = {5, 6}
Nun sind die Mittelwerte sind 2.5
und 5.5
jeweils so haben beide Mittelwerte durch eine einfache Umgruppierung angehoben.
Als weiteres Beispiel betrachten
A = {3, 4, 5, 6} --> A = {3, 5, 6}
B = {2, 3, 4, 5} --> B = {2, 3, 4, 4, 5}
Andererseits ist es nicht möglich, beide Mittelwerte für die Sätze zu erhöhen
A = {1, 5, 9}
B = {4, 5, 7, 8}
Die Herausforderung
Bestimmen Sie anhand von zwei Listen nicht negativer Ganzzahlen, ob es möglich ist, beide Durchschnitte zu erhöhen, indem Sie eine einzelne Ganzzahl von einer Liste zur anderen verschieben.
Der Durchschnitt einer leeren Liste ist nicht definiert. Wenn also eine der Listen nur ein Element enthält, kann dieses Element nicht verschoben werden.
Sie können ein Programm oder eine Funktion schreiben, indem Sie eine Eingabe über STDIN (oder die nächstgelegene Alternative), ein Befehlszeilenargument oder ein Funktionsargument vornehmen und das Ergebnis über STDOUT (oder die nächstgelegene Alternative), einen Funktionsrückgabewert oder einen Funktionsparameter (out) ausgeben.
Die Eingabe kann in einem beliebigen geeigneten Zeichenfolge- oder Listenformat erfolgen.
Sie dürfen nicht davon ausgehen, dass die Elemente in jeder Liste eindeutig oder sortiert sind. Sie können davon ausgehen, dass beide Listen mindestens ein Element enthalten.
Die Ausgabe sollte wahr sein, wenn beide Mittelwerte durch Verschieben einer einzelnen Ganzzahl erhöht werden können, andernfalls ist sie falsch .
Dies ist Codegolf, daher gewinnt die kürzeste Antwort (in Bytes).
Testfälle
Wahrheit:
[1], [2, 3]
[1, 2, 3], [4, 5, 6]
[3, 4, 5, 6], [2, 3, 4, 5]
[6, 5, 9, 5, 6, 0], [6, 2, 0, 9, 5, 2]
[0, 4], [9, 1, 0, 2, 8, 0, 5, 5, 4, 9]
Falsch:
[1], [2]
[2, 4], [5]
[1, 5], [2, 3, 4, 5]
[2, 1, 2, 3, 1, 3], [5, 1, 6]
[4, 4, 5, 2, 4, 0], [9, 2, 10, 1, 9, 0]
Bestenlisten
Hier ist ein Stack-Snippet, um sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache zu generieren.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihre Punktzahl verbessern, können Sie alte Punkte in der Überschrift behalten, indem Sie sie durchstreichen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
<script>site = 'meta.codegolf'; postID = 5314; isAnswer = true; QUESTION_ID = 53913</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
1
und 9
mehr bewegen , was beide Durchschnitte erhöhen würde, aber Sie können dies nicht tun, indem Sie einen einzelnen bewegen.