sqrt, log und round ohne math.h



  • Hallo zusammen,

    unser Prof möchte von uns in der Hausübung sehen, dass wir sqrt, log und round berechnung komplett ohne math.h hinkriegen. mir fehlt jedoch jeglicher ansatz. kann mir da jemand helfen?

    noch als info
    wir dürfen zwei variablen anlegen werden, x und y, beide sollen positiv und ganzzahlig sein

    würde mich freuen, wenn jemand mir hier helfen könnte.

    Danke schon mal im voraus.



  • Da brauchst du vor allem die schematischen Algorithmen zur Berechnung. Die Programmierung hinterher sollte machbar sein. Diese Algorithmen sind Programmiersprachen-unabhängig und die müsstest du dir zunächst mal im Internet ergooglen.

    Für die Wurzel findest du z.B. hier numerische Algorithmen:
    https://de.wikipedia.org/wiki/Wurzel_(Mathematik)





  • Was habt ihr denn vorher in der Vorlesung besprochen? Vielleicht war das irgendein numerisches Verfahren, das nun geübt werden soll?



  • naja, es ist grundlagen der informatik 1.
    1.semester
    wir haben kein mathe, es ist informatik für lehrämter
    in der Vorlesung haben wir bisher kein numerisches Verfahren besprochen.



  • Es geht ja nur um Integer, ausgeklügelte Lösungen sind wohl auch nicht gefordert.
    Newton/Heronverfahren und BKM sind schön und gut, aber mal als (schlechter) Ansatz, um überhaupt Lösungen zu haben:

    uint32_t sqrtbad(uint32_t x)
    {
    	uint32_t a = 1;
    	while(a*a<=x)
    		++a;
    	return --a;
    }
    

    Log: Anzahl der Stellen-1 (while(x/=10)... oder ifs [evtl. gleich mit binärer Suche])
    Round: (x+RND/2)/RND*RND mit RND 10, 100, ...


Log in to reply