【算法】Fisher-Yates 洗牌算法

这篇具有很好参考价值的文章主要介绍了【算法】Fisher-Yates 洗牌算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Fisher-Yates 洗牌算法代码如下:

const cpData = ['a', 'b', 'c', 'd']
for (var i = cpData.length - 1; i > 0; i--) {
	var j = Math.floor(Math.random() * (i + 1));
	var temp = cpData[i];
	cpData[i] = cpData[j];
	cpData[j] = temp;
}

对于代码的解释

Math.random() * (i + 1) 是一个生成0到1之间的随机数乘以 (i + 1) 的表达式。

在 Fisher-Yates 洗牌算法中,这个表达式用于生成一个介于 0(包含)和 (i + 1)(不包含)之间的随机数。其中 i 是当前迭代的索引值,它表示从数组的最后一个元素到当前迭代的元素的范围。

通过将 (i + 1) 作为乘数,我们可以确保生成的随机数逐渐减小,从而在算法中正确地选择要交换的元素位置。

需要注意的是,Math.random() 方法返回一个介于 0(包含)和 1(不包含)之间的伪随机小数。

在 Fisher-Yates 洗牌算法的每个迭代中,我们使用 Math.random() * (i + 1) 生成一个随机数,并将其向下取整(Math.floor())得到一个介于 0 和 i(包含)之间的随机整数。这个随机整数表示要与当前元素交换的位置。文章来源地址https://www.toymoban.com/news/detail-490905.html

到了这里,关于【算法】Fisher-Yates 洗牌算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jQuery文字洗牌动效

    jQuery文本洗牌效果插件

    2024年01月19日
    浏览(33)
  • Fisher Information(费雪信息)详解

    定义 Fisher Information 是一种衡量“随机观测样本携带的未知参数 θ theta θ 的信息量”的方法,其中 θ theta θ 为待估计的参数。 假定观测随机变量序列为 X 1 , X 2 , . . . , X 3 X_1,X_2,...,X_3 X 1 ​ , X 2 ​ , ... , X 3 ​ ,且都服从概率分布 f ( X ; θ ) f(X;theta) f ( X ; θ ) ,则似然函数可

    2024年02月07日
    浏览(50)
  • 用Java实现简易的洗牌和发牌功能

    在日常生活中,想必大家都玩过或者听过斗地主吧,斗地主大致分为三个过程:洗牌,发牌,玩家按照规则将手中的牌给打完,谁最先打完,谁就获胜。这听起来挺简单的,但是影响你胜利的因素有很多:洗牌,玩家的水平。在赌场中很多人就是在洗牌跟发牌的过程中作弊的

    2023年04月09日
    浏览(31)
  • von Mises-Fisher Distribution (代码解析)

    torch.distribution 中包含了很多概率分布的实现,本文首先 通过均匀分布来说明 Distribution 的具体用法 , 然后再解释 von Mises-Fisher 分布的实现 , 其公式推导见 von Mises-Fisher Distribution. 1. torch.distribution.Distribution 以下是 Uniform 的源码: 下面将依次从上到下进行解释: 1.1 首先是一个使用

    2024年04月27日
    浏览(37)
  • 判别分析之Fisher判别、Bayes判别、距离判别的R实现案例

            某企生产的产品,其造型、性能和价位及所属级别数据如下表所示: 某企业产品的造型、性能、价位、级别等指标   题目来自《多元统计分析-基于R》课后习题           下面分别用Fisher判别法和Bayes判别法进行判别分析。            先进性Fisher判别,R程序如下

    2024年02月05日
    浏览(37)
  • AR HUD价格战再升级,市场大洗牌按下加速键

    进入2024年,不仅车市价格战愈演愈烈,AR HUD的价格战也在不断升级。 多位企业人士表示,在“降本增效”的大背景之下,AR HUD的前装供货价格还在持续下降。其中,TFT方案的价格普遍已经下降至500-1000元,而DLP方案也已经下探到2000元以下。 现阶段,伴随着AR HUD性能的提升以

    2024年04月11日
    浏览(46)
  • OpenAI 发布文生视频大模型 Sora,AI 视频要变天了,视频创作重新洗牌!AGI 还远吗?

    早上一觉醒来,群里和朋友圈又被刷屏了。 今年开年 AI 界最大的震撼事件: OpenAI 发布了他们的文生视频大模型 Sora。 OpenAI 文生视频大模型 Sora 的横空出世,预示着 AI 视频要变天了,视频创作领域要重新洗牌! 啥都不说,先来感受一番: OpenAI Sora 生成视频 再来看看其他由

    2024年02月19日
    浏览(45)
  • Fisher信息与最大似然估计的渐进正态性(附有在Bernoulli分布上的计算)

    写在前面 最大似然估计具有很多好的性质,包括相合性,同变性,渐进正态性等。本文主要关注的是渐进正态性。渐近正态性表明,估计量的极限分布是正态分布。而该正态分布的方差,与Fisher信息有着密不可分的关系。 Fisher信息 (定义)记分函数(Score Function): s ( X ; θ

    2024年02月09日
    浏览(58)
  • 百度Q4及全年财报:百度智能云强化AI优势,文心一言将推动云市场格局洗牌

    北京时间2月22日,百度(NASDAQ:BIDU,HKEX: 9888)发布了截至2022年12月31日的第四季度及全年未经审计的财务报告。2022年,百度实现营收1236.75亿元,归属百度的净利润(非美国通用会计准则)206.8亿元,同比增长10%。第四季度,百度实现营收330.77亿元,归属百度的净利润(非美

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包