PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mathematische Spielerei.


HyperX
2007-12-25, 00:54:05
Hallo, Brauche eine Schnelle Lösung für Folgendes
"Problem" :wink:

Es geht um Folgendes:

1. Alle Zahlen von 1 - 100 sollen Addiert werden.

(Und zwar wenn es geht ohne alles einzeln in den
Taschenrechner tippen zu müssen)

2. Das Endergebnis Merken.

3. Alle Zahlen von 1 - 100 Multiplizieren.

(Selbes Prinzip wie oben)

4. Beide Ergebnisse addieren.

5. Lösungsweg Notieren.

(Denn mann soll ja nicht Simpel jede einzelne Zahl im
Rechner eintippen.)

6. Das ganze soll sinn ergeben.



MFG ~~ HyperX ~~ :cool:

Little Lamer
2007-12-25, 01:03:56
muss mathematisch mit folgen [ (n-1)/n oder so ] , bzw mit fakultät gehn...

HyperX
2007-12-25, 01:08:50
muss mathematisch mit folgen [ (n-1)/n oder so ] , bzw mit fakultät gehn...


Hmm... Ich hab keine ahnung. Hab schon wer weiß wie lange
drüber nachgedacht.

Ps: Ein Kollege hat mir diese "Aufgabe" zugeschickt - Will mir aber
partout die Lösung nicht verraten :mad:

sei laut
2007-12-25, 01:12:08
Ich weiß, wie man 1. und 3. rechnet, 4. ist für die Katz und 6. logisch.
2. ist wohl die größte Herausforderung, danach die 7., der Sinn leuchtet mir nicht ein. :D

1. Der Durchschnitt der Zahlen von 1-100 ist 50. Also 50x50 gerechnet, damit addiert man alle Zahlen. Da die 0 nicht dabei ist, müssen wir noch 50 abziehen
3. n!, also hier 100! rechnen

kloffy
2007-12-25, 01:13:49
sum{i=1 bis n}(i) = n(n+1)/2

HyperX
2007-12-25, 01:14:20
Ich weiß, wie man 1. und 3. rechnet, 4. ist für die Katz und 6. logisch.
2. ist wohl die größte Herausforderung, danach die 7., der Sinn leuchtet mir nicht ein. :D


Dann teile die Lösung mit uns/mir.

Am besten in nem Spoiler.


(PS: Mir ist ein Tippfehler bei mir oben aufgefallen Hab es Editiert)

sei laut
2007-12-25, 01:16:12
Ich bin über 20, da brauchte das Zeit.. X-D
Edit: Für Richtigkeit bei 1. gibts keine Garantie.

HyperX
2007-12-25, 01:20:07
Ich bin über 20, da brauchte das Zeit.. X-D
Edit: Für Richtigkeit bei 1. gibts keine Garantie.

1. Ist auch Falsch. Wenn ich richtig nachgerechnet haben sollte. :confused:


Ergebnis für 1 müsste sein:
-> 4961
und nicht 2450 wie bei deinem Lösungsansatz.


sum{i=1 bis n}(i) = n(n+1)/2

WTF?

kloffy
2007-12-25, 01:21:05
6. Das ganze soll sinn ergeben.
Hm, 100*(100+1)/2 + 100! = 9.33262154 × 10^157... :|

HyperX
2007-12-25, 01:23:50
PS: Sry. das mit dem "Sinn" hat er mir genauso geschrieben.

Was das genau soll weiß ich auch nicht - Denke mal das er
es vereinfacht haben will oder so.. bzw. Ka wayne! .. Hauptsache die
Gleichung stimmt... :|

@ Kloffy:

((100 * (100 + 1)) / 2) + 100 <- Das stimmt doch nicht? :confused:

€dit: Oder laber ich müll?

tombman
2007-12-25, 01:48:32
Also 1 ist easy. Das hat der junge GAUSS als Schüler schon gerechnet, und damit seinen Lehrer geowned. Sollte eine Strafaufgabe sein, und er hats in Sekunden gelöst ;)

