Il cosiddetto fenomeno Will Rogers descrive un modo per modificare le statistiche aumentando la media in due (multi) set quando un elemento viene spostato tra i due set. Come semplice esempio, considera i due set
A = {1, 2, 3}
B = {4, 5, 6}
I loro mezzi aritmetici sono 2
e 5
, rispettivamente. Se spostiamo il 4
a A
:
A = {1, 2, 3, 4}
B = {5, 6}
Ora le medie sono 2.5
e 5.5
, rispettivamente, quindi entrambe le medie sono state aumentate attraverso un semplice raggruppamento.
Come altro esempio, considera
A = {3, 4, 5, 6} --> A = {3, 5, 6}
B = {2, 3, 4, 5} --> B = {2, 3, 4, 4, 5}
D'altra parte, non è possibile aumentare entrambe le medie per i set
A = {1, 5, 9}
B = {4, 5, 7, 8}
La sfida
Dati due elenchi di numeri interi non negativi, determinare se è possibile aumentare entrambe le medie spostando un singolo numero intero da un elenco all'altro.
La media di un elenco vuoto non è definita, quindi se uno degli elenchi contiene solo un elemento, questo elemento non può essere spostato.
È possibile scrivere un programma o una funzione, prendendo l'input tramite STDIN (o l'alternativa più vicina), l'argomento della riga di comando o l'argomento della funzione e producendo il risultato tramite STDOUT (o l'alternativa più vicina), il valore di ritorno della funzione o il parametro della funzione (out).
L'input può essere preso in qualsiasi formato stringa o elenco conveniente.
Non si deve presumere che gli elementi di ciascun elenco siano univoci, né che siano ordinati. Si può presumere che entrambi gli elenchi contengano almeno un elemento.
L'output dovrebbe essere veritiero se entrambe le medie possono essere aumentate spostando un singolo intero e falsando diversamente.
Questo è il golf del codice, quindi vince la risposta più breve (in byte).
Casi test
Truthy:
[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]
Falsy:
[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]
Classifiche
Ecco uno snippet di stack per generare sia una classifica regolare che una panoramica dei vincitori per lingua.
Per assicurarti che la tua risposta venga visualizzata, ti preghiamo di iniziare la risposta con un titolo, usando il seguente modello Markdown:
# Language Name, N bytes
dov'è N
la dimensione del tuo invio. Se si migliora il punteggio, è possibile mantenere i vecchi punteggi nel titolo, colpendoli. Per esempio:
# 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
e 9
più volte, il che aumenterebbe entrambe le medie, ma non puoi farlo spostandone una singola.