quote:Here's an interesting note about the inferiority of the rand() function. Try, for example, the following code...
1
2
3
4
5
6
7
8
9
10<?php
$r = array(0,0,0,0,0,0,0,0,0,0,0);
for ($i=0;$i<1000000;$i++) {
$n = rand(0,100000);
if ($n<=10) {
$r[$n]++;
}
}
print_r($r);
?>
which produces something similar to the following output (on my windows box, where RAND_MAX is 32768):
Array
(
[0] => 31
[1] => 0
[2] => 0
[3] => 31
[4] => 0
[5] => 0
[6] => 30
[7] => 0
[8] => 0
[9] => 31
[10] => 0
)
Within this range only multiples of 3 are being selected. Also note that values that are filled are always 30 or 31 (no other values! really!)
Now replace rand() with mt_rand() and see the difference...
Array
(
[0] => 8
[1] => 8
[2] => 14
[3] => 16
[4] => 9
[5] => 11
[6] => 8
[7] => 9
[8] => 7
[9] => 7
[10] => 9
)
Much more randomly distributed!
Conclusion: mt_rand() is not just faster, it is a far superior algorithm.
Gewoon textquote:Op maandag 19 maart 2007 17:44 schreef Chandler het volgende:
[..]
Wat voor informatie? en eventueel zou je alles (van bv een array) om kunnen zetten naar een comma seperated string oid...
In een andere range doet ie het wel beter, zet maar eens rand(0,10.000) ipv rand(0,100.000)quote:Op maandag 19 maart 2007 19:03 schreef HuHu het volgende:
En volgens een comment die bij de rand() staat kun je beter mt_rand() gebruiken, die schijnt betere resultaten in 'randomness' te geven.
[..]
Ik maak altijd mijn eigen errorsquote:Op maandag 19 maart 2007 21:08 schreef splendor het volgende:
Is het mogelijk om in php aan te geven op welke pagina (en eventueel zelfs welke regel) een stuk code zich bevindt?
Ik heb een aantal classes en functies die elkaar aanroepen en als ik een foutmelding in een query krijg staat er vaak At line 1 (functie mysql_error()) en dan is het toch ff zoeken waar de query zelf nou eigenlijk staat. Vandaar dus.
1 2 3 4 5 6 7 | $connection = mysql_connect(..... if (!$connection) $errorlog .= "Could not connect to database in " . $_SERVER['PHP_SELF']; ?> |
http://nl2.php.net/manual/en/language.constants.predefined.phpquote:Op maandag 19 maart 2007 21:08 schreef splendor het volgende:
Is het mogelijk om in php aan te geven op welke pagina (en eventueel zelfs welke regel) een stuk code zich bevindt?
Ik heb een aantal classes en functies die elkaar aanroepen en als ik een foutmelding in een query krijg staat er vaak At line 1 (functie mysql_error()) en dan is het toch ff zoeken waar de query zelf nou eigenlijk staat. Vandaar dus.
het beste kun je dat niet doen. De enige manier (zonder direct database toegang te hebben) is om elk topic met php te openen en dan te bepalen of er wel of geen 300 posts zijn. Dat slibt elke willekeurige server dichtquote:Op dinsdag 20 maart 2007 19:45 schreef RayMania het volgende:
Ik ben een echte n00b qua PHP, maar eigenlijk wil ik wel iets maken. In dit topic staan allemaal topics, en ik wil graag snel kunnen zien wanneer zo'n topic vol is, zodat ik de nieuwe link kan plaatsen. Het aantal posts van een topic moet dus geteld worden, zodat ik bij 300 de link kan verversen. Hoe kan ik dat het beste doen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | if (isset($_POST['topics'])){ $topics = explode("n",$_POST['topics']); foreach ($topics as $topicURL){ if (preg_match("/http:/i", $topicURL)){ $found = false; $lines = @file($topicURL . "/300/1"); $regex = "/class="ap"/i"; if ($lines) foreach ($lines as $line){ if (preg_match ($regex, $line)) $found = true; eregi("<title>(.*)</title>", $line, $title); } if ($found == true) echo "<a href="".$topicURL."">".$title[1]."</a> heeft een 300ste post <br />"; } } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <form method="POST" action="p300.php"> <textarea cols="30" rows="20" name="topics"> http://forum.fok.nl/topic/926270 http://forum.fok.nl/topic/614138 http://forum.fok.nl/topic/845403 http://forum.fok.nl/topic/710464 http://forum.fok.nl/topic/686411 http://forum.fok.nl/topic/946336 http://forum.fok.nl/topic/792154 http://forum.fok.nl/topic/629891 </textarea> <br /> <input type="submit"> </form> |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 | $vid = $_GET["vid"]; ?> <div align="center"> <object width="320" height="258"> <param name="movie" value="http://www.youtube.com/v/<?php echo "$vid" ?>"> </param> <embed src="http://www.youtube.com/v/<?php echo "$vid" ?>" type="application/x-shockwave-flash" width="320" height="258"> </embed> </object> |
1 |
Ik wou exact hetzelfde typenquote:Op donderdag 22 maart 2007 11:28 schreef GI het volgende:
HTML ALLEEN VREDE ZONDER titel
Maar op je vraag: Op die manier. Ik zou alleen de knippen rechts alignen.
En helaas 4 kilobyte te groot.quote:Op donderdag 22 maart 2007 13:24 schreef GI het volgende:
PS, hij is ook klikbaar.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |