Ich glaube, ich bin nicht der einzige, der diese Art von Bild auf Facebook (und anderen Websites) gesehen hat.
Das Bild oben wurde vor 16 Tagen gepostet und hat 51.000 Kommentare gesammelt. Einige Antworten: 0, 4, 8, 48, 88, 120, 124 und so weiter.
Herausforderung:
Die Mathematik in der Frage macht keinen Sinn 1 , daher können wir die richtige Antwort nicht finden, wenn wir uns die Gleichung ansehen (oder wie auch immer Sie dieses Durcheinander von Zahlen und Operatoren nennen würden). Es gibt jedoch eine sehr große Anzahl von Menschen, die geantwortet haben, und 10% dieser Menschen haben Recht!
Finden wir die richtige Antwort!
Nehmen Sie einen ganzzahligen Dezimalwert in Prozent 0-1
oder einen Bruchteil, der N
angibt, wie viele Prozent der Testgruppe die Frage nicht bestanden haben (oder optional wie viele richtig geantwortet haben), und eine Liste mit Zahlen, die die Antworten darstellen, die von Personen gepostet wurden.
Suchen Sie die Zahl, auf die 100-N
Prozent der Testgruppe geantwortet haben, und geben Sie sie aus. Wenn es mehr als eine Antwort gibt, die diesem Kriterium entspricht, müssen Sie alle ausgeben. Wenn es keine Antworten gibt, die in 100-N
Prozent der Zeit dargestellt werden, müssen Sie die Nummer ausgeben, die am nächsten liegt (gemessen an der Anzahl der Antworten von 100-N
).
Um die Eingaberegeln für machen N
klar: Wenn 90% ausfällt, dann Sie eingeben kann 90
, 10
, 0.9
oder 0.1
. Sie müssen angeben, welche Sie auswählen. Sie können davon ausgehen, dass die Prozentzahlen Ganzzahlen sind.
Testfälle:
In den folgenden Testfällen N
ist der Prozentsatz angegeben, der den Test nicht bestanden hat. Sie können die Eingabe mit einer der zulässigen Eingabemethoden vornehmen.
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 Bitte streiten Sie sich hier nicht mit mir. Wenn Sie die Antwort "kennen" , schließen Sie sich den anderen 10% an und posten Sie sie auf Facebook!
[1,3,3,3], 0.5
? Müssen wir in diesem Fall beide ausgeben?Antworten:
MATL ,
1614 Bytes-1 Byte dank @Giuseppe
-1 Byte dank @LuisMendo
Erläuterung:
Probieren Sie es online aus! oder überprüfen Sie alle Testfälle
quelle
R , 65 Bytes
Probieren Sie es online aus!
Nimmt
N
als Zahl zwischen0
und1
undA
als Vektor (manchmal aus STDIN in der TIO-Verknüpfung entnommen, damit ich sie nicht in R-Vektoren umwandeln muss). Gibt eine Liste von Zeichenfolgen zurück, die vom OP zugelassen werden .quelle
Gelee , 19 Bytes
Probieren Sie es online aus!
quelle
JavaScript (ES7),
10399 ByteNimmt die Eingabe als
(a, r)
wo eine ist die Liste der Antworten und r ist die erwartete Erfolgsquote in [0 ... 1] . Gibt a zurückSet
.Testfälle
Code-Snippet anzeigen
quelle
Python 2 , 91 Bytes
Probieren Sie es online aus!
Nimmt P als Erfolg (
0.1
= 10% richtig)quelle
05AB1E ,
191615 BytesNimmt die Erfolgsquote in der Form
0.31
(was bedeutet, dass 31% erfolgreich sind).Probieren Sie es online aus!
quelle