90%がこの課題に失敗しましたか?


8

この種の画像をFacebook(および他のサイト)で見たのは私だけではないでしょう。

解け!!!!

上の画像は16日前に投稿され、51 kのコメントを蓄積しています。いくつかの回答:0、4、8、48、88、120、124など。

チャレンジ:

質問の数学は意味がありません1。そのため、方程式(または数値と演算子の混乱と呼ばれるもの)を見て、正しい答えを見つけることができません。しかし、答えた人は非常に多く、そのうち10%は正解です!

正しい答えを見つけましょう!


整数、パーセント、10進数の値0-1、または小数Nで、テストグループの何パーセントが質問に失敗したか(または、必要に応じて正解した数)と、ユーザーが投稿した回答を表す数値のリストを受け取ります。

100-Nテストグループのパーセントが回答した数を見つけて出力します。この基準に一致する回答が複数ある場合は、それらすべてを出力する必要があります。100-N時間の割合で表される回答がない場合は、最も近い数を出力する必要があります(からの回答数で測定100-N)。

入力規則にするにはN明らかに:90%が失敗した場合は、その後入力してもよい90100.9または0.1。どちらを選択するかを指定する必要があります。パーセンテージの数値は整数であると想定できます。


テストケース:

以下のテストケースでNは、はテストに失敗した割合です。許可されている入力方法のいずれかを使用して入力することを選択できます。

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ここで私と議論しないでください。答えを「知っている」場合は、他の10%に参加してFacebookに投稿してください!



リスト内のアイテムの最大数は何ですか(ある場合)。
Kevin Cruijssen、2017年

1
@KevinCruijssen最大値を想定することはできません。最大値はメモリ/データ型によって決まります。チャレンジは5万1千のコメントを含む投稿に基づいているため、少なくともその数の項目をカバーすることが望ましいです。
Stewie Griffinが

1
例のように複数の回答が同じくらい近い場合はどうすればよい[1,3,3,3], 0.5ですか?その場合、両方を出力する必要がありますか?
Emigna 2017年

@Emignaはい、両方を出力します。4番目のテストケースを参照してください。
Stewie Griffin

回答:


6

MATL16 14バイト

@Giuseppeのおかげで-1バイト

@LuisMendoのおかげで-1バイト

SY'ts/i-|tX<=)

説明:

        % 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

オンラインでお試しください!またはすべてのテストケースを確認する


4

R、65バイト

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

オンラインでお試しください!

取りNの間の数として0および1、とA(私はRベクトルにそれらを有効にする必要はありませんので、時々 TIOリンクにSTDINから取られた)ベクトルとして。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バイト

入力を受け取ります。(a, r)ここで、aは回答のリストであり、r[0 ... 1]で期待される成功率です。を返します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

テストケース



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.