Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Nächstgelegenen Wert ermitteln

Mitglied: Maik87

Maik87 (Level 2) - Jetzt verbinden

27.05.2013 um 15:11 Uhr, 1683 Aufrufe, 11 Kommentare, 2 Danke

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?
Mitglied: certifiedit.net
27.05.2013 um 15:13 Uhr
Eine Funktion wird es dafür wohl nicht geben. Von daher die Differenz vergleichen als eigene Funktion.
Bitte warten ..
Mitglied: colinardo
27.05.2013, aktualisiert um 15:19 Uhr
Hi,
zieh doch den Betrag von jedem Kandidaten von der Lösung ab schreib den Kanidat und den "absoluten" Wert zusammen in ein Array und sortiere dieses von klein nach groß. Der der am nächsten dran liegt steht dann an Position 1 des Arrays.

Grüße Uwe
Bitte warten ..
Mitglied: Honksen
27.05.2013 um 15:28 Uhr
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
Bitte warten ..
Mitglied: Maik87
27.05.2013 um 15:44 Uhr
Also gaaanz quick and dirty:

$antworten=array();
$antworten['Kandidat_01'] = 10;
$antworten['Kandidat_02'] = 200;
$antworten['Kandidat_03'] = 101;

$richtig = 149.6;

$entfernung = array();

foreach ($antworten as $key => $antwort){
$entfernung[$key] = abs($richtig-$antwort);
}

asort($entfernung);

echo 'Gewinner: ' .array_search(reset($entfernung),$entfernung);

Optimierung folgt
Bitte warten ..
Mitglied: peter-
27.05.2013 um 15:47 Uhr
Hi,

am Rande bemerkt:

Es mag der Sonderfall auftreten, das 2 oder mehrere Kandidaten absolut gesehen gleiche Schätzungen abgeben. Daran sollte man dann auch denken. Uwe's Array könnte man entsprechend abfragen, Honksen's Lösung läßt vermutlich nur den ersten besten Schätzer gewinnen.
Bitte warten ..
Mitglied: Maik87
27.05.2013, aktualisiert um 15:56 Uhr
Danke für den Einwand!
Bitte warten ..
Mitglied: 64748
27.05.2013, aktualisiert um 16:22 Uhr
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
Bitte warten ..
Mitglied: Maik87
27.05.2013 um 16:14 Uhr
Zitat von 64748:

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.

Mach ich doch, oder?
In der Schleife rechne ich die Differenzen aus, dann sortiere ich die Differenzen aufsteigend und nehm den ersten Wert. Klar kann man noch eine Schleife hinterhängen, die - soforn es x gleiche richtige Antworten gibt - alle ausgibt.
Bitte warten ..
Mitglied: 64748
27.05.2013 um 16:21 Uhr
Ach so, ich hatte das anders gesehen.

Markus
Bitte warten ..
Mitglied: Maik87
27.05.2013 um 16:24 Uhr
und wie hast du es gesehen??
Bitte warten ..
Mitglied: 64748
27.05.2013 um 16:34 Uhr
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.
01.
sort { differenz($antworten[$a], $richtigerwert <=> differenz($antworten[$b], $richtigerwert } ;
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
Bitte warten ..
Ähnliche Inhalte
Windows Tools

Powershell: Aus String die letzten Werte ermitteln

Frage von ColoneltwWindows Tools3 Kommentare

Hallo liebe Foristen, ich sitze an einem kleinen Powershell Problem. Ich habe einen UNC Pfad und möchte das letzte ...

Microsoft Office

Excel: maximale Anzahl in Folge stehender Werte ermitteln

Frage von FlexxaMicrosoft Office1 Kommentar

Hallo zusammen, wie kann ich in Excel die maximale Anzahl gleicher Werte in Folge ermitteln und diesen Bereich per ...

Batch & Shell

SMART-Werte ermitteln und darstellen auf der CheckMk-Weboberfläche mithilfe eines Batch-Scripts

Frage von nadalinhoBatch & Shell

Hallo zusammen, ich habe folgendes vor: Ich möchte die Smart-Werte aller Festplatten der Windows-Rechner im Betrieb ermitteln und auf ...

Datenbanken

Aus einer SELECT DISTINCT Abfrage möchte ich den Wert schrittweise eines Datensatzes ermitteln

gelöst Frage von AximandDatenbanken9 Kommentare

Hallo, gegeben ist eine Abfrage: Diese liefert jetzt beispielsweise 7 Treffer: 20028 20092 20107 20174 20357 20472 21095 Ich ...

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 3 StundenHumor (lol)1 Kommentar

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 16 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 16 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 19 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server40 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...