Nächstgelegenen Wert ermitteln
Hallo Leute,
ich weiß nicht, wie ich mein Problem genau beschreiben soll. Ich versuche es mal anhand eines täglichen Beispiels zu erklären:
Wir stellen uns mal vor, es würde eine Schätzfrage geben.
Wie viele Kilometer Entfernung sind es von der Erde zur Sonne?
Richtige Antwort: 149,6 Mio. km
Kandidat 1: 10 Mio km
Kandidat 2: 200 Mio km
Kandidat 3: 101 Mio km
...
Wie könnte ich am unkompliziertesten ermitteln, wer die Schätzfrage gewonnen hat? Gibt es eine Funktion oder muss ich das ganze durch eine Schleife jagen?
ich weiß nicht, wie ich mein Problem genau beschreiben soll. Ich versuche es mal anhand eines täglichen Beispiels zu erklären:
Wir stellen uns mal vor, es würde eine Schätzfrage geben.
Wie viele Kilometer Entfernung sind es von der Erde zur Sonne?
Richtige Antwort: 149,6 Mio. km
Kandidat 1: 10 Mio km
Kandidat 2: 200 Mio km
Kandidat 3: 101 Mio km
...
Wie könnte ich am unkompliziertesten ermitteln, wer die Schätzfrage gewonnen hat? Gibt es eine Funktion oder muss ich das ganze durch eine Schleife jagen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207079
Url: https://administrator.de/contentid/207079
Ausgedruckt am: 05.11.2024 um 04:11 Uhr
11 Kommentare
Neuester Kommentar
Hai,
vergleiche in einer Schleife die Werte mit der richtigen Lösung. Bilde die Differenz und danach den Betrag (falls negative Ergebnisse herauskommen). Vergleiche jeden mal 2 Werte. Den kleineren Werte (also näher an der Lösung) behälts Du in einer Variablen.
Wenn alle Werte einzeln verglichen sind, hast Du denjenigen, der am besten geschätzt hat.
Honksen
vergleiche in einer Schleife die Werte mit der richtigen Lösung. Bilde die Differenz und danach den Betrag (falls negative Ergebnisse herauskommen). Vergleiche jeden mal 2 Werte. Den kleineren Werte (also näher an der Lösung) behälts Du in einer Variablen.
Wenn alle Werte einzeln verglichen sind, hast Du denjenigen, der am besten geschätzt hat.
Honksen
Hallo,
die Lösung mit dem Array ist im Prinzip richtig. Allerdings würde ich anstatt eine Schleife zu durchlaufen die Werte nach den Differenzen Sortieren. Wie das mit PHP geht weiß ich nicht. Aber dann kannst Du prüfen, ob die beiden ersten Werte identisch sind (also im sortierten Array), wenn ja, dann gibt's mehr als eine richtige Antwort.
Markus
die Lösung mit dem Array ist im Prinzip richtig.
Markus
Ach so, ich hatte das anders gesehen.
Markus
Markus
Ich hatte das so aufgefasst, dass der Vergleich in der Schleife vorgenommen wird.
Ich würde, wenn ich sowas programmiere (mit Perl, PHP kann ich nicht) mir eine Funktionen schreiben "differenz", die den Betrag der Differenz zweier Zahlen zurückgibt. Wenn man die Antworten gleich in einem Array sammelt, dann braucht man eigentlich keine Schleife mehr.
Oder z.B. eine Sortierfunktion, die den korrekten Lösungswert und eine Referenz auf das Array als Argument bekommt. Ich halte das für übersichtlicher als eine Schleife. Wie gesagt, Perl.
Markus
Ich würde, wenn ich sowas programmiere (mit Perl, PHP kann ich nicht) mir eine Funktionen schreiben "differenz", die den Betrag der Differenz zweier Zahlen zurückgibt. Wenn man die Antworten gleich in einem Array sammelt, dann braucht man eigentlich keine Schleife mehr.
sort { differenz($antworten[$a], $richtigerwert <=> differenz($antworten[$b], $richtigerwert } ;
Markus