delphi – 随机化StringList

前端之家收集整理的这篇文章主要介绍了delphi – 随机化StringList前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在StringList中随机化String,同样地,这个在线工具如何工作.如果有人熟悉它,请检查: http://textmechanic.co/Randomize-List.html

解决方法

执行随机播放的一个常见算法是 Fisher-Yates shuffle.这产生均匀分布的排列.

要在Delphi TStrings对象上实现,可以使用:

procedure Shuffle(Strings: TStrings);
var
  i: Integer;
begin
  for i := Strings.Count-1 downto 1 do 
    Strings.Exchange(i,Random(i+1));
end;

现在,理论上,这将产生均匀分布的排列,实际的性能在很大程度上取决于随机数发生器的质量.这在Knuth的计算机编程艺术,第2卷,3.4.2节,算法P.

进一步阅读:

> Fisher-Yates shuffle(维基百科)
> Jeff Attwood的两篇关于洗牌的博客文章ShufflingThe Danger of Naïveté
> The intuition behind Fisher-Yates shuffling(Eli Bendersky)
> Art of Computer Programming,唐纳德·克努特,卷2,第3.4.2节
> Shuffling(维基百科)

猜你在找的Delphi相关文章