如何在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的两篇关于洗牌的博客文章:Shuffling和The Danger of Naïveté
> The intuition behind Fisher-Yates shuffling(Eli Bendersky)
> Art of Computer Programming,唐纳德·克努特,卷2,第3.4.2节
> Shuffling(维基百科)

delphi – 随机化StringList的更多相关文章

  1. swift算法实践2

    字符串hash算法Time33在效率和随机性两方面上俱佳。对于一个Hash函数,评价其优劣的标准应为随机性,即对任意一组标本,进入Hash表每一个单元之概率的平均程度,因为这个概率越平均,数据在表中的分布就越平均,表的空间利用率就越高。Times33的算法很简单,就是不断的乘33,见下面算法原型。

  2. 深度学习中的五大正则化方法和七大优化策略

    utm_source=tuicool&utm_medium=referral深度学习中的正则化与优化策略一直是非常重要的部分,它们很大程度上决定了模型的泛化与收敛等性能。本文主要以深度卷积网络为例,探讨了深度学习中的五项正则化与七项优化策略,并重点解释了当前最为流行的Adam优化算法。为了解决这些问题,近年来研究者开发了多种正则化和优化策略。机器学习中最常用的正则化方法是对权重施加L2范数约束。

  3. php – 如何生成这种随机曲线?

    是否有可能产生这种随机曲线?

  4. Java(或任何语言)中的随机混乱概率

    虽然我理解算法,但我不理解他的概率计算.他说,因为Random使用32位种子,这仅限于2^32种不同的排列.他还说knuth的算法更好,因为它给你N!排列.我同意knuth的算法计算.但我认为在第一个上应该有N^N个不同的排列.塞奇威克错了还是我错过了一个事实?

  5. 平面上的均匀分布点在java中聚集,为什么?

    我想在*100平面上生成均匀分布的圆/点/节点.为此我在java中使用Random()方法.具体来说,我是按照以下方式进行的:但问题在于,当我一遍又一遍地运行代码时,节点在平面上没有均匀间隔,即,存在集中的集群和一些未占用空间的块.任何想法,建议将受到高度赞赏.下图显示了具有簇和空白区域的典型输出.圆圈的数量只是圆圈的ID.解决方法如果你希望你的随机分布看起来更“均匀”,那就是你想要更均匀地覆盖空

  6. Java 8:IntStream到Integer []

    我正在编写简单的程序,它最终会绘制用Java编写的各种排序算法的运行时间.排序算法的一般接口是通过一种方法:publicvoidsort我试图使用Java8的流机制生成以下几行的随机测试用例:我的问题是,如何将IntStream类型的对象转换为Integer[]?解决方法您应该将IntStreambox转换为流,然后调用toArray来生成它的数组:

  7. Java Generator for Poisson and Uniform Distributions?

    根据我的理解,标准发生器用于正态分布.我必须根据正常,统一和泊松分布生成随机数,但是我似乎找不到最后一个2的类.我必须在0–999999的范围内生成它们.解决方法正如David所指出的那样,提供的伪随机数生成器使用均匀分布.对于其他两个,我将使用CernColt库函数:>Poisson>Normal/Gaussian这些库函数很容易让您找到从每个分布中获取的随机数,而不是给出概率密度函数或累积密度

  8. c – random_shuffle算法 – 是否产生了没有随机生成函数的相同结果?

    如果没有为标准库中的random_shuffle算法提供随机生成器函数,如果提供相同的数据,程序的连续运行是否会生成相同的随机序列?解决方法25.2.11只是说元素是均匀分布的.它不能保证在幕后使用哪个RNG,因此您不能依赖任何此类行为.为了保证相同的洗牌结果,您需要提供自己的RNG来提供这些保证,但我怀疑即使这样,如果您更新标准库,random_shuffle算法本身也可以改变效果.

  9. delphi – 随机化StringList

    如何在StringList中随机化String,同样地,这个在线工具如何工作.如果有人熟悉它,请检查:http://textmechanic.co/Randomize-List.html解决方法执行随机播放的一个常见算法是Fisher-Yatesshuffle.这产生均匀分布的排列.要在DelphiTStrings对象上实现,可以使用:现在,理论上,这将产生均匀分布的排列,实际的性能在很大程度上取

  10. 算法 – 有效地从链接哈希表中挑选一个随机元素?

    L随机选择p均匀.如果p

