A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王琪 中级黑马   /  2014-3-1 21:51  /  711 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王琪 于 2014-3-1 21:53 编辑

猜数
/*
*  1>生成随机数
            Random random = new Random();
            Random random = new Random(100);//指定种子数100

            random调用不同的方法,获得随机数。
            如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那它们返回值完全相同。如下面代码中两个Random对象的输出完全相同
           import java.util.*;
           class TestRandom {
                 public static void main(String[] args) {
                      Random random1 = new Random(100);
                      System.out.println(random1.nextInt());
                      System.out.println(random1.nextFloat());
                      System.out.println(random1.nextBoolean());
                      Random random2 = new Random(100);
                      System.out.println(random2.nextInt());
                      System.out.println(random2.nextFloat());
                      System.out.println(random2.nextBoolean());
                 }
             }
    2>指定范围内的随机数
              随机数控制在某个范围内,使用模数运算符%
             import java.util.*;
                  class TestRandom {
                       public static void main(String[] args) {
                            Random random = new Random();
                            for(int i = 0; i < 10;i++) {
                                System.out.println(Math.abs(random.nextInt())%10);
                            }
                       }
                  }
          获得的随机数有正有负的,用Math.abs使获取数据范围为非负数
   3>获取指定范围内的不重复随机数
             import java.util.*;
             class TestRandom {
                   public static void main(String[] args) {
                        int[] intRet = new int[6];
                        int intRd = 0; //存放随机数
                        int count = 0; //记录生成的随机数个数
                        int flag = 0; //是否已经生成过标志
                        while(count<6){
                            Random rdm = new Random(System.currentTimeMillis());
                             intRd = Math.abs(rdm.nextInt())%32+1;
                             for(int i=0;i<count;i++){
                                 if(intRet==intRd){
                                     flag = 1;
                                     break;
                                 }else{
                                     flag = 0;
                                 }
                             }
                             if(flag==0){
                                 intRet[count] = intRd;
                                 count++;
                             }
                    }
                   for(int t=0;t<6;t++){
                       System.out.println(t+"->"+intRet[t]);
                   }
                }

Math.random也可以
比如说你想要0-10之间的随机数
你可以这样写
(int)(Math.random()*10);
JAVA产生指定范围的随机数》
《JAVA产生指定范围的随机数》
   产生机制:
产生Min-Max之间的数字
   实现原理:
      Math.round(Math.random()*(Max-Min)+Min)
long Temp; //不能设定为int,必须设定为long
//产生1000到9999的随机数
Temp=Math.round(Math.random()*8999+1000);

*/



  1. package dom;
  2. import java.util.*;
  3. public class text1 {
  4.         public static void main(String[]args){
  5.                 int n,m,i=0;
  6.                 Random rand=new Random(System.currentTimeMillis());      
  7.                 System.out.println("请输入所猜的数");
  8.                 n=Math.abs(rand.nextInt())%100+1;
  9.                 Scanner in=new Scanner(System.in);
  10.                 do{System.out.println(n);
  11.                         m=Integer.valueOf(in.nextLine().trim());
  12.                         i++;
  13.                         if(m>n){
  14.                                 System.out.println("猜的数太大");
  15.                         }
  16.                         else if(m<n){
  17.                                 System.out.println("猜的数小了");
  18.                         }
  19.                 }while(m!=n);
  20.                 System.out.println("答对了!共猜了"+i+"次");
  21.                 if(i<=5)System.out.println("hao");
  22.                 else{
  23.                         System.out.println("bu");
  24.                 }
  25.                
  26.         }
  27. }

复制代码

骰子


  1. package dom;
  2. import java.io.IOException;
  3. import java.util.*;
  4. public class Text2 {
  5.         public static void main(String[]args) throws IOException{
  6.                 int c;
  7.                 int n=0;
  8.                 int i,m;
  9.                 Scanner in=new Scanner(System.in);
  10.                 do{
  11.                         System.out.println("设骰子数量");
  12.                         n=in.nextInt();
  13.                         System.out.println("输入本轮参赛的人数");
  14.                         c=in.nextInt();
  15.                         if (c==0)break;
  16.                         else if(c>0){
  17.                         for(i=0 ;i<c ;i++ ){
  18.                                 System.out.println("第"+(i+1)+"玩家透出的骰子为");
  19.                                 play(n);
  20.                         }
  21.                         }else{break;}
  22.                 }while(true);
  23.         }
  24.         static void play(int n){
  25.                 Random rand=new Random(System.currentTimeMillis());
  26.                 int i,m=0,t=0;
  27.                 for( i=0; i<n;i++ ){
  28.                         t=Math.abs(rand.nextInt())%6+1;
  29.                         m+=t;
  30.                         System.out.println("第"+(i+1)+"粒"+t);
  31.                 }
  32.                 System.out.println("总点数"+m);
  33.         }
  34. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马