所谓的威尔·罗杰斯(Will Rogers)现象描述了一种通过在两个元素之间移动一个元素时提高两个(多)集合中的平均值来调整统计量的方法。举一个简单的例子,考虑两组
A = {1, 2, 3}
B = {4, 5, 6}
它们的算术平均值分别为 2
和5
。如果我们移动4
到A
:
A = {1, 2, 3, 4}
B = {5, 6}
现在,平均值分别为2.5
和5.5
,因此两个平均值都通过简单的重组而提高了。
再举一个例子,考虑
A = {3, 4, 5, 6} --> A = {3, 5, 6}
B = {2, 3, 4, 5} --> B = {2, 3, 4, 4, 5}
另一方面,不可能同时提高两个平均值
A = {1, 5, 9}
B = {4, 5, 7, 8}
挑战
给定两个非负整数列表,请确定是否可以通过将一个整数从一个列表移动到另一个列表来提高两个平均值。
空列表的平均值未定义,因此,如果列表之一仅包含一个元素,则不能移动该元素。
您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。
输入可以采用任何方便的字符串或列表格式。
您不能假定每个列表中的元素都是唯一的,也不可以对它们进行排序。您可以假设两个列表都包含至少一个元素。
输出应truthy如果两个平均值可以通过移动单个整数和被升高falsy否则。
这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。
测试用例
真相:
[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]
虚假:
[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]
排行榜
这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。
为确保您的答案显示出来,请使用以下Markdown模板以标题开头。
# Language Name, N bytes
N
您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如:
# 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
和9
,这将同时提高两个均值,但不能通过移动单个均值来做到。