Hallo, ich habe folgende Anweisung:
1 | N = int((L/l + 0.5)) |
Wie kann ich das in "mathematischer Schreibweise" ausdrücken?
|
Forum: PC-Programmierung Streichung der Nachkommastellen mathematisch ausdrückenHallo, ich habe folgende Anweisung:
Wie kann ich das in "mathematischer Schreibweise" ausdrücken?
Beitrag #6120432 wurde von einem Moderator gelöscht.
Beitrag #6120452 wurde von einem Moderator gelöscht.
Beitrag #6120460 wurde von einem Moderator gelöscht.
Beitrag #6120471 wurde von einem Moderator gelöscht.
Beitrag #6120488 wurde von einem Moderator gelöscht.
Beitrag #6120521 wurde von einem Moderator gelöscht.
Beitrag #6120555 wurde von einem Moderator gelöscht.
Beitrag #6120559 wurde vom Autor gelöscht.
Alternativ: x - (x mod b^-k) Mit wert x, basis b, anzahl nachkommastellen k. Abi88, LK Mathe, und diese Schreibweise auch noch nie gesehen. Google frisst diese Schreibweise auch im Jahre 2020 nicht. Dieses prinzipielle Konstrukt frisst Google (von den Variablen mal abgesehen): (L/l)-(L/l mod1)+(L/l mod1 +0,5)-(L/l mod1 +0,5) mod1
Beitrag #6120589 wurde von einem Moderator gelöscht.
Beitrag #6120591 wurde von einem Moderator gelöscht.
Beitrag #6120594 wurde von einem Moderator gelöscht.
Du meinst, weil die alle wissen, wie die mathematische Schreibweise für das Runden aussieht? Übrigens ist die angegebene Formel falsch, da sie für negative Werte von L/l nicht mit dem C-Code übereinstimmt. Die Gaußklammer rundet immer ab, während die Konvertierung nach int einfach nur den Nachkommateil abschneidet. Allerdings scheint auch der C-Code schon für negative Werte fehlerhaft zu sein, wenn seine Aufgabe sein sollte, zum nächsten ganzzahligen Wert hin zu runden. :
Bearbeitet durch User
Beitrag #6120643 wurde von einem Moderator gelöscht.
Schon die Frage ist falsch: Streichung der Nachkommastellen ist etwas anderes als runden. Georg georg schrieb: > Schon die Frage ist falsch: Streichung der Nachkommastellen ist etwas > anderes als runden. Wer genau hinsieht, bemerkt aber ein "+ 0.5", das daraus eine Rundung macht, aber eben nur für positive Zahlen. Rolf M. schrieb: > Übrigens ist die angegebene Formel falsch, da sie für negative Werte von > L/l nicht mit dem C-Code übereinstimmt. Nein, die angegebene Formel ist richtig, deine Annahmen sind nur falsch. a) es ist kein C-Code b) L und l sind Längen. Damit ist die Diskussion über negative Werte für beendet erklärt! Rolf M. schrieb: > Allerdings scheint auch der C-Code schon für negative Werte fehlerhaft > zu sein, wenn seine Aufgabe sein sollte, zum nächsten ganzzahligen Wert > hin zu runden. Das sollte nicht die Aufgabe sein, wenn ich den nächsten ganzzahligen Wert wollte, hätte ich round() verwendet. georg schrieb: > Schon die Frage ist falsch: Streichung der Nachkommastellen ist etwas > anderes als runden. Die Frage ist richtig. Ich möchte die Nachkommastelle gestrichen habe, von runden war keine rede. Rolf M. schrieb: > Wer genau hinsieht, bemerkt aber ein "+ 0.5", das daraus eine Rundung > macht, aber eben nur für positive Zahlen. Die Zahl 0,5 ist willkürlich, hätte auch 0,6 sein können. Karl schrieb: > Rolf M. schrieb: >> Übrigens ist die angegebene Formel falsch, da sie für negative Werte von >> L/l nicht mit dem C-Code übereinstimmt. > > Nein, die angegebene Formel ist richtig, deine Annahmen sind nur falsch. Die Formel ist nicht allgemein äquivalent zum Code. Dass du keine negativen Werte hast, ändert nichts daran. > a) es ist kein C-Code Ok, hatte ich implizit angenommen. Lag auch daran, dass du vergessen hast, die Sprache anzugeben. Es ist etwas ungeschickt, wenn man einen Sprachkonstrukt zur Diskussion stellt, aber die Sprache nicht mit angibt. Mir wäre allerdings auch keine Sprache bekannt, wo int vorzeichenlos ist. > b) L und l sind Längen. Damit ist die Diskussion über negative Werte für > beendet erklärt! Du hattest nach einem Äquivalent gefragt. Ich hab angemerkt, dass es das nicht ist, weil bei negativen Werten das Ergebnis abweicht. Wenn dich das nicht stört, ist das ja ok. Dass keine negativen Werte vorkommen können, hattest du nicht erwähnt. > Rolf M. schrieb: >> Wer genau hinsieht, bemerkt aber ein "+ 0.5", das daraus eine Rundung >> macht, aber eben nur für positive Zahlen. > > Die Zahl 0,5 ist willkürlich, hätte auch 0,6 sein können. Wozu hast du sie dann überhaupt hingeschrieben? Zur allgemeinen Verwirrung? Klar, ich hab fälschlicherweise angenommen, das solle eine Rundung sein, aber wenn du einen float-Wert + 0,5 nimmst und dann nach int konvertierst, sieht das schon sehr danach aus. Karl schrieb: > > Die Zahl 0,5 ist willkürlich, hätte auch 0,6 sein können. Oder auch pi*e, wir leben schließlich in einem freien Land! Es bleibt allerdings fraglich, was die Operation bezwecken soll. Mag mir jemand erklären, warum das Streichen der Nachkommastellen auf einmal kein Rundungsverfahren mehr ist? Jemand schrieb: > Mag mir jemand erklären, warum das Streichen der Nachkommastellen auf > einmal kein Rundungsverfahren mehr ist? Naja ganz einfach.. wenn man "runden" sagt, geht der Leser von symmetrischem runden aus, dass man 1.5 nach 2 rundet und 1.4 nach 1 vereinfacht ausgedrückt. also *round(1.5)* Streichung der Nachkommastellen ist aber ABrunden 1.99 wird zu 1 quasi *floor(1.99)* im Gegensatz zu *ceil(1.02)* was schon zu 2 als Resultat führen würde also: floor( x ) oder in gaussklammern notation: ⌊ x ⌋ oder: ceil( x ) oder in gaussklammern notation: ⌈ x ⌉ ist was anderes als symmetrisches runden round( x ) oder eben [ x ] (nein keine eckigen Klammern) manche bevorzugen wegen der konfusion deswegen auch ⌊ x ⌉ stattdessen für's symmetrische runden ich schweife ab... sid schrieb: > Naja ganz einfach.. > wenn man "runden" sagt, geht der Leser von symmetrischem runden aus, > dass man 1.5 nach 2 rundet und 1.4 nach 1 vereinfacht ausgedrückt. > also *round(1.5)* > Streichung der Nachkommastellen ist aber ABrunden Oder aufrunden - falls der Wert negativ ist. Manchmal wird die Art der Rundung auch über einen Wert beschrieben, in dessen Richtung das Ergebnis geht. Das Abschneiden der Nachkomma-Stellen heißt dann runden gegen Null, das Aufrufen heißt runden gegen positive Unendlichkeit, das abrunden analog dazu, und das symmetrische Runden als runden gegen die nächste Ganzzahl. Zumindest im englischsprachigen Raum scheint das verbreitet zu sein. Rolf M. schrieb: > Zumindest im englischsprachigen Raum scheint das verbreitet zu sein. Das ist hier zu Lande nicht wesentlich anders; nur ist insbesondere bei Journalisten die Unsitte verbreitet, unreflektiert einheitlich von aufrunden zu sprechen, unabhängig davon, welche Rundungsart gerade gemeint ist. Dito für "abrunden". Es gibt auch noch kaufmännisches Runden (Rundung zu nächsten geraden Zahl; macht mir zumindest Kopfschmerzen). Verwendet in .NET und LabView https://stackoverflow.com/questions/311696/why-does-net-use-bankers-rounding-as-default dadida schrieb: > Es gibt auch noch kaufmännisches Runden (Rundung zu nächsten geraden > Zahl; macht mir zumindest Kopfschmerzen). Verwendet in .NET und LabView > https://stackoverflow.com/questions/311696/why-does-net-use-bankers-rounding-as-default Nein, kaufmännisch Runden ist 5up-4-down, jeweils down Richtung Null. Next-or-even bringt angeblich eine bessere Verteilung, wenn man über eine größere Anzahl Rundungen mitteilt. Bankers Rounding != Kaufmännisches Runden Jens M. schrieb: > Bankers Rounding != Kaufmännisches Runden Außerdem hat er das Prinzip falsch verstanden. Es wird zur nächsten Zahl gerundet, nur wenn die letzte Stelle eine 5 ist zum geraden Nachbarn. Instruktiv: https://people.cs.nctu.edu.tw/~tsaiwn/sisc/runtime_error_200_div_by_0/www.merlyn.demon.co.uk/pas-chop.htm :
Bearbeitet durch User
Für mich bedeutet "Streichung der Nachkommastellen" dass alles von 5,1 bis 5,9 zu 5 wird. Eben einfach gestrichen oder abgeschnitten. Aber zugegeben, Streichung ist keine wirklich mathematische Ausdrucksweise, da kann man natürlich drunter verstehen was man will. Meinetwegen auch wie der TO eine beliebige Zahl vorher dazuaddieren. Als Mathematiker muss ich ja nicht verstehen was das soll. Georg Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
|
|