代码入下、
<?php /** * @param int $n,牌数 * @return array,洗牌后的牌序 */ function shuffle2 ( $n ) { $arr = range(0, $n - 1); $swap = function (&$x, &$y) { $temp = $x; $x = $y; $y = $temp; }; for ($i = 0; $i < $n - 1; $i ++){ $swap( $arr[ $i ], $arr[ rand($i+1, $n - 1) ] ); } return $arr; } //demo print_r( shuffle2( 54 ) );
输出的结果
这是一道PHP面试题,欢迎大家评论转发,感谢大家观看