Im Alter von neun Jahren kam Gauß in die Volksschule. Dort stellte sein Lehrer Büttner seinen Schülern als Beschäftigung die Aufgabe, die Zahlen von 1 bis 100 zu summieren. Gauß hatte sie allerdings nach kürzester Zeit gelöst, indem er 50 Paare mit der Summe 101 bildete (1 + 100, 2 + 99, ..., 50 + 51) und 5050 als Ergebnis erhielt. Die daraus resultierende Formel wird gelegentlich auch als „der kleine Gauß“ bezeichnet.

Gertz
2007-12-25, 01:53:07
mal eben ganz q'n'd gefrickelt.



zahl1 = 100;
for (i=1;i<=zahl1;i++)
{
zahl2 = i + zahl2;
}
cout << zahl2;

for (i=1;i<=zahl1;i++)
{
zahl3 = i * zahl3;
}
cout << zahl3;
zahl3 = zahl3 + zahl2;
cout << zahl3;




sollte afaik so klappen.

(falls nicht, egal, zu spaet, nicht viel gedacht. ;)

kloffy
2007-12-25, 01:59:45
mal eben ganz q'n'd gefrickelt.
Das dürfte den ein oder anderen integer overflow geben...

tombman
2007-12-25, 02:04:24
Leute, habt ihr schon kapiert, daß ihr keine technischen Hilfsmittel nutzen sollt?

Ne Schleife in den PC jagen kann ja jeder.

DerRob
2007-12-25, 02:04:39
((100 * (100 + 1)) / 2) + 100 <- Das stimmt doch nicht? :confused:
100*(100+1)/2 ist die lösung für den ersten teil, und 100! ist die lösung für den 2. teil.

auf die erste lösung bin ich auch gleich beim lesen der aufgabe gekommen (50*101), aber bei der 2. bin ich immer noch am grübeln, wie man da ohne taschenrechner mit dieser n!-funktion drauf kommen soll.

Gertz
2007-12-25, 02:09:14
Das dürfte den ein oder anderen integer overflow geben...
machen wir halt nen long draus. ;)

ich habs nicht getestet, sondern einfach so aufgeschrieben, wie ich es denk. ;)

HyperX
2007-12-25, 02:09:34
100*(100+1)/2 ist die lösung für den ersten teil, und 100! ist die lösung für den 2. teil.

auf die erste lösung bin ich auch gleich beim lesen der aufgabe gekommen (50*101), aber bei der 2. bin ich immer noch am grübeln, wie man da ohne taschenrechner mit dieser n!-funktion drauf kommen soll.


Ok.. Mittlerweile habe selbst ich :cool: Teil 1 Kapiert.
Der "Kleine Gauss" war ne Klasse Stütze :biggrin:


aber wie soll die 3 Gehn... :eek:


Teil 4 ist ja nur noch Addieren und fast schon überflüssig... X-D

Gertz
2007-12-25, 02:10:55
Leute, habt ihr schon kapiert, daß ihr keine technischen Hilfsmittel nutzen sollt?

Ne Schleife in den PC jagen kann ja jeder.
wollen wir wetten nicht? ;)
irgendwer muss es schliesslich programmieren, und da viele das nicht koennen.. (ich sehe schon einige leute, den quälcode oben angaffen und nicht wissend was ich schrieb)

aber du mist ja der meister aller klassen. :umassa: SOHN DES CHUCKS! :umassa:

tombman
2007-12-25, 02:11:39
Die 3.) könnte auch Verarsche sein, denn wie soll man ohne Rechner auf diese Lösung kommen?

9,3326215443944152681699238856267e+157

= Taschenrechner in Windows (100!)

Die Zahl ist viel zu groß für händisches Rechnen.

HyperX
2007-12-25, 02:12:36
Die 3.) könnte auch Verarsche sein, denn wie soll man ohne Rechner auf diese Lösung kommen?

9,3326215443944152681699238856267e+157

= Taschenrechner in Windows


WTF! Haste alles eingegeben :rolleyes:


... Klingt "unmöglich" im Kopf auszurechnen.

BZW. Er hat ja nicht ausdrücklich Verboten den Taschenrechner zu nutzen.

Es heißt ja nur man soll die Zahlen nicht hintereinender eingeben also nicht
1+2+3+4+5.. oder 1*2*3*4 usw...

sei laut
2007-12-25, 02:13:58
Äh, nein, er hat nicht alles eingegeben. Wozu gibt es n!? Das sind 2 Klicks auf einem Taschenrechner.
Ok, bei der 1. hab ich mich vertan, da hatte ich was falsch in Erinnerung. Schon solange her. :D

Gertz
2007-12-25, 02:14:30
WTF! Haste alles eingegeben :rolleyes:


... Klingt "unmöglich" im Kopf auszurechnen.
omg..

100 eingegeben und die taste "n!" gedrueckt?

Gertz
2007-12-25, 02:15:51
WTF! Haste alles eingegeben :rolleyes:


... Klingt "unmöglich" im Kopf auszurechnen.

BZW. Er hat ja nicht ausdrücklich Verboten den Taschenrechner zu nutzen.

Es heißt ja nur man soll die Zahlen nicht hintereinender eingeben also nicht
1+2+3+4+5.. oder 1*2*3*4 usw...
dann sollte mein quelltext gehen.. bis auf den overflow der zweiten schleife. ;)

tombman
2007-12-25, 02:16:09
Es heißt ja nur man soll die Zahlen nicht hintereinender eingeben also nicht
1+2+3+4+5.. oder 1*2*3*4 usw... [/B]
Ok, dann habe ichs ja gelöst ;)

Das Zusammenzählen etc ist ja nur mehr Makulatur.

HyperX
2007-12-25, 02:19:36
omg..

100 eingegeben und die taste "n!" gedrueckt?

Ach echt :cool:

Ok, dann habe ichs ja gelöst ;)

Das Zusammenzählen etc ist ja nur mehr Makulatur.

Jo.. Denke ich.

Denn ich denke wirklich das es ganz ohne TR. nicht zu lösen wäre
und es steht ja nur da "Nicht Simpel hintereinander weg eintippen"
-Sollte also "Regel" konform sein. (y)

Gertz
2007-12-25, 02:21:44
Ach echt :cool:



Jo.. Denke ich.

Denn ich denke wirklich das es ganz ohne TR. nicht zu lösen wäre
und es steht ja nur da "Nicht Simpel hintereinander weg eintippen"
-Sollte also "Regel" konform sein. (y)
ja echt.. (wer bloed fragt und so.. -.-")


Demnach ist es mein quellcode auch.. ;)

DerRob
2007-12-25, 02:24:14
Denn ich denke wirklich das es ganz ohne TR. nicht zu lösen wäre
das ist nichtmal MIT vielen taschenrechnern lösbar, die meisten machen nämlich schon bei 70! schlapp, weil die zahl dann schon mehr als 100 stellen hat :eek:

HyperX
2007-12-25, 02:26:02
ja echt.. (wer bloed fragt und so.. -.-")


Demnach ist es mein quellcode auch.. ;)


Ich dachte mein Smiley schützt mich vor
diesem Spruch :rolleyes: <- Da isser schon wieder "Unnützer Bub"


Haste es denn schon mal mit deinem QC ausprobiert?
(Nur zur Sicherheit)

Gertz
2007-12-25, 02:28:51
der loesungsweg ist richtig. (soweit ich denk, hab grad keinen compiler zur hand, muss eben aufn schulserver mein programm saugen)..

wenn man die variablen als long dimensioniert sollte es klappen. ;)

(btw: der quellcode ist nirgends herkopiert, sondern einfach mal eben eingetippt, was mir in den sinn kam.)

hasufell
2007-12-25, 02:30:05
zu 1: 5050

hasufell
2007-12-25, 02:44:44
dass ein ähnlich simples prinzip bei 3 geht bezweifle ich

da gibts afaik keine Formel für die man ohne ein Rechenwerk bewältigen könnte

1 geht natürlich so:

0+100 =100
1+99 =100
2+98 =100
...
48+52 =100
49+51 =100
50

=> 50*100+50 =5050


endergebnis wäre nichtsdestotrotz:
93326215443944152681699238856266700490715968264381621468592963895217599993229915 608941463976156518286253697920827223758251185210916864000000000000000000005050

