2Danke
ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
372
372
EMPFEHLEN
-
hallo zusammen,
ich habe eine kleine Frage.
Ich habe einen kleinen Code:
Code :1 2 3 4 5
for (int i = 2; i <= n; i++){ for (int j = i; j <= n; j = j*i){ print "Answeisung"; } }
Das ist jetzt keine bestimmte Programmiersprache oder so. Ich möchte jetzt gerne analyisieren, wie oftaufgerufen wird. Wie geht das? das j=j*i überfordert mich etwasCode :1
print "Anweisung"
Vielen Dank im voraus
GrußGeändert von Jens K (16.04.10 um 19:48 Uhr) Grund: Code ausgebessert
-
Gar kein mal oder endlos, weil 1*1 = 1 ist und 1 ist immer gleich 1 oder eben größer, falls n kleiner als 1 ist, und dann bricht es schon vorher ab

Edit: Wie das geht? Einfach mal mit n = 2 z.b. Anfangen und gucken was passiert
schleife 1:
i = 1.
i < 2
schleife 2:
j = i =1.
i < 2 (da sollte vielleicht j hin?)
--ausgabe--
j = 1*1 = 1.
j = i = 1.
i < 2
--ausgabe--
.... usw.Geändert von Larrywayn (16.04.10 um 18:11 Uhr)
http://larrywayn.pytalhost.eu xD
Friss zeurst, sonst wirst du gefressen.
-
ooh ja genau da hast du recht, da sollte ein j hin und es muss heißen i=2, habe mich verschrieben

also
Code :1 2 3 4 5
for (int i = 2; i <= n; i++){ for (int j = i; j <= n; j = j*i){ print "Answeisung"; } }
-
Mathematische Formel fällt mir auch keine sinnvolle
Höchstens als Ersatz für die innere Schleife
(int)(1/(nlog(i)))
also den ganzzahligen Teil des Kehrwerts vom n-ten Logarithmus von i
Die äussere Schleife zum aufsummieren kommt dann aber noch dazu.
Für sehr größe n ist die Log-Variante vielleicht schneller, als die Doppelschleife
-
ok. sehr interessant, aber bei mir bleiben noch ein paar Fragen offen?
Wie kommst du auf dieses Ergebnis? und welche Basis hat der Logarithmus?
meintest du die Formel so, wie sie im Anhang steht?
-
Hi,
ich komme auf folgendes:
Die Summe von i=2 nach n mit log(n) zur Basis i und dies noch abgerundet.
Als Formel nochmal im Anhang.
Für jedes i wird "print "Answeisung";" ausgeführt, solange
i^x <= n
gilt. x ist dabei immer eine ganze Zahl.
-
hi,
viele dank für deine Antwort. Sie klingt sehr logisch und man kann sie auch nachvollziehen!! Jetzt muss ich nur noch versuchen die Formel zu verkürzen. Möchte nämlich eine Abschätzung machen, dass dieser Ausdruck kleiner als <= c*n ist. c,n sind natürliche Zahlen
gruß
-
Nein, ich hab nicht n mal, sondern Basis n gemeint.
Aber so wie dki geschrieben hat, kann man sich den Kehrwert auch gleich sparen, ansonsten ist es gleich.
-
Naja, wenn du die asymptotische obere Schranke bestimmen willst, dann würde ich es auf O(n) abschätzen.
-
ja wäre am sinvollsten
Ähnliche Themen
-
Vereinfachen eines Codes
Von silv20 im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 24.08.10, 10:07 -
#Analyse eines Datenblocks(Text) in Excel#
Von webcamping im Forum Office-AnwendungenAntworten: 5Letzter Beitrag: 09.01.09, 15:33 -
Integration eines PHP Codes in $row
Von GoldenEye im Forum PHPAntworten: 7Letzter Beitrag: 16.04.08, 18:00 -
Einlesen und Analyse eines Logfiles
Von hankenberge im Forum JavaAntworten: 1Letzter Beitrag: 22.12.04, 15:20 -
Frauen: Analyse aus der Sicht eines Chemikers
Von Thimo Grauerholz im Forum Fun-ForumAntworten: 8Letzter Beitrag: 21.06.01, 09:44





Zitieren

Login





