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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵佳 初级黑马   /  2013-7-5 23:23  /  1416 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵佳 于 2013-7-6 08:15 编辑

public class MathRandom{

     

    public static int GetEvenNum(double a,double b){

        int s = (int)a +(int)(Math.random()*(b-a));

        if(s%2==0){

           return s;

        }else

           return s+1;

    }

      

    public static void For(double a,double b){

        for(int i=1;i<=6;i++){

            System.out.println("s" + i + "=" + GetEvenNum(a,b));

        }

        System.out.println();

         

    }

      

    public static void main(String args[]){

        For(1,1000);

    }

}




问题是让在1-1000的区间产生6个随机数 并且求出他们的和  我已经把随机数都求出来了  但是求和想了半天也没想出来该怎么弄,求大神给指教下,谢谢!

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

7 个回复

倒序浏览
  1. //将For方法改成这样
  2.     public static void For(double a,double b){
  3.             int sum = 0;
  4.         for(int i=1;i<=6;i++){
  5.                 int num = GetEvenNum(a,b);
  6.             System.out.println("s" + i + "=" + num);
  7.             sum= sum + num;
  8.         }

  9.         System.out.println("6个数的和是:"+sum);
  10.     }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
建议用Random类来生成随机数,代码如下:
package test;
import java.util.Random;
public class RandomTest {   
    private static Random random = new Random();
    private static int[] getRandomArray(){
        int[] randomArray = new int[6];
        System.out.println("生成的1到1000的随机数为:");
        for(int i = 0; i < 6; i++){
            randomArray = random.nextInt(1000) + 1;
            System.out.print("  " + randomArray);
        }
        return randomArray;
    }
    private static int getRandomSum(int[] randomArray){
        int sum = 0;
        for(int random: randomArray){
            sum += random;
        }
        return sum;
    }
    public static void main(String[] args) {
        int[] array = getRandomArray();
        int sum = getRandomSum(array);
        System.out.println("和为: " + sum);
    }
}

点评

以后请使用代码工具。。。不然 乱乱的  发表于 2013-7-6 07:57
请问用 Random 类 和 Math.random() 方法生产随机数的区别是什么呢  发表于 2013-7-6 02:09

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
本帖最后由 王广亚 于 2013-7-6 00:32 编辑

package e1;
public class Random {  
public static void main(String[] args) {
  Random.foryuju();
}
final static int suiji(){
  return (int)(Math.random()*1000+1);  //Math.random()方法是随机获取>=0并小于1的随机数;
            //(int)(Math.random()*1000+1)就是获取1-1000的整数
}
static void foryuju(){
  int sum=0;        //定义一个int变量sum,把每次获得的随机数加到sum中
  for(int i=1;i<=6;i++){     //用一个for循环来获取在六个随机所,并相加。
   int a=Random.suiji();
   sum+=a;//sum+=Random.suiji();
   System.out.println("第"+i+"个随机数是:"+a);
  }
  System.out.print("这六个随机数的和是:"+sum);
}
}

点评

以后请使用代码工具。。。不然 乱乱的  发表于 2013-7-6 07:57

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
刘_鑫 发表于 2013-7-5 23:48
建议用Random类来生成随机数,代码如下:
package test;
import java.util.Random;

Math.random()返回的只是从0到1之间的小数,如果要50到100,就先放大50倍,即0到50之间,这里还是小数,如果要整数,就强制转换int,然后再加上50即为50~100.
最终代码:(int)(Math.random()*50) + 50
Random类产生的随机数,在其最大值范围内,按照概率均匀分布的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马