Hiện tượng được gọi là Will Rogers mô tả một cách để điều chỉnh số liệu thống kê bằng cách tăng trung bình trong hai (đa) bộ khi một phần tử được di chuyển giữa hai bộ. Một ví dụ đơn giản, hãy xem xét hai bộ
A = {1, 2, 3}
B = {4, 5, 6}
Phương tiện số học của họ là 2
và 5
, tương ứng. Nếu chúng ta di chuyển 4
đến A
:
A = {1, 2, 3, 4}
B = {5, 6}
Bây giờ trung bình là 2.5
và 5.5
, tương ứng, vì vậy cả hai trung bình đã được nâng lên thông qua một nhóm đơn giản.
Một ví dụ khác, hãy xem xét
A = {3, 4, 5, 6} --> A = {3, 5, 6}
B = {2, 3, 4, 5} --> B = {2, 3, 4, 4, 5}
Mặt khác, không thể tăng cả hai mức trung bình cho các bộ
A = {1, 5, 9}
B = {4, 5, 7, 8}
Các thách thức
Đưa ra hai danh sách các số nguyên không âm, xác định xem có thể tăng cả hai trung bình hay không bằng cách di chuyển một số nguyên từ danh sách này sang danh sách khác.
Trung bình của một danh sách trống không được xác định, vì vậy nếu một trong các danh sách chỉ chứa một phần tử, phần tử này không thể được di chuyển.
Bạn có thể viết chương trình hoặc hàm, lấy đầu vào qua STDIN (hoặc thay thế gần nhất), đối số dòng lệnh hoặc đối số hàm và xuất kết quả qua tham số STDOUT (hoặc thay thế gần nhất), tham số trả về hàm hoặc tham số hàm (out).
Đầu vào có thể được thực hiện trong bất kỳ định dạng chuỗi hoặc danh sách thuận tiện.
Bạn không được cho rằng các thành phần trong mỗi danh sách là duy nhất và chúng cũng không được sắp xếp. Bạn có thể cho rằng cả hai danh sách đều chứa ít nhất một yếu tố.
Output nên truthy nếu cả hai trung bình có thể được nâng lên bằng cách di chuyển một số nguyên đơn và falsy khác.
Đây là mã golf, vì vậy câu trả lời ngắn nhất (tính bằng byte) sẽ thắng.
Các trường hợp thử nghiệm
Sự thật:
[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]
Giả mạo:
[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]
Bảng xếp hạng
Dưới đây là Stack Snippet để tạo cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ.
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:
# Language Name, N bytes
nơi N
là kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:
# 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
và 9
kết thúc, mà sẽ nâng cả trung bình, nhưng bạn không thể làm như vậy bằng cách di chuyển một duy nhất.