Antworten auf deine Fragen:
Neues Thema erstellen

Rechen-Problem

Sturmkraehe

Nicht mehr ganz neu hier

Hallo,

ich setze mich gerade mit ein paar Rechenproblemen auseinander auf die ich gestoßen bin, doch stehe ich hier irgendwie auf dem Schlauch:
Die Zahlen in Reihe 1 sollen erstmal nur ausgegeben werden, Reihe 2 + 3 sowie die hinteren Zahlen zeigen den Rechen-Mechanismus auf ( \ = PLUS und / = ERGIBT)



wäre schön wenn mir jemand auf die Sprünge helfen könnte

lg
Sturmkraehe
 

Duddle

Posting-Frequenz: 14µHz

Was genau ist dein Problem? Wie du es schön anzeigen lassen kannst? Wie du es berechnest? Wie du es speicherst?

Wie sieht dein Ansatz aus?


Duddle
 

Sturmkraehe

Nicht mehr ganz neu hier

wie ich es berechnen soll, dass es erst 2x 30 dann 60 dann 3x30 dann 60 usw. nach oben geht, die anzeige ist erstmal egal...!
für den start habe ich versucht erstmal den Anfang hinzubekommen, was ja soweit ganz gut klappt bis eben das erstemal +60 kommen sollte, ich allerdings grade keine Idee habe wie ich es umsetzen sollte:
vielleicht bin ich grad auch ganz auf nem falschen dampfer ;)

PHP:
<?php
function counter($anfang, $ende, $grow, $start)
/*
$anfang -> Anfangszahl für die Berechnung, norm 0
$ende -> Endzahl für die berechnung
$grow -> Um wieviel die zahl steigen soll
$start -> Erste Zahl, auf die aufgebaut wird
*/
    {
     
        while($anfang < $ende)
            {
                if($anfang < $start)
                    {
                        $anfang += $start;
                          echo $anfang.'<br />';

                    }
                else
                    {
                     
                        $anfang += $start + $grow;
                          echo '<b>'.$anfang.'</b><br />'; 
                        $grow = $grow + 30; 
/* Hier liegt dann das Problem da ich ja nicht immer +30 rechnen will*/
                    }
            }
    };

counter(0, 1000, 30, 150);
?>
 

Jormungand

VonAllemEtwas

Bin jetzt nicht so fit in PHP, aber von der Logik brauchst du eine äußere Schleife, die die $anzahl der addierten 30er bestimmt (in jeder Runde wird die um +1 erhöht). In einer inneren Schleife hast du eine Variable $blub, die so lange hochzählt, bis Anzahl erreicht ist und dann eine 60 addiert.
Die Funktion ganz innen muss ja nur noch $zahl1 = $zahl1 + $zahl2; und $zahl2 = $zahl2 + 30 heißen.
 

renoster

Noch nicht viel geschrieben

Ich hab das ganze mal zum testen und weil schön schnell geht in
Matlab implementiert:

Code:
j = 2;
R1 = 150;
R2 = R1 + 30;
maximum = 4710;

while R1 < maximum
   
   for i = 0:1:j-1
       R1 = R1+R2
       R2 = R2+30
   end

   R1 = R1+ R2
   R2 = R2+60
   j = j+1;
   
end

wäre mein Vorschlag der mir mal so beim draufschauen gekommen ist. Kann man bestimmt noch optimieren. Aber es tut was es soll

Viel spass
 

renoster

Noch nicht viel geschrieben

Schaut doch schon mal gut aus ;) Würde die if-abfragen aber wie bei meinem Bsp. durch die for schleife ersetzen. Erhöht die Lesbarkeit ungemein und auch die Performance normalerweise :)
 

Sturmkraehe

Nicht mehr ganz neu hier

habs nochmal rausgenommen da es doch net geklappt hat hm ja werde es mal versuchen (bin ned so bewandert im Matlab, brauch etwas länger um mich da reinzudenken)
 

renoster

Noch nicht viel geschrieben

du kannst das eigentlich 1:1 in php umsetzen denk ich.

Denke mal, du hast wenn dann bei der Umwandlung der for-Schleife probleme

PHP:
<?php
for($i=0; $i < $j; $i++)
{
program
}
?>

sollte das dann sein wenn ich das grad schnell richtig gegoogled habe. Das end ist einfach dann die Schlussklammer bei anderen Programmiersprachen :)

EDIT: und die Strichpunkte bei Matlab dienen nur der Ausgabeunterdrückung

Sonst meld dich einfach.
 
Zuletzt bearbeitet:

Sturmkraehe

Nicht mehr ganz neu hier

Ja danke, dann wäre das quasi die PHP version mit ausgabe:
PHP:
<?php
$j = 2;
$R1 = 150;
$R2 = $R1 + 30;
$maximum = 10000;

while ($R1 < $maximum)
{
   echo $R1.'<br \>';
    for($i=0; $i < $j; $i++)
    {
       $R1 = $R1+$R2; echo $R1.'<br \>';
       $R2 = $R2+30;
    }

   $R1 = $R1+ $R2;
   $R2 = $R2+60;
   $j = $j+1;
}
?>

ja das scheint mir etwas einfacher zu sein
lg
Sturmkraehe

EDIT:
Ergebnisse:
Code:
150
330
540
780
1080
1410
1770
2160
2610
3090
3600
4140
4710
5340
6000
6690
7410
8160
8940
9780
10650
11550
12480
13440
14430
schaut also ganz gut aus
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

Ich habe beim rumprobieren gemerkt, dass die Berechnung
150 = 1*150 + 0*30
330 = 2*150 + 1*30
540 = 3*150 + 3*30
780 = 4*150 + 6*30
usw. ist.
Die Reihe 0,1,3,6,11,17, ... ist in der großen Datenbank von Reihen OEIS vorhanden und wird dort als A194142: n-th partial sum of Beatty sequence for 3-sqrt(3) geführt. Dort wird auch eine mathematische Berechnung für die Reihe gezeigt, zwar als Mathematica-Funktion, aber das kann man ja konvertieren.

Ich präsentiere also eine Funktion foobar, die für die n-te Iteration die Summe ausgibt:
PHP:
function mysum($von, $bis) {
  $sum = 0;
  for($i = $von; $i <= $bis; $i++) {
   $sum += floor($i*(3-sqrt(3)));
  }
  return $sum;
}

function foobar($n) {
  $basis = 150;
  $plus = 30;
  $multiplikator = mysum(1, $n-1);
  $erg = $basis*$n + $multiplikator*$plus;
  return $erg;
}


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.613
Beiträge
1.538.344
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben