NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Off-Topic (http://www.netvision-technik.de/forum/forumdisplay.php?f=44)
-   -   Zahlen vortlaufend Addieren .... (http://www.netvision-technik.de/forum/showthread.php?t=2274)

Cerberus 10.11.2008 21:06

Zahlen vortlaufend Addieren ....
 
Wir hatten gerade dieses Problem ...

Aufgabe: Addiere alle ganzen Zahlen von 0 - 10.000 auf ....

Wie macht man das -- und was kommt raus .....

DirtyPlaya 10.11.2008 21:07

:confused::confused:oje was soll den das werde???

Cerberus 10.11.2008 21:11

ein bissel was, was die Leute hier wissen müssten ...

die meisten sind Schüler und sollten das intus haben ...

Sogar ohne Tante Google

sonst: :no::no:

tantetoni2 10.11.2008 21:30

vielleicht so

PHP-Code:

$ergebnis=0;
for ( 
$x 0$x <= 10000$x++ )
{
  for ( 
$i 0$i <= 10000$i++ )
  {
  
    
$ergebnis $ergebnis+$i;
  
  
  }
}
echo 
$ergebnis

da kommt 500100005000 raus

Cerberus 10.11.2008 21:34

zu viel rechnerei ...

1 Zeile ist Notwendig .....

dauert zu lange :)

sorry ....

tantetoni2 10.11.2008 21:37

hab was gefunden
PHP-Code:

echo pow(10000,10000); 

number pow ( number $base, number $exp )

Mit pow() kann man die Zahl base mit dem Faktor exp potenzieren (base hoch exp) lassen.


Beispiel

PHP-Code:

<?PHP
echo pow 3);
// Ergibt 3 * 3 * 3 * 3 = 81
?>


Cerberus 10.11.2008 21:40

löl ....

der weiß das sicher .....

aba schon komisch -- wir ham sowas in der Schule gehabt ...

ist bei mir nu ca. 15 Jahre her

tantetoni2 10.11.2008 21:45

ja funzt kommt das gleiche raus wie mit den beiden schleifen

Cerberus 10.11.2008 21:48

also dien Ergebnis ist leider Falsch ....

du sollte ja nicht zur Vorherigen Summe die neue Zahl addieren, sondern du sollt ja rechnen
Code:

0+1+2+3+4+5+6+7+8+9+.....
Ergebnis der Aufgabe ist: 50005000

tantetoni2 10.11.2008 21:49

achso meinst du das dann habe ich es falsch verstanden



--======================================--
--==
automatische Beitragszusammenführung ==--
--======================================--

tantetoni2 schrieb nach 4 Minuten und 29 Sekunden:

dann musste es so machen
PHP-Code:

$ergebnis=0;
for ( 
$i 0$i <= 10000$i++ ) { $ergebnis $ergebnis+$i; }
echo 
$ergebnis


HaBe 10.11.2008 21:55

ich kenne das nur in kleinerem maßstab mit den zahlen von 0 - 100, aber denke das prinzip ist gleich:
man nimmt immer die jeweils erste und letzte noch nicht betrachtete zahl und addiert diese => das ergebnis ist immer 100. das macht man dann eben 50 mal und hat dann noch die 50 übrig => 5050. überträgt man das auf diese aufgabe, so kommt man zum gesuchten ergebnis...

Solstice 10.11.2008 22:01

Alle aufaddieren ist doch leicht...
is so ähnlich wie die fakulät.

Berechnung:
PHP-Code:

function adding($zahl)
{
if (
$zahl == 0)
return 
0;

return 
adding($zahl 1) + $zahl ;


is ne rekursive funktion...
bei 10.000 zieht die natütlich etwas, aber so ist es richtig berechnet, und einfacher gehts auch nicht.

mfg,
Sol

Ps.: is auch noch volldynamisch XD

Cerberus 11.11.2008 06:17

alles viel zu kompliziert ...
und der Ansatz von HaBe ist zwar gut -- aber die Lösung ist trotzdem falsch ...

leider...

Wenn ich es auflösen soll, müßt ihrs nur sagen :D

Solstice 11.11.2008 06:45

also die lösung von meinem is richtig...
oder wie mneinst du dass es berechnet werden soll....?

ich dachte alle zahlen von 0- *übergebene Zahl* aufaddieren.
das tut die funktion...
habs spasseshalber auch ausprobiert...

mfg,
Sol

Cerberus 11.11.2008 07:01

ja schon ...

aber erstens dauert es zu lange und zweitens rechnest du zu viel ....

es gibt für das Problem eine einzige Formel :)
ohne Schleife oder sonstwas :)

PS: das kann man so auch auf nem Zettel rechnen -- mit ner Schleife wird das "Problematisch"

GlasFist 11.11.2008 07:05

also ich würds auch so wie tantetoni2 machen

PHP-Code:

$ergebnis=0;
for ( 
$x 0$x <= 10000$x++ )
{
  for ( 
$i 0$i <= 10000$i++ )
  {
  
    
$ergebnis $ergebnis+$i;
  
  
  }
}
echo 
$ergebnis


Cerberus 11.11.2008 07:06

ist aber falsch !!!!

GlasFist 11.11.2008 07:10

naja ich mein ja nur so hätte ich es spontan auch gemacht....

später vllt so wie sol aber in einer zeile kA

von mir aus auflösen

Cerberus 11.11.2008 15:21

hmm ...
kommt noch was hier ???

sonst löß ich heute Abend mal auf :)



--======================================--
--==
automatische Beitragszusammenführung ==--
--======================================--

Cerberus schrieb nach 16 Stunden, 24 Minuten und 38 Sekunden:

so ...

dann will ich euch mal "erlösen" .....

die Formel lautet:
Code:

x=(n+1)*(n/2)
mal zu Erklärung:
Nehmen wir mal die Zahlen von 1-10.
10 + 1 = 11
9 + 2 = 11
8 + 3 = 11
7 + 4 = 11
6 + 5 = 11

Weiter müssen wir nicht Addieren, da wir ja jetzt schon in der Mitte angekommen sind. Wir haben also 5 Additionen durchgeführt. Anhand des Ergebnisses sehen wir, das es immer um 1 größer ist, als die Zahl, bis zu welcher wir Aufaddieren sollen.

Daraus ergibt sich diese Formel :)

So -- nu habt ihr was, um in der Schule zu "bransen" :D

PS: der Entdecker dieses Umstandes ist Carl Gustav von Gaus ....
Nachzulesen in jedem Lexikon, bei Google oder der Wikipedia


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2025, vBulletin Solutions, Inc.