jjzjj

javascript - Fisher-Yates 洗牌可以产生所有纸牌排列吗?

我正在使用标准的Fisher-Yates算法随机洗牌数组中的一副牌。但是,我不确定这是否真的会产生真实世界洗牌后所有可能排列的真实分布。V8的Math.random只有128位的内部状态。由于一副牌中有52张牌,52阶乘将需要226位的内部状态来生成所有可能的排列。但是,我不确定这在使用Fisher-Yates时是否适用,因为您实际上并没有生成每个可能的位置,而只是从52个中随机获得一个位置。functionshuffle(array){varm=array.length,t,i;while(m){i=Math.floor(Math.random()*m--);t=array[m];a

javascript - Math.random() 可以在 javascript 中返回的最小非零值是多少

我知道计算机无法处理连续体。Math.random()javascript函数返回一个介于0(含)和1(不含)之间的float。我想知道它可以返回的最小非零数是多少。什么“步骤”有这个功能? 最佳答案 标准肯定没有表达这个值,所以它取决于实现(并且在这一点上有点夸张,甚至可能是aways的实现返回0.42作为Math.random()的结果>仍然符合规范)。IEEE754格式的64位归一化float所能表示的最小正数为2−1022,即2.2250738585072014×10−308。然而,浮点表示使用不同的分辨率,具体取决于大小。

javascript - 如何产生两个不同的随机数?

我需要生成两个不同的随机数,它们不能彼此相等,也不能等于第三个数字。我尝试使用很多if来涵盖所有可能性,但我的算法技能似乎不是那么好。谁能帮我解决这个问题?varnumberOne=Math.floor(Math.random()*4);varnumberTwo=Math.floor(Math.random()*4);varnumberThree=3;//Thisnumberwillnotalwaysbe3if((numberOne==numberThree)&&(numberOne+1这就是我目前所拥有的,下一步将是:if(numberTwo==numberThree){(...)}

javascript - 生成具有非均匀分布的随机数

Javascript的Math.random()返回一个具有“均匀”分布的伪随机数。我需要在[0,1]范围内生成一个偏向任何一侧的随机数。(意思是,在0或1旁边获得更多数字的可能性更高)理想情况下,我希望有一个参数来设置这条曲线。我想我可以做Math.random^2来得到这样的结果,但是有什么更复杂的方法可以实现这个? 最佳答案 我想你想要betadistributionwithalpha=beta=0.5可以使用逆累积分布将均匀随机数转换为beta分布。unif=Math.random()我不熟悉javascript,但这应该很

javascript - 一定范围内的随机整数,不包括一个数

我想得到一个范围内的随机数,不包括一个数字(例如,从1到1000,不包括577)。我搜索了解决方案,但从未解决我的问题。我想要这样的东西:Math.floor((Math.random()*1000)+1).exclude(577);我想尽可能避免for循环创建数组,因为长度总是不同的(有时1到10000,有时685到888555444等),并且生成的过程这可能会花费太多时间。我已经试过了:Javascript-GeneratingRandomnumbersinaRange,excludingcertainnumbersHowcanIgeneratearandomnumberwithi

javascript - 如何在 Javascript 中生成随机柔和(或更亮)的颜色?

我正在构建一个简单的网站,当我点击一个按钮时,它会给出一个随机报价,然后背景颜色会发生变化。问题是有时背景颜色太深,字体是黑色的,因此人们无法阅读报价。我的问题:有什么方法可以只使用亮色或柔和色来创建随机颜色代码?我得到这段代码来生成随机颜色。我尝试编辑以仅获取A到F字符串但没有成功:'#'+((1非常感谢您。 最佳答案 HSL颜色使用HSLColors颜色可能是最简单的。HSL颜色值在CSS中指定为hsl(hue,saturation%,lightness%)hue的范围是0-360(使用度数时没有单位标记),saturation

Javascript:生成具有固定均值和标准差的随机数

我的问题:如何在Javascript中创建具有给定均值和标准差(sd)的随机数列表?示例:我想创建一个列表,其中包含1到10之间的5个随机数。生成的平均值应为5,标准差应为2。到目前为止我做了什么:我的想法是(http://jsfiddle.net/QASDG/3/):创建一个函数(名为“createData”)创建1到10之间的5个随机数并将它们放入“数组”此函数还应计算这5个数字的平均值(和标准差)。使用“do-while”循环:只要“平均值变为5”(且“sd变为2”),就执行上述函数。但是当我调用do-while循环时,浏览器当然会崩溃,因为在很多情况下平均值为!=5(而sd!=

-13 和 13 之间的 javascript/jquery 随机数,不包括 -3 和 3 之间的数字

我正在使用varmin=-13;varmax=13;varrandom=Math.floor(Math.random()*(max-min+1))+min;但它返回-13和13之间的所有数字(随机)。我怎样才能让它生成-13到-4之间的随机数,不包括-3、-2、-1、0、1、2、3包括4到13。 最佳答案 获取1-10之间的随机数并加3,得到4-13之间的一个:random=Math.ceil(Math.random()*10)+3;生成一个介于0-1之间的随机数。如果为0,则将数字设为负数:random=(Math.floor(M

Javascript:使用 crypto.getRandomValues 生成一个范围内的随机数

我知道您可以使用此函数在一定范围内在JavaScript中生成一个随机数:functiongetRandomInt(min,max){returnMath.floor(Math.random()*(max-min+1))+min;}由IonuşG.Stan提供here.我想知道的是,您是否可以使用crypto.getRandomValues()在一个范围内生成一个更好的随机数而不是Math.random()。我希望能够生成一个介于0和10之间的数字,包括0到10,或者0-1,甚至10-5000,包括边界值。您会注意到Math.random()生成的数字类似于:0.85652396710

javascript - 为什么我要把 Math.floor 和 Math.random 结合起来?

为什么有人会对Math.random结果调用Math.floor?我见过它像这样使用:Math.floor(Math.random()*num);有人可以解释一下吗? 最佳答案 Math.random返回一个介于0和1之间的float。Returnsafloating-point,pseudo-randomnumberintherange[0,1)thatis,from0(inclusive)uptobutnotincluding1(exclusive),whichyoucanthenscaletoyourdesiredrange.