`
woxiaoe
  • 浏览: 286543 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

【转载】浅谈在Java中产生随机数的两个很重要窍门

    博客分类:
  • Java
阅读更多

在实际开发工作中经常需要用到随机数。如有些系统中创建用户后会给用户一个随机的初始化密码。笔者这里就以Java语言为例,谈谈Java随机数生成的方法以及一些技巧。
在实际开发打工中经常需求用到随机数。如有些系统中创建用户后会给用户一个的随机的初始化密码。笔者那里就以Java语言为例,谈谈Java随机数生成的窍门以及一些窍门。

     

    一、利用random窍门来生成Java随机数。

    在Java语言中生成Java随机数相对来说较量简单,由于有一个的现成的窍门没成绩应用。在Math类中,Java语言帮助了一个的叫做random的窍门。经过那个窍门没成绩让系统产生随机数。不过默认情况下,其产生的随机数范围较量小,为大于等于0到小于1的double型随机数。虽然其随机数产生的范围较量小,不能够满足日常的需求。如日常打工中估计需求产生整数的随机数。其实,只要对那个窍门停止一些灵活的处理,就没成绩获取任意范围的随机数。

    如咱们没成绩先经过random窍门生成一个的随机数,然后将结果乘以10。此时产生的随机数字即为大于等于0小于10的数字。然后再利用Int窍门停止convert(它会去掉小数掉后面的数字,即只获取整数部份,不是四舍五入)。最后即可获取一个的0到9的整数型随机数字。其出现窍门很简单,那是对原有的random窍门按照如下的格式停止变型:(int)(Math.Random()*10)即可。其实咱们还没成绩对那个窍门停止扩展,让其产生任意范围内的随机数。至需求将那个10换成n即可,如改为(int)(Math.Random()*n)。此时实际运用程序就会产生一个的大于等于0小与n之间的随机数。如将n设置为5,那么其就会产生一个的0到5之间的整数型的随机数。假如将那个写成一个的带参数的窍门,那么只要用户输入需求生成随机数的最大value,就没成绩让那个窍门来生成制定范围的随机数。在Java中定义自己的道具库

    有时间程序员估计需求生成一个的指定范围内的随机偶数或者奇数。此时也许没成绩经过那个窍门来出现呢?正确回答是肯定的。如目前程序要需求生成一个的1-100范围内的偶数。此时该如何出现?首先,需求生成一个的0到99之内的随机数(至于那里为什么是99,耐心看下去就明白理由了)。要出现那个需求,很简单吧,只要经过如下语句就没成绩出现: i=1+(int)(Math.Random()*100)。其中(int)(Math.Random()*99)产生0到99的整数型随机数。然后再加上1那是产生1到100之间的随机整数。然后将产生的随机数赋value给变量i。但是此时其产生的随机数即有偶数,又有奇数。而目前程序员需求的是一个的随机的偶数。那么咱们没成绩在后面加上一个的if判断语句。将那个随机数除以2,假如没有余数的话(或者余数为0)则表明那个随机数是偶数,直接返回即可。假如其返回的余数不为零,那么就表明其是奇数,咱们只要加上1就变为了偶数,返回即可。留意,在上面的随机数生成中,笔者采用的范围是0到99,然后再加上1让其变为1到100的随机数。最后的结果那是生成1到100之间的随机偶数。其实,假如要范围随机奇数的话,至需求对上面的语句停止稍微的改正即可。Java:改变你我的全球

    假设目前用户想生成一个的任意范围内的奇数或者偶数,能够出现吗?假设目前用户想出现一个的m到n之间的任意偶数(其中m

    可见虽然random窍门其自身产生的随机数有较量严格的范围控制。但是只要对其停止符合逻辑的convert,程序员仍然没成绩采用那个窍门产生用户所需求的随机数据。

    二、经过Random类来生成随机数。

    在Java语言中,除了没成绩经过random 窍门来产生随机数之外,还没成绩经过一个的random类来产生随机数。程序开发没成绩经过举例化一个的Random对象来创建一个的随机数的生成器。如Random i=new Random()。经过这条语句就利用了Random类创建了一个的随机数的生成器。不过以这种窍门创建随机数时,与采用Random窍门产生随机数的机制不相同。利用目前这种方法举例化对象时,Java编译器会以系统当前的时间作为随机数生成器的种子。由于时间时时刻刻在变化的。若以那个时间作为生成器的种子,就没成绩保证生成的随机数真的是随机的,其生成的随机数重复率会大大的降低。

    利用这种窍门其较量方便。如没成绩利用帮助的KEYexpress,让程序返回一个的随机的整数(采用int besideInt(10))等等。不过其返回控制要比Random窍门困难一点。如目前需求系统帮助一个的10到50之间的随机奇数, 利用那个Random类就无法完成。也那是说,利用那个Random类来生成随机数,其只能够控制上限,而不能够控制下限。换一句话说,其没成绩指定最大的随机数范围,而不能够指定最小的随机数范围。所以,在灵活性上,其比Random窍门要稍微差一点。

    另外利用那个窍门来出现的话,必需先创建一个的对象。也那是说利用Randow类来创建对象。这跟Randow窍门不相同。像上面举的例子中,Randow窍门本身那是一个的math类中窍门,没成绩直接调用,省去对象创建的窍门。为此笔者意见各位读者与程序开发,最好还是应用Random窍门来创建随机数。只有在生成一些较量特殊的随机数时采用Random类。如目前需求生成一个的概率密度为高斯分布的双精度value随机数时,则经过采用Random类的窍门来创建随机数相对来说较量简单一点。

    三、产生随机的char。

    上面介绍的两种窍门,产生的都是随机的数value型数据。但是有时间用户估计还需求产生随机的char。其实也没成绩利用random窍门来产生随机char。如没成绩利用源代码生成一个的随机的小写char:(char)(‘a’+Math.random()*(‘z’-‘a’+1))。其实这跟生成任意两个数之间的随机数类似。经过以上的源代码就没成绩生成一个的范围之内的任意随机char。经过对那个源代码停止适当的修整,还没成绩生成任意两个char之间的随机char与任意大写char的随机char。其convert的方法跟上面提到的任意范围之内的随机数类似。各位读者若感兴趣的话,没成绩自己停止测试一下。师傅领进门,修行在自身。假如笔者在那里一股脑儿将所有的正确回答告诉,的印相不会很深。若回去自己动手试试看,反而更简易记住。

    笔者在那里给一个的提示,只需求根据m+(int)(Math.Random()*(n-m))这条语句来调整(char)(‘a’+Math.random()*(‘z’-‘a’+1))那个源代码即可。

    最后笔者需求强调的一点那是在用户传入参数的时间,最好要对用户传入的参数停止合法性检查。以免用户传入的参数不符合既定的要求,如参数需求的是数value型的数据而传入的却是char型的数据,而导致程序运行出错。

分享到:
评论

相关推荐

    java中产生随机数的两个方法

    Java 中产生随机数的两个方法 在 Java 语言中,产生随机数的需求非常常见,无论是在游戏开发、数据模拟还是其他应用场景中,随机数都是必不可少的。Java 中提供了两种方式来生成随机数:一是通过 Math.random() ...

    在Java中产生随机数的两个方法

    ### 在Java中产生随机数的两种方法 在Java编程中,生成随机数是常见的需求之一。根据提供的文件信息,本文将详细介绍两种在Java中生成随机数的方法:通过`Math.random()`函数与`java.util.Random`类。这两种方法各...

    浅谈java中的几种随机数

    在Java编程中,生成随机数是一项常见的任务,用于模拟、测试和各种算法中。本文将深入探讨Java中生成随机数的几种方法及其特点。 首先,最基本的随机数生成方法是使用`java.lang.Math.random()`。这个静态方法返回...

    JAVA中的随机数产生和排序

    在Java编程语言中,生成随机数和排序是两个常见的任务,它们在许多应用场景中都扮演着重要角色。这里我们将深入探讨这两个主题,并提供一些解决实际问题的方法。 首先,让我们来看看如何在Java中生成随机数。Java...

    Java产生随机数的两种方式

    在Java编程语言中,生成随机数是常见的需求,可以用于模拟、测试、加密等多种场景。本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`...

    浅谈Java中的几种随机数

    在Java编程语言中,随机数的生成是一个常见的需求,它在很多应用场景中扮演着重要角色,例如模拟、测试、游戏开发和算法设计等。Java提供了多种方式来生成随机数,这些方式各有特点和适用场景。 首先,最基本的...

    java 求最大的随机数

    在Java编程语言中,生成随机数是一项常见的任务,特别是在各种算法和模拟场景中。要找到“最大的随机数”,首先我们需要了解Java中生成随机数的方法。Java提供了`java.util.Random`类来生成随机数。下面我们将深入...

    介绍java 产生随机数式

    在Java编程语言中,生成随机数是一项常见的任务,可以用于各种场景,如模拟随机事件、游戏开发、测试等。本文将深入探讨Java如何生成随机数,并提供相关代码示例。 首先,Java提供了`java.util.Random`类来生成...

    java产生随机数的两个方法.doc

    Java产生随机数的两个方法 Java语言中生成随机数有多种方法,其中两种常用的方法是利用Math.random()方法和Random类。下面我们将逐步讲解这两个方法的使用和实现。 一、利用Math.random()方法生成随机数 Math....

    Java产生随机数并存入文件

    利用JAVA语言产生某一特定范围的随机数,并且能够将随机数保存在具体的文件中。

    java产生随机数的几种方式

    在Java编程语言中,生成随机数是常见的需求,可以用于各种场景,如模拟随机事件、游戏编程、加密算法等。以下将详细介绍Java中生成随机数的几种方式。 1. **Math.random() 方法** `Math.random()` 是Java中最常用...

    Java获取计算机信息和产生随机数

    主要是一个Java获取计算机基本信息并且在Web页面上以ExtJs4的图表展示,这里删除了ExtJs4的资源和一个算法产生验证码,因为这个算法最终使用到了产品中,所以就把这个测试的类删除了,各位不好意思了

    Java基础之Random随机数.docx

    在Java中,Random类提供了产生随机数的方法,下面将详细介绍Random类的使用。 Random类的使用 Random类是Java中生成随机数的主要类,它提供了多种方法来生成随机数。下面是Random类的一些常用方法: * `nextInt()...

    Java生成32位随机数,8位随机数

    Java生成32位随机数,短位随机数工具类

    Java产生随机数代码 各种方法

    `Math.random()`函数是Java中最基本的随机数生成方式,它返回一个在0.0(包括)到1.0(不包括)之间的double类型随机数。若要生成整数,可以通过将结果乘以整数范围并取整得到。例如,生成0-9之间的整数: ```...

    用单片机产生随机数的两种方法

    - **显示**:通过改变P2端口输出的不同二进制值(`led[]`数组),在LED显示器上显示两个随机数。 #### 方法二代码解析 - **定时器配置**:选择定时器0的工作模式2,并设置初值为7。 - **外部中断配置**:通过设置`...

    Java简易随机数生成

    Java简易随机数生成 下载完请输入测试代码 public static void main(String[] args) { System.out.println(random(50,100));//example System.out.println(random(50.0,100.0)); }

Global site tag (gtag.js) - Google Analytics