平均两个清单
挑战
给定两个正整数列表,请确定是否有可能将元素重新排列为两个新列表,以使新列表具有相同的算术平均值(平均值)。
输入值
输入可以通过STDIN或作为函数参数获取。输入可以视为列表,或者如果您的语言不支持列表(或类似的数组/字典),则可以将输入作为逗号或空格分隔的字符串。那是,
"1 4 8 2 5,3 1 5 2 5"
是相同的:
[ [1,4,8,2,5], [3,1,5,2,5] ]
所有输入列表的长度将相同。
输出量
如果可以创建两个具有相同平均值的新列表,则程序/函数应打印或返回平均值。如果不能,则程序应输出一张悲伤的脸:(
。
请注意,具有相等均值的重新排列的列表(如果存在)不必具有相同的长度。可以进行任意数量的交换以创建新列表。
例子
1 4 8 2 5,3 1 5 2 5 -> 1 4 8 2 3,5 1 5 2 5 (swapped 3 and 5) -> 3.6
1 3 6 2,16 19 19 14 -> [[1,6,19,14],[3,2,16,19]] -> 10
2 6 2,6 3 5 -> 2 6,2 6 3 5 (moved 2) -> 4
90 80 20 1,40 60 28 18 -> :(
2
我们可以交换每个列表中任意数量的元素吗?一个列表可以给另一个元素吗?我不明白您所说的“存在有效置换”的意思。另外,这需要更多的测试用例。
—
xnor
@xnor您可以将一个元素移动到另一个元素。我将添加更多测试用例
—
Downgoat 2015年
那么,这是否等同于“给定一个列表(它们的并集),可以将其划分为两个具有相同平均值的非空列表吗?”
—
xnor
@ vihan1086为什么不将单个列表作为输入呢?您的演示似乎不必要地复杂。
—
xnor
@ vihan1086看着您的Sandbox帖子,在那里提出了许多相同的要求澄清的内容,您说您已经澄清了许多这些要点,但是您所做的修改并没有使它们更加清晰。您最好替换混乱的文本,而不是添加其他文本。
—
xnor