Mathematische Frage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mathematische Frage

    Hmm falls das OT ist bitte verschieben, wusste aber nicht wo es sonst rein sollte.

    Ok ne Frage an die Matheprofis :

    Ich brauch für mein Script die Formel für eine Preisberechnung, die Preise setzen sich wie folgt zusammen :

    Der Preis für den Kauf eines Items setzt sich aus vier verschiedenen Rohstoffen zusammen.

    Der Grundpreis für 1 Item ist daher beim 1 Item:
    $kosten1 = 10000
    $kosten2 = 8000
    $kosten3 = 6000
    $kosten4 = 4000

    Nach jedem gekauften Item steigen die Preise um 1000 je Kosten, also Item 2 kostet :
    $kosten1 = 11000
    $kosten2 = 9000
    $kosten3 = 7000
    $kosten4 = 5000

    u.s.w.

    Die Preissteigerung tritt auch ein, wenn man schon Items besitzt, also schon gekauft hat.

    Wenn man noch kein Item hat, dann stimmt der erste Preis oben, hat man aber z.b. schon 3 Items und will noch 10 dazukaufen, dann kostet das erste der 10 neuen Items schon :
    $kosten1 = 13000
    $kosten2 = 11000
    $kosten3 = 9000
    $kosten4 = 7000

    So, nun hab ich ein Eingabefeld in meinem Formular, indem man die gewünschte Anzahl eingibt die man kaufen will, nur bin ich wohl einfach unfähig die richtige Formel zur Gesamtpreisberechnung hinzubekommen

    Wenn ich nun z.b. 10 Items kaufen will, wie errechne ich die 4 korrekten Gesamtpreise ?

    $preis1 = ($anzahl*$kosten1)+($anzahl*1000) <-- is leider falsch ;(

    Tjo, dazu brauch ich halt die Formel den korrekten Gesamtpreis zu berechnen und das ganze muss ich dann in mein PHP Script einbauen

    Thx an alle die sich den Kopf zerbrechen wollen
    - Carpe Noctem -

  • #2
    eieiei, so schwer isses doch bestimmt nich
    PHP-Code:
    function berechne_preis($startpreis,$aufpreis,$schon_vorhanden,$gekauft)
    {
        
    $result=array();
        
    $preis=$schon_vorhanden*$startpreis;
        for (
    $i=0;$i<$schon_vorhanden;$i++)
            
    $preis+=$i*$aufpreis;
        
    $result[]=$preis//Wert bisher
        
    $preis+=$gekauft*$startpreis;
        for (
    $i=$schon_vorhanden;$i<$schon_vorhanden+$gekauft;$i++)
            
    $preis+=$i*$aufpreis//Neuer Wert
        
    $result[]=$preis;
        
    $result[]=$result[1]-$result[0];  //Differenz
        
    return $result;

    ungetestet
    EDIT:
    Seh grad, du hast ja mehr als 1 Preis pro Stück, dann ruf das Ding halt für jeden Preis auf und addier die Werte dann

    Oder du übergibst $startpries und $aufpreis als arrays und verarbeitest die...

    Zuletzt geändert von mrhappiness; 20.02.2003, 21:01.
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      hi

      man hat ja nichts anderes zu tun ;-)

      also oder mich 100 %ig festlegen zu wollen sollte es sein :


      bei N gekauften Artikeln:

      $preis1 = ( N * $kosten1)+ ( (N * N - N ) / 2 * 1000)

      oder

      $preis1 = N * $kosten1 + (N^2 - N ) * 500


      schau mal ob das stimmt, und waere nett wenn du bescheid gibst

      gruss von

      pau

      Kommentar


      • #4
        PHP-Code:
        function berechne_preis($startpreis,$aufpreis,$schon_vorhanden,$gekauft)
        {
            
        $result=array();
            
        $preis=array();
            for (
        $i=0;$i<count($startpreis);$i++)
                
        $preis[$i]=$schon_vorhanden*$startpreis[$i];
            for (
        $i=0;$i<$schon_vorhanden;$i++)
                for (
        $k=0;$k<count($aufpreis);$k++)
                    
        $preis[$k]+=$i*$aufpreis[$k];
            
        $result[]=$preis//Wert bisher
            
        for ($i=0;$i<count($startpreis);$i++)
                
        $preis[$i]+=$gekauft*$startpreis[$i];
            for (
        $i=$schon_vorhanden;$i<$schon_vorhanden+$gekauft;$i++)
                for (
        $k=0;$k<count($aufpreis);$k++)
                    
        $preis[$k]+=$i*$aufpreis[$k]; //Neuer Wert
            
        $result[]=$preis;
            
        $result[]=$preis//Nicht entfernen
            
        for ($i=0;$i<count($startpreis);$i++)
                
        $result[count($result)-1][$i]=$result[1][$i]-$result[0][$i]; //Differenz
            
        return $result;
        }
        $startpreis=array();
        $aufpreis=array();
        $startpreis[]=10000;
        $startpreis[]=2000;
        $aufpreis[]=1000;
        $aufpreis[]=1000;
        $werte=berechne_preis($startpreis,$aufpreis,1,1); 
        EDIT:
        Es geht (zumindest denk ich das, aber steckt noch voller Optimierungspotenzial... )
        Zuletzt geändert von mrhappiness; 20.02.2003, 21:18.
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von pauino
          $preis1 = ( N * $kosten1)+ ( (N * N - N ) / 2 * 1000)
          oder
          $preis1 = N * $kosten1 + (N^2 - N ) * 500

          schau mal ob das stimmt, und waere nett wenn du bescheid gibst
          Bescheid : ja, ich hab das grade mal nachgerechnet und es kam der korrekte wert raus

          Nach deiner Formel kosten 10 stück von $kosten1 zusammen 145000 und wenn man es einzel rechnet ebenfalls 145000.
          Die Formel scheint also richtig zu sein, dankeschön )
          - Carpe Noctem -

          Kommentar

          Lädt...
          X