DerRob
2007-12-25, 03:02:46
wenn man die variablen als long dimensioniert sollte es klappen. ;)
wie groß ist denn der wertebereich von so einer long-variable. im internet finde ich mehrere widersprüchliche angaben, bei java sinds wohl 64 bit, bei vb nur 32 bit.

allerdings ist beides viel zu klein. wenn ich mich nicht verrechnet habe, müsste die variable nämlich mindestens 525 bit groß sein, um das ergebnis speichern zu können... :eek:

Gertz
2007-12-25, 03:14:30
wie groß ist denn der wertebereich von so einer long-variable. im internet finde ich mehrere widersprüchliche angaben, bei java sinds wohl 64 bit, bei vb nur 32 bit.

allerdings ist beides viel zu klein. wenn ich mich nicht verrechnet habe, müsste die variable nämlich mindestens 525 bit groß sein, um das ergebnis speichern zu können... :eek:
ja.. hab ich auch vorhin gemerkt.. soweit ich weiss geht unsigned long int.. bin mir aber nicht sicher.. ;)

patermatrix
2007-12-25, 11:25:25
Hmm... aths' attic (http://www.aths.de/attic/) ist leider nicht mehr verfügbar, da gäbe es irgendwo schöne Gedankengänge zur Berechnung der Fakultät, inkl. 10'000! :biggrin:

Diarrhorus
2007-12-25, 12:29:06
Vielleicht hilft das:
http://de.wikipedia.org/wiki/Stirling-Formel

Schlangenbruder
2007-12-25, 12:34:31
ja.. hab ich auch vorhin gemerkt.. soweit ich weiss geht unsigned long int.. bin mir aber nicht sicher.. ;)
Auch u long int reicht dafür nicht...
Habs mal eben nachgerechnet und das Ergebnis von hasufell stimmt. ;)

Gertz
2007-12-25, 18:18:33
Auch u long int reicht dafür nicht...
Habs mal eben nachgerechnet und das Ergebnis von hasufell stimmt. ;)
hmm, ja is mir auch aufgefallen...
das is der fehler. ;) sonst wuerde es laufen.

evil.Ami
2007-12-27, 03:47:06
nur mal ne kleine Verständnisfrage zu 3.
ich soll quasi die ersten 2 Zahlen multiplizieren (also 1*2) und das ergebnis dann mit der nächsten Zahl multiplizieren (also 2*3). nur das ich das jetzt richtig verstehe.

Ich gebs zu, ich hab geschumelt, und die oO Tabellenkalkulation bemüht (wobei, eigendlich hat oo das für mich gamcht... also hab ich sie nicht einzeln eingetippt*g*), nur kann mit dem ergebniss nit viel anfangen. Das da wäre 1,87E+158
Erleuchtet mich mal.

Ami

DerRob
2007-12-27, 05:07:36
nur mal ne kleine Verständnisfrage zu 3.
ich soll quasi die ersten 2 Zahlen multiplizieren (also 1*2) und das ergebnis dann mit der nächsten Zahl multiplizieren (also 2*3). nur das ich das jetzt richtig verstehe.

Ich gebs zu, ich hab geschumelt, und die oO Tabellenkalkulation bemüht (wobei, eigendlich hat oo das für mich gamcht... also hab ich sie nicht einzeln eingetippt*g*), nur kann mit dem ergebniss nit viel anfangen. Das da wäre 1,87E+158
Erleuchtet mich mal.
jo, 1*2*3*4*5*... usw.
aber irgendwo hast du da wohl einen fehler gemacht, das ergebnis lautet nämlich 9,33e+157.

AlSvartr
2007-12-27, 09:08:24
Mit dem einfachen Stirling kommt man immerhin schon auf 9.32484763*10^157, das entspricht der Stirlingschen Reihenentwicklung mit 2 Gliedern. Mit 3 Gliedern ist man immerhin schon auf 8 Stellen genau: e^(100*ln(100)-100+0.5*ln(2*pi*100)+1/(12*100))=9.33262157*10^157 :)

!_Tomcat_!
2007-12-27, 10:54:24
Hier stand ganz viel "C"-Müll

