美文网首页
sort 配合 random函数生成随机数据

sort 配合 random函数生成随机数据

作者: 土星的小小小光环 | 来源:发表于2017-11-07 00:20 被阅读0次

github链接

我们在使用sort方法配合Math.random()方法对数据进行随机排序的时候,每一种出现的结果并不是等可能的,每种情况出现的概率实际上与原数据顺序有关。

var str = 'abcd';

var arr = str.split('');

arr.sort(function(){

    return Math.random() - .5;

});

下图是用上面链接中的文件对字符串‘abcd’进行上述方法排序10000次的运行结果。


可以看出,每种情况出现的概率并不相等。实际上,其概率可以通过理论计算推导出来。

对于情况1——abcd,sort排序首先a,b随机调换位置,一半的概率不调换;

在这种情况下,sort方法会继续比较b、c,也是一半的概率不调换;

接着sort方法会比较c,d,仍然是一半的概率不调换;

因此出现'abcd'的概率为(1/2)^3即12.5%,与实际频率12.39%接近,毕竟实际结果存在一定的偶然性,偏差在可接受范围。

实际上,假设每种情况sort比较次数为n,那么这种情况出现的概率为(1/2)^n。

相关文章

  • sort 配合 random函数生成随机数据

    github链接 我们在使用sort方法配合Math.random()方法对数据进行随机排序的时候,每一种出现的结...

  • Jmeter——Dummy Sampler

    一、Dummy Sampler 二、随机函数生成当前时间 生成当前时间 三、随机函数生成数据 _Random随机函...

  • 2018-08-09Jmeter——Dummy Sampler

    一、Dummy Sampler 二、随机函数生成当前时间 生成当前时间 三、随机函数生成数据 Random

  • Python常见面试题(二)

    python生成随机函数 random模块 random.random()随机生成0-1之间的数字 random....

  • iOS生成随机数

    Objective-C语言中生成随机数的函数 arc4random()函数arc4random()函数用来生成随机...

  • Python Random库的使用

    random库用于生成随机数 基本随机数函数: seed(), random() 扩展随机数函数: randint...

  • 随机掷骰子

    生成随机数 random模块常用函数random() —— 生成一个[0,1.0)之间的随机浮点数uniform(...

  • python-random模块

    python的random模块用于生成随机数,使用时需要用导入random函数。 常用函数 random()用于生...

  • 各种random函数------Python 2019-05-0

    random()是Python中生成随机数的函数,是由random模块控制,random()函数不能直接访问,需要...

  • python random使用方法

    Python生成随机数与random模块中最常用的几个函数的关系 random.random()用于生成,首先需要...

网友评论

      本文标题:sort 配合 random函数生成随机数据

      本文链接:https://www.haomeiwen.com/subject/xpormxtx.html