JAVA中获取不同随机数

      刚开始学习JAVA,最近在自己做一个 猜数字 小游戏。感觉获得4个不同随机数 是本程序的关键。之前在网上搜了些获取随机数的方法,但由于自己对JAVA理解尚浅,所以都不太能读懂。于是自己就已有知识,想了一个获得不同随机数的算法。

   我就以从0—9中选4个不同随机数为例。

     int[] anArray = new int[10];
  for(int i = 0;i<10;i++)
  {
   anArray[i] = i;
  }

  int[] rand = new int[4];
  for(int i = 0 ; i < 4 ;)
  {

   int j = (int)( Math.random() * 10);
   if(j < (10- i))
   {
    rand[i] = anArray[j];
    anArray[j] = anArray[9-i];
    anArray[9-i] = rand[i];
    i++;
   }

自我感觉本算法能推广到取一定范围内的不同随机数。在效率上感觉还是比较快的。
  

时间: 2024-10-03 03:55:00

JAVA中获取不同随机数的相关文章

在Java中获取系统属性

在Java中获取系统属性 大庆油田有限责任公司 苏洋  01-5-22 上午 11:12:51 -------------------------------------------------------------------------------- Java语言以其面向对象.跨平台.可移植性好.安全性高等优点,受到众多编程人员的青睐,越来越多的人将其作为应用软件开发语言的首选. 在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确定操作系统类型.用户JDK版本和用户工作目

Java中获取类路径classpath的简单方法(推荐)_java

如下所示: <SPAN style="FONT-SIZE: 18px"> System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLo

JAVA中获取两个字符串差异的方法

问题描述 JAVA中获取两个字符串差异的方法 求助,在编程的过程中碰到这样一个问题,有两个String字符串,然后我需要获取他们之间的差异 String s = {"12345"}; String s1 ={"123645"}; 其中这两个数组的长度可变,s是模板,所有的数组都要和这个数组比较,然后把差异的部分获取出来 所以s1可以是缺了一两个元素的数组,仅仅是单个的字符被替换了,这个可以简单的用字符数组一个一个比较获得,但是如果多一个,或者少一个,这一块我就有点不

oracle-DCN监听 java中获取到变化的表名为三个?

问题描述 DCN监听 java中获取到变化的表名为三个? 用的oracle DCN监听数据库变化的表,为什么打印出来的表名是??? 我写的哪里不对么?是在刚得到databaseChangeEvent的时候就已经是三个问号了, 但是rowid正常获取出来了,请求各位帮助,谢谢. package com.dtqy.dcn.test; import java.sql.SQLException; import java.util.Properties; import oracle.jdbc.Oracle

从Linux内核中获取真随机数【转】

转自:http://blog.csdn.net/adamska0104/article/details/45743087  内核随机数产生器 Linux内核实现了一个随机数产生器,从理论上说这个随机数产生器产生的是真随机数.与标准C库中的rand(),srand()产生的伪随机数不同,尽管伪随机数带有一定的随机特征,但这些数字序列并非统计意义上的随机数.也就是说它们是可重现的--只要每次使用相同的seed值,就能得到相同的伪随机数列.通常通过使用time()的返回值来改变seed,以此得到不同的

Java中获取文件大小的详解及实例代码_java

 Java 获取文件大小 今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法:另外一种是使用FileInputStream的available()方法,当InputStream未进行read操作时,available()的大小应该是等于文件大小的.但是在处理大文件时,后者会发生问题.我们来看一下: 在例子中,我使用了CentOS 6.5 的安装镜像文件,主要是考虑到这个文件足够大(大于2GB). 1.使用File的length()方法 publi

java中获取另一个线程中的信息

在进行多线程编程中,比较重要也是比较困难的一个操作就是如何获取线程中的信息.大多数人会采取比较常见的一种方法就是将线程中要返回的结果存储在一个字段中,然后再提供一个获取方法将这个字段的内容返回给该方法的调用者.如以下的ReturnThreadInfo类: package threadtest1; public class ReturnThreadInfo extends Thread { private String str; public ReturnThreadInfo() { this.s

java中获取类加载路径和项目根路径的5种方式分析_java

复制代码 代码如下: package my;  import java.io.File; import java.io.IOException; import java.net.URL;  public class MyUrlDemo {           public static void main(String[] args) {         MyUrlDemo muDemo = new MyUrlDemo();         try {             muDemo.sh

Java中一些获取当前日期的方法

记点小东西.获取带格式的当前日期/时间的方法.C#的ToString()果然还是我觉得最有爱的format方 式.不过脚本语言一般也都会提供非常方便的方法,像PHP.Perl和Ruby等等都有相当不错的方法: JavaScript虽然没提供format方法,但自己写一个不废什么事. 我们都知道C/C++里提供了__DATE__和__TIME__宏,不过这两个宏记录的是编译时的日期和时间,而且 无法自定义格式,跟这里讨论的可以说是完全没关系-- ==========================