javascript - 哪种方法能保证每张图片均等概率显示

标签 javascript algorithm random

我创建了一个程序,每次按下按钮时都会显示随机图片。每张图片都是不同的,并分配有一个唯一的整数 ID。图片可以重新显示,尽管它之前已经显示给用户。

以下代码行生成要选择的随机卡 ID:

picCount 是唯一图片的数量。

newPic是要选择的图片的ID。

var newPic = Math.floor((Math.random()*this.100)+1) % this.picCount; 

我想知道我是否应该从

var newPic = Math.floor((Math.random()*100)+1) % this.picCount; 

var newPic = Math.floor((Math.random()*this.picCount)+1) % this.picCount; 

确保卡片的平均分配,因为我目前的方法比其他卡片更偏爱某些卡片。

我的分析正确吗?

如何让显示的图片更加随机?

最佳答案

假设 ID 是从 0 到 picCount - 1,你应该可以把

Math.floor(Math.random()*this.picCount);

实现完全均匀分布。 Math.random() 对于这个目的来说绰绰有余;在这种情况下,伪随机性很好。

关于javascript - 哪种方法能保证每张图片均等概率显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22651779/

相关文章:

java - 找到二叉树的宽度

random - 为什么 MersenneTwister 似乎为同一种子生成不同的序列?

javascript - JS CoffeeScript - 方法中的相同随机数

JavaScript:匿名 vs Helper 函数

Javascript - React Native - 如何将 TextInput 和 Text 放在同一行中

algorithm - 平衡搜索树查询、渐近分析

algorithm - 关于纯随机数系列的困惑

c++ - 我在一个生成随机数的程序中工作,我想将这些数字存储在一个数组中

javascript - 我如何干掉服务器端 Ruby 和客户端 Javascript 之间的业务逻辑?

javascript - 在 javascript 中 sleep - 没有 setTimeout