new files
This commit is contained in:
parent
3af7344581
commit
86c034bb8b
1364 changed files with 21352 additions and 0 deletions
18
Task/Knuth-shuffle/PHP/knuth-shuffle.php
Normal file
18
Task/Knuth-shuffle/PHP/knuth-shuffle.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
//The Fisher-Yates original Method
|
||||
function yates_shuffle($arr){
|
||||
$shuffled = Array();
|
||||
while($arr){
|
||||
$rnd = array_rand($arr);
|
||||
$shuffled[] = $arr[$rnd];
|
||||
array_splice($arr, $rnd, 1);
|
||||
}
|
||||
return $shuffled;
|
||||
}
|
||||
|
||||
//The modern Durstenfeld-Knuth algorithm
|
||||
function knuth_shuffle(&$arr){
|
||||
for($i=count($arr)-1;$i>0;$i--){
|
||||
$rnd = mt_rand(0,$i);
|
||||
list($arr[$i], $arr[$rnd]) = array($arr[$rnd], $arr[$i]);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue