`
tanleihaoren
  • 浏览: 67575 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

java生成随机数

阅读更多
/*
*生成900~1000之间的随机数
*/
public static void main(String[] args) {
        Random rd = new Random();  //一种方式  java.util.Random
        System.out.println(900+rd.nextInt(100));

        int i = (int) (Math.random() * 100);  //另一种方式  java.lang.Math
        System.out.println(900+i);
    }

 

  再转帖一个( 觉得写的有点意思!):

  http://www.51testing.com/?117708/action_viewspace_itemid_11637.html

/*
 * 下面这个程序给出在一定范围内的随机数生成方法,随机数生成对每一种编程语言来说都是十分重要的。
 */
import java.util.*;

public class RandomWithRangeTest {
    public RandomWithRangeTest(){

    }
    public static void main(String [] args){
        Random rdm=new Random();

        // 产生-160到160之间的随机数
        System.out.println("Range from -160 to + 160");
        for(int i=0;i<5;i++)
            System.out.println(rdm.nextInt()%160);

        // 产生0到160之间的随机数
        System.out.println("Range from 0 to 160");
        for(int i=0;i<5;i++)
            System.out.println((rdm.nextInt()>>>1)%160); //>>>是无符号右移位操作符,在高位插入0

        // 产生0到160之间的随机数的另一种方法
        System.out.println("Range from 0 to 160");
        for(int i=0;i<5;i++)
            System.out.println((rdm.nextInt()& 0x7fffffff)%160); // 将int数的最高位置为0,也就是排除掉负数

       //产生-160到0之间的随机数
       System.out.println("Range from -160 to 0");
       for(int i=0;i<5;i++)
           System.out.println(-(rdm.nextInt()>>>1)%160);


       //产生-160到0之间的随机数的另一种方法
       System.out.println("Range from -160 to 0");
       for(int i=0;i<5;i++)
           System.out.println((rdm.nextInt()| 0x80000000)%160); // 将int数的最高位置为1,也就是排除掉正数
    }
}
 
分享到:
评论
3 楼 adventurer 2009-01-09  
Random类中算法是线程同步处理,new出来参数最好带上系统时间。这样random状态是不同的。
2 楼 psyuhen 2008-12-11  
你这种方式能不能泛化它??
1 楼 psyuhen 2008-12-11  
第2种方式可以的吗?
Math.random()是产生0.0到1.0之间的伪随机数,你用它来乘以100可以的吗?
应该有误差的!

相关推荐

Global site tag (gtag.js) - Google Analytics