随机种子数组洗牌

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机种子数组洗牌相关的知识,希望对你有一定的参考价值。

Repeatable Fisher Yates Array Shuffle based on given random string. If no seed is provided the current second will be used (not to use as a pure random shuffle... based on microseconds)
  1. function fyshuffle(&$items,$seedstring) {
  2. if (!$seedstring) {
  3. $seedval = time();
  4. } else {
  5. if (is_numeric($seedstring)) {
  6. $seedval = $seedstring;
  7. } else {
  8. for($i=0;$i<=strlen($seedstring);$i++) {
  9. $seedval += ord($seedstring[$i]);
  10. }
  11. }
  12.  
  13. srand($seedval);
  14. for ($i = count($items) - 1; $i > 0; $i--) {
  15. $j = @rand(0, $i);
  16. $tmp = $items[$i];
  17. $items[$i] = $items[$j];
  18. $items[$j] = $tmp;
  19. }
  20. }

以上是关于随机种子数组洗牌的主要内容,如果未能解决你的问题,请参考以下文章

VB洗牌算法产生随机数组

如何在 C# 中以相同的方式随机化/洗牌两个数组

如何在Windows设备之间使用相同的随机种子?

随机打乱数组顺序之随机洗牌算法

如何随机洗牌一个数组

随机洗牌