globe: Noch mehr Zufälle

Beitrag lesen

n'abend,

  1. Durchlauf:

randomString() took 0.505483865738 seconds and generated 559 unique strings in 10000 runs
    get_random_str() took 0.520390033722 seconds and generated 10000 unique strings in 10000 runs

  1. Durchlauf:

randomString() took 0.470019102097 seconds and generated 559 unique strings in 10000 runs
    get_random_str() took 0.521300077438 seconds and generated 10000 unique strings in 10000 runs

  1. Durchlauf

randomString() took 0.528935909271 seconds and generated 559 unique strings in 10000 runs
   get_random_str() took 0.467758178711 seconds and generated 10000 unique strings in 10000 runs

Wenn ich dein Script bei mir ausführe:

randomString() took 0.323642969131 seconds and generated 10000 unique strings in 10000 runs
get_random_str() took 0.680213928223 seconds and generated 10000 unique strings in 10000 runs

Wieso erzeiugt die Array-Lösung bei mir immer 559 unique Strings?

Das kann ich - da es bei mir nicht vorkommt - nicht nachvollziehen.

Das Geheimnis wird wohl in array_rand() liegen.
Ich habe noch nicht in den Quelltext geschaut, wie das nun wieder den Parameter num_req umsetzt.
http://de3.php.net/manual/en/function.array-rand.php

$num_req spezifiziert - wie die Doku schon sagt - die (maximale) Anzahl der Indexe, die man zurück bekommen möchte.

Ich hätte intuitiv das gesamte Array verwürfelt und dann nur die $len Stück in der foreach-Schliefe ausgeschnitten, also foreach bei $len abgebrochen.

Das wäre sicher auch eine Möglichkeit gewesen. Stellt sich die Frage wie das mit der Ausführungszeit ausschaut. Kannst du ja mal ausprobieren ;)

Der Bremser in der String-Lösung war aber eindeutig die while()-Schleife

Wusstest du, dass du auf einen String wie auf ein Array von Zeichen zugreifen kannst?

aus substr($zeichen, mt_rand(0,strlen($zeichen)-1),1) kann man einfachst $strlen = strlen($zeichen); $zeichen[ mt_rand( 0, $strlen ) -1 ] machen. Bemerke auch, dass ich das strlen() herausgezogen habe. Das ist wieder so ein Fall von "unveränderliche Werte andauernd neu berechnen" - vollkommen unnötig.

weiterhin schönen abend...

--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|