随机推荐

  1. delphi – 主窗口按进程名称处理

    DelphiXe,Win7x64如何从进程名称(exe文件的完整路径)获取主窗口句柄,或至少一个类或窗口名称(如果该进程只有一个窗口).例:解决方法我同意Petesh的说法,你需要枚举顶级窗口并检查创建它的进程的模块文件名.为了帮助您开始枚举顶级窗口,这是一个delphi实现.首先,当你回调给你时,你需要一些与EnumWindows方法通信的方式.为此声明一条记录,该记录将保存您要查找的模块的文件

  2. 如何在Delphi中纯粹通过RTTI信息(即不使用任何实际对象实例)获取TObjectList的子项类型?

    我正在使用RTTI实现用于流式传输任意Delphi对象的通用代码,并且为了使其工作(更具体地说,为了使加载部分工作),我需要以某种方式获得TObjectList的子项类型<T>不使用任何实际对象实例的字段.要求不使用任何实际对象实例的明显原因是,在从流加载对象的情况下(仅基于要加载的对象的类类型的知识),我将不会有任何实例在加载完成之前完全可用–我宁愿只能访问相关类的纯RTTI数据.我希望能

  3. inno-setup – Inno Setup – 安装程序背景图片

    图像作为安装程序背景如何用inno5.5.9做到这一点?

  4. inno-setup – Inno Setup – 如何添加多个arc文件进行解压缩?

    使用InnoSetup解压缩弧文件.我希望有可能解压缩多个arc文件以从组件选择中安装文件(例如).但仍然显示所有提取的整体进度条.这可能吗?的回答的修改预备是相同的,参考其他答案.在ExtractArc中,为要提取的每个存档调用AddArchive.

  5. delphi – 如何在DataSet的帮助下在TAdvStringGrid中显示数据库中的BLOB图像

    解决方法CreateBlobStream正在创建一个TStream对象,而不是TMemoryStream.由于您不想将JPG写入数据库,因此应使用bmRead而不是bmReadWrite.我不习惯sqlite,但你必须确保使用合适的二进制日期类型.为了确保存储的图像真的是JPG,您应该编写JPG以进行测试,例如:

  6. inno-setup – 在Inno Setup的Code部分下载程序后运行程序

    如何运行我通过Internet下载的应用程序,在代码部分中使用,并等待该应用程序完成运行.我有,使用InnoTools下载程序,下载这两个文件,我想,在第二个完成下载后运行该下载,或jdk-8u111-windows-x64.exe,然后继续安装.解决方法使用其他下载插件,而不是ITD(请参阅下面的原因).例如,InnoDownloadPlugin.当您包含idp.iss时,它定义了一个全局IDP

  7. progress-bar – Inno Setup Run部分的简单进度页面

    我的安装程序非常简单,它基本上是:>欢迎页面>进展页面>最终页面欢迎页面和最终页面是标准页面.在Progress页面,我正在静默安装一堆其他程序.实际的脚本是在[Run]部分中安装每个程序.问题是酒吧达到100%然后停留在那里.我只能更改消息文本.我想要实现的是使用Pascal脚本显示进度,例如:这样我就可以显示更准确的进度条.这就是我所拥有的:问题是,当我构建安装程序时,它不显示欢迎页面.我做错了什么?

  8. delphi – 如何使“显示/隐藏桌面图标”设置生效?

    下面的代码调用SHGetSetSettings函数来隐藏桌面图标但它只是从视图菜单中取消选中“显示桌面图标”.我打电话给SHChangeNotify;更新桌面,但这不起作用?解决方法isa,要刷新桌面,您可以将F5键发送到progman窗口隐藏桌面图标的另一种方法是再次显示

  9. inno-setup – Inno Setup – 避免显示子安装程序的文件名

    我试图使用InnoSetup–Howtohidecertainfilenameswhileinstalling?(FilenameLabel)的想法Theonlysuresolutionistoavoidinstallingthefiles,youdonotwanttoshow,usingthe[Files]section.Installthemusingacodeinstead.UsetheEx

  10. inno-setup – Inno Setup磁力链接下载实施

    我目前正在使用InnoDownloadPlugin为我的安装程序下载文件,这个问题最大的问题是faila正确下载文件.因为连接不良等诸多原因.我想添加一种替代方法来下载文件,因此用户可以选择是否需要常规方式或torrent方式.我知道我可以使用aria2c.exe应用程序(https://aria2.github.io/),有人可以帮我实现它的inno设置代码吗?我需要的是使用torrent(ar

返回
顶部