错误的随机数_JavaScript
作者:zishu 来源:zishu博客 发布时间:2009-08-28 12:43:00
标签:JavaScript,随机数
弄个随机数的东西,直接从网上找了一个现成的,简单看了两眼,感觉算法应该是对的,但今天测试下来,是不对的;
网上大多数人用的写法是这样的:
function getRandomA(rMin,rMax) {
var range = rMax - rMin;
var r = rMin + Math.round( Math.random() * range);
return r;
}
用十万的量跑了一下才发现,首位和末位随机的机率不高;
测试一下:
从网上找了找发现大家都是这样写的,但这样应该是有问题的。
于是我自已写了一个,简单验证了一下,应该是可以的,很平均。
function getRandom(rMin,rMax) {
if(rMin == 0) rMax++;
return Math.floor(rMax*Math.random() + rMin);
}
在这里记录给自已,这个应该还比较常用,看来大家都在用的东西不一定就靠谱,多质疑一下还是有好处的。


猜你喜欢
- string 对象 1、str.match(RegExp) 在str中搜索匹配RegExp的字符串并保存在一个数组内返回, 如果RegExp
- 导语提到《俄罗斯方块》(Tetris),那真是几乎无人不知无人不晓。其历史之悠久,可玩性之持久,能手轻轻一挥,吊打一 * 游戏。对于绝大多数小
- 概率论啊概率论,差不多忘完了。基于概率论的分类方法:朴素贝叶斯1. 概述贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称
- 字典什么是字典说到字典,第一时间想到的应该就是新华字典,实际上,这跟编程中的字典类似,两者都有一个特点,就是一一对应(yi yi dui y
- 如下所示:#!/usr/bin/python# coding=utf-8#import timeimport datetime# 今天日期t
- 我就废话不多说了,大家还是直接看代码吧~func main() { fmt.Println(exponent (5,3))}//a的n次方/
- 备份多个数据库可以使用如下命令:mysqldump -uroot -p123456 --databases test1 test2 test
- Select CONCAT( 'drop table ', table_name, ';' ) FROM i
- 本文以Python3.8为例1、 compileall py文件转换为pyc1.1、compileall命令行模式不需要额外安装,pytho
- 非Data Guard的补丁安装教程可参考《[Oracle] CPU/PSU补丁安装详细教程》,Data Guard需要Primary和St
- 一、内存泄漏像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题。对于一个用 python 实现的,长
- 函数:startswith()作用:判断字符串是否以指定字符或子字符串开头一、函数说明语法:string.startswith(str, b
- 如何为XHTML做好准备,XHTML与HTML 4.01标准没有太多的不同。所以将你的代码升级至4.01是个不错的开始。HTML 4.01参
- MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型
- 源自MySQL 5.7 官方手册 手册地址一、SELECT…INTO介绍SELECT…INTO用
- 一 计算公式:二 实现代码(1)import mathfrom tqdm import tqdmimport timetotal,s,n,t
- 1、远程登录到linux上,使用到的模块paramiko#远程登陆操作系统def ssh(sys_ip,username,password,
- import timefrom selenium import webdriverfrom selenium.webdriver.commo
- # django manage.py扩展自定义命令环境: mac django1.10.3在实际的项目开发过程中,我们可能要执行某脚本初始化
- Python偏函数Python偏函数和我们之前所学习的函数传参中的缺省参数有些类似,但是在实际应用中还是有所区别的,下面通过模拟一个场景一步