rap: "Gegenteil" von Modulo

Hallo,

gibt es eine mathematische Funktion die mir nicht den Rest eines Ergebnisses "zurückgibt" sondern den Teil, der vor dem Komma steht?

Beispiel:
Während...
2010 mod 100 = 10

...möchte ich
2010 unbekannteFunktion 100 = 20

Wie könnte ich jetzt bei der Zahl 2010 auf das Ergebnis 20 kommen?

  1. Hallo,

    gibt es eine mathematische Funktion die mir nicht den Rest eines Ergebnisses "zurückgibt" sondern den Teil, der vor dem Komma steht?

    nein.

    Hotte

    1. nein.

      Ich habe allerdings mittlerweile so etwas gefunden.
      Der Wert den ich suche nennt sich Divisor: (http://mathematik.thomasgramm.com/divisor.html)

      @Hotte: Das nein Könnte entweder bedeuten, dass es nicht weißt, oder dass div keine Mathematische Funktion ist...

      Nun würde mich interessieren, ob ich bei einem SELECT bei ORACLE den Divisor ausgeben kann...

      1. Hallo,

        Der Wert den ich suche nennt sich Divisor: (http://mathematik.thomasgramm.com/divisor.html)

        nein, die dort verwendete Nomenklatur ist falsch.

        in  x = a/b  ist x der Quotient, a der Dividend (Zähler) und b der Divisor (Nenner) [siehe Tante Wiki].

        Ciao,
         Martin

        --
        Paradox ist, wenn der Innenminister sich äußert und der Außenminister sich erinnert.
      2. hi,

        @Hotte: Das nein Könnte entweder bedeuten, dass es nicht weißt, oder dass div keine Mathematische Funktion ist...

        1. gibt es tatsächlich keine mathematische Funktion, die den ganzzahligen Anteil einer Division ermittelt und 2. ist div keine Mathematische Funktion.

        Hotte

        1. Tach,

          1. gibt es tatsächlich keine mathematische Funktion, die den ganzzahligen Anteil einer Division ermittelt

          falsch: http://en.wikipedia.org/wiki/Modular_arithmetic#Functional_representation_of_the_remainder

          mfg
          Woodfighter

          1. Tach,

            1. gibt es tatsächlich keine mathematische Funktion, die den ganzzahligen Anteil einer Division ermittelt

            falsch: http://en.wikipedia.org/wiki/Modular_arithmetic#Functional_representation_of_the_remainder

            Freilich doch: Wenn bestimmte Vereinbarungen gelten. Wenn ich z.B. notierte, dass 7 geteilt durch 3 => 2 ergibt, setze ich voraus, dass hier nur ganze Zahlen im Spiel sind. In diesem Fall habe ich den ganzzahligen Anteil als Ergebnis. Sofern nichts vereinbart wurde, muss ich das nachfragen. Und für den Fall, dass keine ganzen Zahlen vereinbart sind ist das Ergebnis von

            7/3

            ein Anderes.

            Hotti

            1. Tach,

              Freilich doch:

              nein, du sagst es gibt keine solche Funktion, ich habe dir sogar zwei geliefert.

              mfg
              Woodfighter

              1. Tach,

                Freilich doch:

                nein, du sagst es gibt keine solche Funktion, ich habe dir sogar zwei geliefert.

                mfg
                Woodfighter

                Ok, hast Du auch ;-)

                Hotte

                --
                Zweidrittel sind keine Mehrheit.
  2. Hi,

    gibt es eine mathematische Funktion die mir nicht den Rest eines Ergebnisses "zurückgibt" sondern den Teil, der vor dem Komma steht?

    keine mathematische, aber in Programmiersprachen. Beispiele:
    PHP:        floor()
    Javascript: Math.floor()
    Programmiersprachen mit "handfesten" Datentypen, wie etwa C, bekommen automatisch ein Ergebnis vom Typ int, wenn auch die Operanden vom Typ int sind; andernfalls bieten die meisten Sprachen ähnliche Funktionen zum Abrunden, oder man führt ein Typecast nach int durch.

    Beispiel:
    Während...
    2010 mod 100 = 10

    ...möchte ich
    2010 unbekannteFunktion 100 = 20

    Oh, dann suchst du keine Funktion, sondern einen Operator. Da fällt mir spontan nichts ein - also doch die oben beschriebene Krücke.

    Ciao,
     Martin

    --
    Lieber arm dran als Arm ab.
    1. »»Beispiele:

      PHP:        floor()
      Javascript: Math.floor()

      Hallo Martin,

      vielen Dank für deine Antworten, der Tipp mit floor() hat mir sehr weiter geholfen.

    2. Hallo,

      gibt es eine mathematische Funktion die mir nicht den Rest eines Ergebnisses "zurückgibt" sondern den Teil, der vor dem Komma steht?

      keine mathematische, aber in Programmiersprachen.

      Naja, die floor-Funktion kann man durchaus als mathematisch bezeichnen, siehe Gaußklammer.

      Viele Grüße,
      Christian

      --
      Mein "Weblog" [RSS]
      Using XSLT to create JSON output (Saxon-B 9.0 for Java)
      »I don't believe you can call yourself a web developer until you've built an app that uses hyperlinks for deletion and have all your data deleted by a search bot.«
                  -- Kommentar bei TDWTF
      1. Hallo Christian,

        mathematische Funktion
        keine mathematische, aber in Programmiersprachen.
        Naja, die floor-Funktion kann man durchaus als mathematisch bezeichnen, siehe Gaußklammer.

        daran dachte ich auch, aber ich habe ja auch weiter unten in meinem Posting auf den Unterschied zwischen Funktion und Operator hingewiesen.

        Ist die Gauss-Klammer[1] nicht eher ein unärer Operator? Zugegeben, sie erfüllt auch die Definition einer Funktion, nämlich dass sie einen Eingabewert in genau definierter Weise auf einen Ausgabewert abbildet. Das tut aber das Minus in seiner Eigenschaft als Vorzeichen auch - ist es deswegen eine Funktion?

        Ich finde die Unterscheidung, die anscheinend nicht ganz eindeutig ist, mindestens genauso interessant wie die botanische Frage, was denn nun der entscheidende bzw. definierende Unterschied zwischen Obst und Gemüse ist (IMHO bisher unbeantwortet).

        So long,
         Martin

        [1] Ich habe den alten Carl Friedrich in meiner Schul- und Studienzeit nur in der Schreibweise mit "ss" kennengelernt. Ungewohnt, ihn mit "ß" geschrieben zu sehen ...

        --
        Ich wollt', ich wär ein Teppich.
        Dann könnte ich morgens liegenbleiben.
        1. Hallo Martin,

          Ist die Gauss-Klammer[1] nicht eher ein unärer Operator?
          [...] Das tut aber das Minus in seiner Eigenschaft als Vorzeichen auch - ist es deswegen eine Funktion?

          Wenn man jetzt Haare spalten will, dann könnte man argumentieren, dass das Minuszeichen alleine wohl lediglich ein Operator wäre, "-x" wäre dagegen eine Funktion. Bei der Gaußklammer könnte dann analog vorgehen.

          [1] Ich habe den alten Carl Friedrich in meiner Schul- und Studienzeit nur in der Schreibweise mit "ss" kennengelernt. Ungewohnt, ihn mit "ß" geschrieben zu sehen ...

          Ich hatte auch Doppel-s im Kopf, muss aber hier gestehen, dass ich hier blind Wikipedia vertraut habe. Wenn Du ne Quelle findest, die ihn mit Doppel-s schreibt, dann lasse ich mich gerne eines besseren belehren, ansonsten bleibe ich einstweilen bei der Wikipedia-Schreibweise, mir ist das Detail einfach nicht wichtig genug, selbst zu Recherchieren. ;-)

          Viele Grüße,
          Christian

          --
          Mein "Weblog" [RSS]
          Using XSLT to create JSON output (Saxon-B 9.0 for Java)
          »I don't believe you can call yourself a web developer until you've built an app that uses hyperlinks for deletion and have all your data deleted by a search bot.«
                      -- Kommentar bei TDWTF
        2. @@Der Martin:

          nuqneH

          [1] Ich habe den alten Carl Friedrich in meiner Schul- und Studienzeit nur in der Schreibweise mit "ss" kennengelernt. Ungewohnt, ihn mit "ß" geschrieben zu sehen ...

          Hm, so jung, nie einen Zehner in der Hand gehabt zu haben, bist du doch gar nicht mehr‽

          Qapla'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
          1. Hallo Gunnar,

            [1] Ich habe den alten Carl Friedrich in meiner Schul- und Studienzeit nur in der Schreibweise mit "ss" kennengelernt. Ungewohnt, ihn mit "ß" geschrieben zu sehen ...
            Hm, so jung, nie einen Zehner in der Hand gehabt zu haben, bist du doch gar nicht mehr‽

            das stimmt wohl. Ich wusste ja auch, wer der nette Herr mit der putzigen Sieben-Zwerge-Mütze auf dem Zehnmarkschein ist. Aber dass sein Name auf dem Schein auch ausgeschrieben stand, ist mir damals nie aufgefallen - sehe ich jetzt zum ersten Mal bewusst.

            Ganz ehrlich: So genau sehe ich mir Geldscheine meist nicht an - viel wichtiger ist mir, dass ich sie habe! ;-)

            Ciao,
             Martin

            --
            Man sollte keinen Senf von sich geben, wenn man nicht auch das Würstchen dazu liefern kann.
            1. @@Der Martin:

              nuqneH

              Aber dass sein Name auf dem Schein auch ausgeschrieben stand, ist mir damals nie aufgefallen - sehe ich jetzt zum ersten Mal bewusst.

              Ich dachte auch, dass seine Unterschrift (Quelle) drauf wäre.

              Aber nein, die muss ich irgendwo anders schon mal gesehen haben. Gauſs.

              Qapla'

              --
              Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
        3. Hi,

          Ist die Gauss-Klammer nicht eher ein unärer Operator? Zugegeben, sie erfüllt auch die Definition einer Funktion, nämlich dass sie einen Eingabewert in genau definierter Weise auf einen Ausgabewert abbildet.

          Beides korrekt. Die Gauß-Klammer ist eine Operation – und damit zwangsläufig eine Funktion. Operationen sind nichts anderes als abgeschlossene Funktionen.

          Zumindest ist mir diese Definition am geläufigsten und ich halte sie auch für sinnvoll. Manchmal wird aber wohl auch bei Operationen zwischen „innerer“ (abgeschlossener) und „äußerer“ (nicht abgeschlossener) Verknüpfung unterschieden. Der Operations-Begriff selbst fordert dann keine Abgeschlossenheit und deckt sich so mit dem Begriff der „Funktion“.

          Das tut aber das Minus in seiner Eigenschaft als Vorzeichen auch - ist es deswegen eine Funktion?

          Ja, ist es. Und das nicht nur in seiner Funktion als Vorzeichen. Auch die Subtraktion (genauso wie z.B. auch die Addition, die Multiplikation und die Division) ist eine Operation und damit auch eine Funktion (und daher auch eine Relation ;-)

  3. Mahlzeit rap,

    gibt es eine mathematische Funktion die mir nicht den Rest eines Ergebnisses "zurückgibt" sondern den Teil, der vor dem Komma steht?

    Wie bereits beschrieben, gibt es diese nicht - es gibt aber in verschiedenen Programmiersprachen entsprechende Operatoren. In VBScript (ASP) z.B. heißt dieser \ ...

    Deine Anforderung

    ...möchte ich
    2010 unbekannteFunktion 100 = 20

    könntest Du in VBScript folgendermaßen umsetzen:

    x = 2010 \ 100
    Response.Write x

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  4. Hi rap.

    gibt es eine mathematische Funktion die mir nicht den Rest eines Ergebnisses "zurückgibt" sondern den Teil, der vor dem Komma steht?

    In dem Satz haette irgendwo ein Wort wie "Division" vorkommen sollen, damit er in die Naehe dessen kommt, was Du eigentlich sagen wolltest. ;-)

    ...möchte ich
    2010 unbekannteFunktion 100 = 20

    Logo gibt es eine mathematische Funktion, die fuer ein Paar von Zahlen a und b die groesste ganze Zahl zurueckgibt, die kleiner oder gleich a/b ist[1].

    Einen Operator, der das liefert, gibt es in den meisten Programmiersprachen nicht. Wenn Du den gesucht hast, dann haette sich die Frage auf die Programmiersprache Deiner Wahl beziehen und nicht im Themenbereich "Programmiertechnik" angesiedelt werden sollen.

    Aber die Funktion zu implementieren, ist ein Ein- bis Zweizeiler. Die einfachste (bzw. zumindest effizienteste) Moeglichkeit: Ziehe erst den Rest, den Du nicht willst (sprich: a % b) von b ab[1] und dividiere dann. Der Vorteil ist, dass dann alles mit Interger-Operationen moeglich ist.

    Und zwar im Uebrigen sogar in PHP. Das Handbuch sagt, dass das Ergebnis einer Division immer vom Typ float ist, aber das ist interessanterweise falsch.

    [1] Du musst allerdings bei all dem etwas aufpassen, falls a negativ ist. Und zwar sowohl bei der Frage, was dann ueberhaupt rauskommen soll, als auch bei der Frage, was eventuell verwendete Operatoren dann zurueckgeben.

    Viele Gruesse,
    der Bademeister

    1. Hallo,

      Das Handbuch sagt, dass das Ergebnis einer Division immer vom Typ float ist, aber das ist interessanterweise falsch.

      das ist tatsächlich interessant - aber wenn du etwas behauptest, dass der offiziellen Dokumentation widerspricht, wirft das Fragen auf:

      * Woher weißt du das? Ausprobiert? Quellcode von PHP studiert?
       * Für welche Version(en) mag das gelten?

      Und selbst wenn ich davon ausgehe, dass deine Aussage stimmt und dass das bei allen bisherigen PHP-Versionen so war: Da sie der Doku widerspricht, muss ich damit rechnen, dass dieses durchaus interessante Feature in einer der nächsten Versionen geändert werden könnte.

      So long,
       Martin

      --
      Lieber Blödeleien als blöde Laien.
      1. Hi Martin.

        Sorry, war beim Spocht :-)

        * Woher weißt du das?

        Ich bin da mal bei einer ganz ähnlichen wie der hier gefragten Sache drüber gestolpert. "Gestolpert" dabei im positivsten Sinne, denn ich sehe keinen guten Grund, warum ein Operator, der bei der Eingabe zweier (bestimmter) ganzer Zahlen auch eine ganze Zahl ausgibt, diese als float liefern sollte[1]. Die Standard-String-Ausgaben (sprich: die Ausgabe von echo) sind in beiden Fällen identisch, und wenn ich den Wert für weitere Berechnungen als float brauche, dann liefert mir das die Standard-Typumwandlung immer noch rechtzeitig.

        * Für welche Version(en) mag das gelten?

        Zumindest für 4 und 5. Und ich setz einfach mal nen Zehner, dass es für < 4 ebenso gilt :-)

        Und selbst wenn ich davon ausgehe, dass deine Aussage stimmt und dass das bei allen bisherigen PHP-Versionen so war: Da sie der Doku widerspricht, muss ich damit rechnen, dass dieses durchaus interessante Feature in einer der nächsten Versionen geändert werden könnte.

        Joa, weiß nicht so recht. Meine Interpretation der Sache ist eher, dass das kein Bug ist, sondern schlicht und einfach ein Fehler in der Dokumentation. Erstens, weil ich nicht der erste bin, dem das aufgefallen ist (siehe etwa die Kommentare in der Doku) und es wohl längst gefixt wäre, und zweitens, wie oben beschrieben, weil es denkbar unsinnig wäre, es anders machen zu wollen. Aber wissen tu' ichs nicht.

        [1] Jedenfalls dann, wenn der gesamte Algorithmus mit Integer-Arithmetik auskommt. Die Wurzelfunktion sqrt() z.B. liefert immer einen float-Wert, auch wenn die Wurzel ganzzahlig ist. Was auch Sinn macht, weil der Wert ohnehin als float approximiert wird. Der Algorithmus könnte natürlich vorneweg ermitteln, ob es eine ganzzahlige Wurzel gibt, aber das ginge natürlich i.a. auf Kosten der Effizienz.

        Viele Grüße,
        der Bademeister

  5. Hallo,

    gibt es eine mathematische Funktion die mir nicht den Rest eines Ergebnisses "zurückgibt" sondern den Teil, der vor dem Komma steht?

    Also ich hab das mal überschlafen. Es gibt zwar, abh. von der Prog.Sprache, so Einiges, Pragma "integer", Format %d oder %u für sprintf, split usw., aber ich schlage einen Anderen Weg dazu ein, sicherzustellen, dass bereits bei der Division nur Ganzzahlen im Spiel sind:

    Zuerst setze ich den Operator modulo ein, der ermittelt mit Sicherheit den ganzzahligen Rest. Diesen Rest ziehe ich dann vom Ausgangswert ab und mache erst danach die Division.

    Beispiel:

    7 geteilt durch 2 gibt was Krummes.

    Zuerst also
    7 modulo 2 gibt 1
    Nun die 1 von 7 abziehen, wir kriegen eine 6 mit der wir bei einer Division durch 2 garantiert eine Ganze Zahl erhalten.

    Hotti

    1. @@hotti:

      nuqneH

      Zuerst setze ich den Operator modulo ein, der ermittelt mit Sicherheit den ganzzahligen Rest. Diesen Rest ziehe ich dann vom Ausgangswert ab und mache erst danach die Division.

      Du machst also zwei Divisionen statt nur einer. Für empfehlenswert halte ich das nicht.

      Qapla'

      --
      Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    2. Hallo Hotti,

      Also ich hab das mal überschlafen. [...] ich schlage einen Anderen Weg

      welchen anderen Weg?

      dazu ein, sicherzustellen, dass bereits bei der Division nur Ganzzahlen im Spiel sind:

      Zuerst setze ich den Operator modulo ein, der ermittelt mit Sicherheit den ganzzahligen Rest. Diesen Rest ziehe ich dann vom Ausgangswert ab und mache erst danach die Division.

      Ein reife Leistung! Mehr als vier Tage nachdem der Bademeister genau diese Methode vorgestellt hat, kommst Du und preist sie als "einen Anderen Weg" an.

      Grüße

      Vinzenz