1. 生成1~10之间的随机数

一种是 (int)(Math.random()*10)%10+1

另一种 (int)(Math.random()*10)+1

2.

(转自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,也就是排除掉正数
}
}