Ankündigung

Einklappen
Keine Ankündigung bisher.

Maximale Anzahl berechnen bei proportional steigenden Kosten

Einklappen

Neue Werbung 2019

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

  • Maximale Anzahl berechnen bei proportional steigenden Kosten

    Hi!
    Wieder ein Problem.
    Ich hab n Script bekommen wo man berechnen kann wie teuer Gebäude sind wenn man 100 baut und für jedes +10 Rohstoffe dazukommen.

    Nun will ich aber berechnen wieviel man dann maximal bauen kann.

    heir ist ein Ausschnitt:
    PHP-Code:
    for($i=$vorhanden;$i<=($vorhanden+$anzahl);$i++) // Läuft solange alle neuen gebäude gekauft sind..
                                
    {
                                    
    $neu_afp =$i $neu_afp + ($i*$a); // neue kosten berechnen...
                                    
    $neu_en $i $neu_en + ($i*$a);
                                    
                                    
    $afp2 $afp $neu_afp;
                                    
    $en2 $en $neu_en;
                                    
                                    if (
    $afp2 $en2)
                                    {
                                        
    $max floor($en2);
                                    }
                                    else
                                    {
                                        
    $max floor($afp2);
                                    }                            
                                } 
    das prob denk ich mal ist, dass man vorher $vorhanden+$anzahl
    (das was man hat+was man bauen will)
    in die schleife gehauen hat.
    das ist halt nur für die überrüfung der vorhanden ressis gut.
    was kann ich vor $anzahl einsetzen um die maximale zahl auszurechnen, jemand ne idee!?

  • #2
    Ein Fall für Mathematik! Formel umstellen, dann kannst Du aus der Berechnung den Maximalwert bestimmen. Alternativ nen Schleifenabbruch benutzen. Mehr kann man ob Deiner kryptischen Variablenbezeichner nicht sagen.

    Kommentar


    • #3
      upps ja vergessn, sry

      $a = 10, also das was pro GEbäude dazugezählt werden soll
      $vorhanden = Wert der bereits gebauten Gebäude

      $neu_afp = die Kosten hochgerechnet auf die Anzahl die man noch dazu bauen will
      $neu_en ist das gleiche

      $afp = Eine Ressource des Users
      $en = Zweite Ressource des Users

      die $max-Zeilen gucken welcher Wert kleiner wäre.


      inwiefern umstellen?!
      maximalwert würde ich jetzt mit ableitungen verbinden.
      erstmal danke

      Kommentar


      • #4
        Also bei Deinen Formeln sehe ich nicht durch. Schon gar nicht, warum Du alles doppelt berechnest.

        Nur so viel:

        ges = aktuell + einz * anzahl

        umgestellt:

        anzahl = ges / (aktuell + einz)

        Wenn das jetzt einen gebrochenen Wert ergibt, musst Du bspw. abrunden und hast dann die maximale Anzahl.

        Kommentar


        • #5
          jut danke!
          gestern herrentag, da is die rechenleistung noch nich wirklich hoch^^

          Kommentar


          • #6
            nochmal ein wenig übersichtlicher:

            PHP-Code:
            $preiszuschlag10;
                for(
            $i=1;$i<=$vorhandene_Gebäude;$i++)
                { 
                
            $bisher_kosten $bisher_kosten + ($i*$preiszuschlag);
                }
                                            
                
            $neu_kosten$bisher_kosten;

                                        
                for(
            $i=$vorhande_Gebäude;$i<=($vorhande_Gebäude+$anzahl);$i++) 
                {
                
            $neu_kosten = ($anzahl $neu_kosten) + ($i*$preiszuschlag);
                } 
            Ich hoff es ist jetzt ein wenig übersichtlicher.
            Der Sinn ist, dass ich erst gucke wieviele Gebäude schon gebaut sind.
            Da pro Gebäude die Kosten um +10 steigen berechne ich die akutellen Kosten für ein Gebäude in der ersten for-Schleife.

            Im Normalfall würde ich nun die Kosten berechnen für die Anzahl die ich Auftrag geben will durch
            --> * $anzahl <--
            Nun will ich aber wie gesagt diese Anzahl rausbekommen die maximal möglich wäre.

            Ich hatte es mit folgender while Schleife probiert die nicht klappt.
            PHP-Code:
            $j 1;
                do
                {
                    
            $neu_kosten = ($j $bisher_afp) + ($j*$a);
                    
            $j++;
                } while (
            $neu_kosten $spieler_geld);

                   
            $maximal_baubar $j
            dadurch müsste ich doch die Anzahl immer höher setzen und die Kosten ausrechnen, bis $neu_kosten die Spieler Ressourcen übersteigt.
            Und wenn dass dann der Fall ist wird der WErt von $j ausgegeben wo die Schleife false wurde.
            Hab ich einen Denkfehler, Syntaxfehler, oder ähnliches?!!?!

            Wäre cool wenn mir da jemand helfen könnte.

            Erstmal nochmal danke an nikosch.

            Kommentar


            • #7
              Da pro Gebäude die Kosten um +10 steigen berechne ich die akutellen Kosten für ein Gebäude in der ersten for-Schleife.
              Ne, es sei denn, du mußt wirklich mit $vorhandene_Gebäude! rechnen.

              Rein logisch betrachtet, hat da die Fakultät nichts drin zu suchen. Da macht die for- Schleife eher mehr kaputt als gut.

              Könnte man den ersten Abschnitt nicht durch diese einzelne Zeile hier ersetzen?

              PHP-Code:
              $neu_kosten$vorhandene_Gebäude*$preiszuschlag
              Warum da die bisherigen Kosten drinstehen, erschließt sich mir nicht. Aber wenn die doch mit einbezogen werden müssen, kannst die dann ja einfach noch addieren.

              Maximal baubar wäre einfach Spielergeld geteilt durch die Kosten für ein Gebäude. Das ganze dann abrunden.

              Bspw:

              PHP-Code:
              $baubar=(int)($konto/$kostenprohaus); 

              Gruß

              Kommentar

              Lädt...
              X