Malabolge
2007-12-27, 11:45:07
wie wärs mit :

zahlmulti=zahlmulti * i :wink:

patermatrix
2007-12-27, 12:23:33
Und dann vielleicht noch
for(int i=1; 1 <= 100; i++)
korrigieren zu
for(int i=1; i <= 100; i++)
da 1 logischerweise immer kleiner gleich 100 ist und die Abbruchbedingung nie erfüllt wird, was auch folgende Feststellung erklärten dürft:
da läuft sich das "Programm" (wenn man es überhaupt so nennen darph) schließlich tot....
Endlosschleife ;)

€: Du hast da noch ein paar Fehler drin mit = vs. ==. Das erste ist eine Zuweisung, das zweite ein Vergleich. Eigentlich sollte das so gar nicht kompilieren? :|

!_Tomcat_!
2007-12-27, 12:23:45
Hier stand ganz viel "C"-Müll

patermatrix
2007-12-27, 12:29:15
Any ideas?
€: Du hast da noch ein paar Fehler drin mit = vs. ==. Das erste ist eine Zuweisung, das zweite ein Vergleich.
;)

!_Tomcat_!
2007-12-27, 12:32:03
Hier stand ganz viel "C"-Müll

Schlangenbruder
2007-12-27, 12:32:53
Seltsamer Quellcode, solltest du vielleicht nochmal anschauen. ;) Bei C besonders aufpassen, ob man '=', oder '==' verwendet, das sorgt oft für tolle Fehler, die man ewig nicht findet.
Hier mit Java, die Addition hab ich mir mal erlaubt, abzukürzen, das geht schließlich auch ohne Computer:
http://img242.imageshack.us/img242/2148/bigintbt3.png

patermatrix
2007-12-27, 12:44:32
Und jetzt, wo drückt der Schuh nun schon wieder? :(
zahladdi == 0; //macht nyx
zahlmulti == 0;
ersetzt durch
zahladdi = 0; //weist Wert '0' zu
zahlmulti = 0;
?

€: Ein korrektes Resultat wirst du wegen der angesprochenen Problematik (Bereichsüberlauf) ohnehin nicht erhalten... :D

!_Tomcat_!
2007-12-27, 12:49:54
Die ganze Programmiererei ist wohl doch schon zu lange her :frown:

patermatrix
2007-12-27, 12:55:35
Huh? Ich dachte = nimmt man bei Operationen und == bei Zuweisungen und logischen Abfragen? :confused:

= ist eine Zuweisung, wobei es zwischen
a = b + c; //Resultat von (b+c) wird a zugewiesen
und
a = 1; //Wert '1' wird a zugewiesen
keinen Unterschied gibt.

a == 1; //Wert '1' wird mit dem Wert von a verglichen
ist ein logischer Vergleich, der entweder true oder false zurückliefert.

€: Wenn man es ganz genau nimmt, entspricht das programmiertechnische '=' dem mathematischen ':=' (Zuweisung), während das mathematische '=' ebenso wie das programmiertechnische '==' eine Aquivalenzrelation darstellen.

Lyka
2007-12-27, 12:56:24
Also 1 ist easy. Das hat der junge GAUSS als Schüler schon gerechnet, und damit seinen Lehrer geowned. Sollte eine Strafaufgabe sein, und er hats in Sekunden gelöst ;)

(y) so siehts aus, wollt ich auch gerade posten ;D

€: in Basic siehts so aus :
x=0:for i=1 to 100:x=x+i:next:print x
y=1: for i=1 to 100: y=y*i:next: print y

DerRob
2007-12-27, 13:05:36
Die ganze Programmiererei ist wohl doch schon zu lange her :frown:
du solltest auch bei der multiplikation nicht mit der 0 anfangen: 0*1=0, 0*2=0, 0*3=0, usw. da bleibt dein endergebnis immer bei 0 ;)

Gertz
2007-12-28, 17:12:38
(y) so siehts aus, wollt ich auch gerade posten ;D

€: in Basic siehts so aus :
x=0:for i=1 to 100:x=x+i:next:print x
y=1: for i=1 to 100: y=y*i:next: print y
schoen unuebersichtlich.^^ also vom style her.