Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Logischen Ausdruck vereinfachen
Gehe zu Seite Zurück  1, 2
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Mathe-Forum -> Logischen Ausdruck vereinfachen
 
Autor Nachricht
data
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 17.08.2006
Beiträge: 8

BeitragVerfasst am: 17 Aug 2006 - 15:00:02    Titel:

Ach sorry. Hab den Code zusammenkopiert, um ihn zu kürzen (sind eigentlich alles eigenen Funktionen). Es muss heißen

Code:
bool IsInRange(float f, float lower, float upper)
{
    return ((f < upper) || (abs(f-upper) < 0.0001f)) && ((f > lower) || (abs(f-lower) < 0.0001f));
}


So stimmt's glaub ich. >= Ist nicht gut zu verwenden, da Gleitkommazahlen eine Ungenauigkeit haben. Es könnte also sein, dass eine Zahl +/-0.000001 statt 0.0 ist bzw. 0.99999 statt 1.0
Nomex
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 08.02.2006
Beiträge: 183

BeitragVerfasst am: 17 Aug 2006 - 15:05:33    Titel:

data hat folgendes geschrieben:
Ach sorry. Hab den Code zusammenkopiert, um ihn zu kürzen (sind eigentlich alles eigenen Funktionen). Es muss heißen

Code:
bool IsInRange(float f, float lower, float upper)
{
    return ((f < upper) || (abs(f-upper) < 0.0001f)) && ((f > lower) || (abs(f-lower) < 0.0001f));
}


So stimmt's glaub ich. >= Ist nicht gut zu verwenden, da Gleitkommazahlen eine Ungenauigkeit haben. Es könnte also sein, dass eine Zahl +/-0.000001 statt 0.0 ist bzw. 0.99999 statt 1.0



jo hab grad meinen müll nochmal gelesen ^^
aber deins scheint ja zu stimmen. hab das mit der ungenauigkeit net geschnallt und vereinfachen ..... seh nich wo man des vereinfachen könnte, es sei denn f liegt öfter unter dem bereich, dann würde ich die Teilterme umdrehen.... aber ansonsten...
data
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 17.08.2006
Beiträge: 8

BeitragVerfasst am: 17 Aug 2006 - 15:09:19    Titel:

Genau das ist ja mein Problem, ich sehe es auch nicht Smile. Deshalb wollte ich ja mal da draußen in den Weiten des Netzes schauen, ob es einen Helden gibt, der es doch sieht Smile
Aber wahrscheinlich gibt's einfach nix zu sehen, oder??
BBB
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 28.10.2005
Beiträge: 303

BeitragVerfasst am: 17 Aug 2006 - 15:18:58    Titel:

Um zu beurteilen, was am effizientesten ist, bräuchte man ja nun noch Angaben zu Wahrscheinlichkeiten, dass f im Intervall liegt oder unter die Ungenauigkeit von float fällt. Außerdem bräuchte man entweder genauere Angaben für die Dauer der Berechnungen auf einer konkreten Maschine oder wir schätzen sie hier einfach ab.
Je nachdem sieht dann die optimale Lösung aus, wobei du ja hier einfach mal ein bisschen simulieren kannst und die Zeiten vergleichst.
data
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 17.08.2006
Beiträge: 8

BeitragVerfasst am: 17 Aug 2006 - 15:28:24    Titel:

Ja, das werde ich machen. Aber das Fazit heißt also, dass ich eigentlich nur die beiden Terme links und rechts vom && vertauschen kann, oder?
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Mathe-Forum -> Logischen Ausdruck vereinfachen
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum