90% thất bại trong thử thách này?


8

Tôi đoán tôi không phải là người duy nhất đã nhìn thấy loại hình ảnh này trên Facebook (và các trang web khác).

Giải quyết nó !!!!

Bức ảnh trên được đăng 16 ngày trước, và đã tích lũy được 51 k bình luận. Một số câu trả lời: 0, 4, 8, 48, 88, 120, 124, v.v.

Thử thách:

Toán học trong câu hỏi không có nghĩa 1 , vì vậy chúng ta không thể tìm thấy câu trả lời đúng bằng cách xem phương trình (hoặc bất cứ điều gì bạn gọi là mớ hỗn độn của số và toán tử). Tuy nhiên, có một số lượng rất lớn những người đã trả lời, và 10% những người đó là đúng!

Hãy tìm câu trả lời đúng!


Lấy một số nguyên, phần trăm, giá trị thập phân 0-1hoặc phân số Nbiểu thị có bao nhiêu phần trăm của nhóm kiểm tra đã không trả lời câu hỏi (hoặc tùy chọn có bao nhiêu câu trả lời đúng) và danh sách các số đại diện cho câu trả lời mà mọi người đăng.

Tìm số mà 100-Nphần trăm của nhóm thử nghiệm đã trả lời và xuất nó. Nếu có nhiều hơn một câu trả lời phù hợp với tiêu chí này, thì bạn phải xuất ra tất cả chúng. Nếu không có câu trả lời nào được biểu thị bằng 100-Nphần trăm thời gian thì bạn phải xuất số gần nhất (tính theo số câu trả lời từ đó 100-N).

Để thực hiện các quy định đầu vào cho Nrõ ràng: Nếu 90% thất bại, sau đó bạn có thể nhập vào 90, 10, 0.9hoặc 0.1. Bạn phải chỉ định cái nào bạn chọn. Bạn có thể giả định rằng số phần trăm là số nguyên.


Các trường hợp thử nghiệm:

Trong các trường hợp thử nghiệm dưới đây, Nlà tỷ lệ thất bại trong thử nghiệm. Bạn có thể chọn nhập bằng bất kỳ phương thức nhập nào được phép.

N:  90   (meaning 90 % will fail and 10 % answer correctly)
List: 3 1 5 6 2 1 3 3 2 6
Output: 5   (because 90 % of the answers weren't 5)
---
N:  50   (50 % will answer correctly)
List: 3 6 1 6
Output: 6   (because 50 % of the answers weren't 6)
---
N:  69   (31 % will answer correctly)
List: 1 9 4 2 1 9 4 3 5 1 2 5 2 4 4 5 2 1 6 4 4 3
Output: 4    (because 31% of 22 is 6.82. There are 6 fours, which is the 
              closest to 6.82)
---
N = 10   (90 % will answer correctly)
List: 1 2 3 4 5 6 7 8 9 10
Output: 1 2 3 4 5 6 7 8 9 10 (because 9/10 will answer correctly. All numbers
                              have been answered the same number of times, thus
                              all are equally likely to be correct.
---
N:  90
List: 1 1 1
Output: 1

1 Xin đừng tranh cãi với tôi ở đây. Nếu bạn "biết" câu trả lời , hãy tham gia 10% còn lại và đăng nó lên Facebook!



Số lượng mục tối đa trong danh sách là bao nhiêu, nếu có?
Kevin Cruijssen

1
@KevinCruijssen Bạn không thể giả sử giá trị tối đa. Tối đa được xác định bởi bộ nhớ / kiểu dữ liệu. Thử thách dựa trên một bài đăng với 51k bình luận, vì vậy tốt nhất nên bao gồm ít nhất là nhiều mục.
Stewie Griffin

1
Chúng ta nên làm gì nếu có nhiều hơn một câu trả lời gần giống nhau như vậy trong ví dụ [1,3,3,3], 0.5? Chúng ta có cần xuất cả hai trong trường hợp đó không?
Emigna

@Emigna có, đầu ra cả. Xem trường hợp thử nghiệm thứ 4.
Stewie Griffin

Câu trả lời:


6

MATL , 16 14 byte

-1 byte nhờ @Giuseppe

-1 byte nhờ @LuisMendo

SY'ts/i-|tX<=)

Giải trình:

        % implicit input
S       % sort
Y'      % run-length encoding
ts      % duplicate elements and sum (get number of elements)
/       % array right division (get array of probability for each answer)
i-|     % get absolute difference with second input
tX<     % duplicate and get minimum value
=)      % get each answer that match with the minimum value
        % (implicit) convert to string and display

Hãy thử trực tuyến! hoặc xác minh tất cả các trường hợp thử nghiệm


4

R , 65 byte

function(N,A,x=table(A))names(x)[!(y=(abs(1-x/sum(x)-N)))-min(y)]

Hãy thử trực tuyến!

Lấy Nlàm số giữa 01Anhư một vectơ (đôi khi được lấy từ STDIN trong liên kết TIO để tôi không phải biến chúng thành vectơ R). Trả về danh sách các chuỗi, theo sự cho phép của OP .

function(N,A){
 x <- table(A)               # count occurrences of each value in A
 pct <- 1 - x/sum(x)         # compute percentages different from each value
 y <- abs(pct - N)           # find distances from N
 idx <- y!=min(y)            # find the indices of the minimum/minima
 names(x)[idx]               # return the names of the table (strings)
}


1

JavaScript (ES7), 103 99 byte

Đưa đầu vào vào trong (a, r)đó a là danh sách các câu trả lời và r là tỷ lệ thành công dự kiến ​​trong [0 ... 1] . Trả về a Set.

(a,r,m)=>a.map(n=>(d=a.reduce((p,c)=>p-=c==n,r*a.length)**2)>m||(d==m?s:(m=d,s=new Set)).add(n))&&s

Các trường hợp thử nghiệm



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.