Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Rechnen mit Zahlen über int() Werten

Empfohlene Antworten

Tag auch,

Ich hab mir etwas Arbeit gemacht und das pascalsche Dreieck dynamisch mti PHP aufgebaut. Jetzt soll es eine funktion geben, in der alle durch x teilbare Zahlen markiert werden solen. Ab der ca. 35. Zeile markiert er aber nichts mehr, weil die Zahl für interger zu hoch ist.

Hier der Link zur Page: http://pascal.topfkuchration.de

Hier der Code:

<?

if ($pascal == "fibonacci") {include("fibonacci.php");include("bon_color.php");}

$hochzahl=0;

$id = 1;

$wert = 1;

$reihe = 1;

$platz = 1;

$color_i = 0;

$zahl[$reihe][$platz] = $wert;

if($f==0){$wert=0;}

$color[0] = ($c != "" AND $zahl[$reihe][$platz]%$c == 0) ? "red" : "white";

if($pascal=="fibonacci")$color_i++;

echo "<br><div align=center><table border=1><tr><td width=$a height=$b align=center><font color=$color[$color_i] size=$d>".$f*$wert."</td></tr></table>";

if($pascal=="2erPotenz"){echo "2<sup>0</sup> = 1";$hochzahl++;}

if ($pascal == "fibonacci")$color_i++;

if ($pascal=="multinome") {echo"(a+<sup>$hochzahl</sup>=1";$hochzahl++;}

while ($platz == $reihe) 

   {

   $color[0] = ($c != "" AND $zahl[$reihe][$platz]%$c == 0) ? "red" : "white";

   $bin_formel = "";

   $bin_i = 1;

   $id++;

   $reihe++;

   $platz=1;

   $wert=1;

   $zahl[$reihe][$platz] = $wert;

   $zahl[$reihe][0] = 0;

   if($f==0){$wert=0;}

   echo "<table border=1><tr><td width=$a height=$b align=center><font color=$color[$color_i] size=$d>".$wert*$f."</td>";

   if ($pascal == "fibonacci")$color_i++;

   $color_i2 = $color_i;

   while ($platz < $reihe)

      {


      $id++;

      $Nreihe = $reihe;

      $Nreihe--;

      $Aplatz = $platz;

      $platz++;

      $Bplatz = $platz;

      $Azahl = $zahl[$Nreihe][$Aplatz];

      $Bzahl= $zahl[$Nreihe][$Bplatz];

      $wert = $Azahl+$Bzahl;

      if($Aplatz == '0' OR $Bplatz == '0') $wert=1;

      $zahl[$reihe][$platz] = $wert;

      if($f==0){$wert=0;}

      $color[0] = ($c != "" AND $zahl[$reihe][$platz]%$c == 0) ? "red" : "white";

      echo "<td width=$a height=$b align=center><font color=".$color[$color_i2]." size=$d> ".$wert*$f." </font></td>";

      if ($pascal == "fibonacci")$color_i2++;

      if ($pascal=="multinome") {include("multinome.php");$bin_formel .= " · ";}

      }

   echo "</tr></table>";

   //2er Potenz

   if ($pascal=="2erPotenz")include("2erPotenz.php");

   //  !!--!!  2er Potenz

   if ($pascal=="multinome") {include("multinome.php");echo"(a+<sup>$hochzahl</sup>=$bin_formel";$hochzahl++;}

   if($reihe > $e) exit;

   }

echo "</td></tr></table>";

?>[/code]

Danke für alle Hilfe die ich bekomme, halte darüber nämlcih ein Referat, evtl. morgen O.o

Gruß Felix

Ich hab mir etwas Arbeit gemacht und das pascalsche Dreieck dynamisch mti PHP aufgebaut. Jetzt soll es eine funktion geben, in der alle durch x teilbare Zahlen markiert werden solen. Ab der ca. 35. Zeile markiert er aber nichts mehr, weil die Zahl für interger zu hoch ist.

[...]

Danke für alle Hilfe die ich bekomme, halte darüber nämlcih ein Referat, evtl. morgen O.o

Du rechnest ja den Modulus aus um das zu erreichen, sch dir mal die Seite an:

PHP: bcmod - Manual

(auch das letzte Kommentar)

$x ist demnach die Zahl durch die dividiert werden soll und $y der divitent. Richtig?

Das Ergebnis der funktion ist das Ergebnis der Aufgabe? oder TRUE / FALSE ?

$x ist der Divident und $y der Divisor, wobei ich mir nicht sicher bin, ob man das bei Modulus auch so nennt.

Ich kann dir keine math. Regel dazu nenne, aber ein paar Stichproben zeigen, dass die Methode funktioniert (zumindest gehe ich mal davon aus jetzt).

Das ganze wird so gemacht:

Du nimmst eine bestimmte Anzahl an Ziffern vom Anfang deines Dividenden (die Zahl die geteilt werden soll). Diese Anzahl Ziffern bilden eine neue Zahl, die du "modulierst" (wie nennt man diesen Vorgang eigentlich?) Übrig bleibt der Rest der Division. Diesen Rest nimmst du und hängst die gleich Anzahl Ziffern vom Ursprungsdividenden ohne den schon genommenen Ziffern an. Und machst mit dieser neuen Zahl dasselbe.

Am Ende bleibt ein Rest, welches der Rest der Gesamtdivision ist.

Da du nur Teile der Zahl nimmst, kannst du sehr große Zahlen nehmen, nur der Modulus (Divisor) darf nicht > Int sein.

Das funktioniert soweit, nur leider sind immernoch fehlerhafte darstellungen da.

Man betrachte sich http://pascal.topfkuchration.de/?pascal=faktorium&tab=0 und gebe die zahl 22 ein. Ganz unten im Dreieck wird es nicht mehr richtig angezeigt. Obwohl es eigentlich müsste. Aber in diesem Bereich sind wir schon bei 1.2345678E+10 oder so was in der Art. Das sind für den Computer aber ja keine richtigen Zahlen mehr (die einer-Ziffer ist eine Unbekannte)

Das Referat ist im übrigen gut gelaufen. War auch nicht anders zu erwarten ;)

Felix

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.