首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

随机数的有关问题,求大神来看看

2013-07-08 
随机数的问题,求大神来看看public class MathRandom{public static int GetEvenNum(double a,double b){in

随机数的问题,求大神来看看

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个随机数 并且求出他们的和  我已经把随机数都求出来了  但是求和想了半天也没想出来该怎么弄,求大神给指教下,谢谢
[解决办法]
引用:
import java.util.Random;

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){
        int sum = 0; // 保存和

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


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

    }

    public static void main(String args[]){
        For(1,1000);
    }
}


++
[解决办法]
package test;

import java.util.Random;

public class RandomSum {
public static void main(String[] args) {
int[] nums = new int[6];
int sum = 0;
Random random = new Random();
for (int i = 0; i < nums.length; i++) {
nums[i] = getNums(random);
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + ",");
sum += nums[i];
}
System.out.print("\r"+sum);
}

public static int getNums(Random random) {
return random.nextInt(1000);
}
}
 我比较喜欢按照自己的思路,写代码
[解决办法]
package test;

import java.util.Random;

public class RandomSum {
public static void main(String[] args) {
int[] nums = new int[6];
int sum = 0;
Random random = new Random();
for (int i = 0; i < nums.length; i++) {
nums[i] = getNums(random);
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + ",");
sum += nums[i];
}
System.out.print("\r"+sum);
}

public static int getNums(Random random) {
return random.nextInt(1000);
}
}



是这样的
[解决办法]
建议用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[i] = random.nextInt(1000) + 1;
System.out.print("  " + randomArray[i]);
}
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);
}
}


[解决办法]
引用:
package test;

import java.util.Random;

public class RandomSum {
public static void main(String[] args) {
int[] nums = new int[6];
int sum = 0;
Random random = new Random();
for (int i = 0; i < nums.length; i++) {
nums[i] = getNums(random);
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + ",");
sum += nums[i];
}
System.out.print("\r"+sum);
}

public static int getNums(Random random) {
return random.nextInt(1000);
}
}



是这样的
你这里的nextInt(1000)随机数是取不到1000但是可以取到0,也就是说范围区间是[0,1000),所以应该在后面加上1才正确。。。。。。
[解决办法]
public static void getRandom(){
int sum=0;
Random ran=new Random();
for (int i = 0; i < 6; i++) {
sum=sum+ran.nextInt(1000)+1;
}
System.out.println(sum);
}

public static void main(String[] args) {
getRandom();
}


[解决办法]
引用:
Quote: 引用:

建议用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[i] = random.nextInt(1000) + 1;
System.out.print("  " + randomArray[i]);
}
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);
}
}

能不用数组吗  感觉不是很喜欢数组  而且对这方面很生疏
那这个呢?
public class RandomTest {
private static Random random = new Random();
private static void getRandomArray() {
System.out.println("生成的1到1000的随机数为:");
int sum = 0;
for (int i = 0; i < 6; i++) {
int random_i = random.nextInt(1000) + 1;
System.out.print("  " + random_i);
sum += random_i;
}
System.out.println("它们的和为: " + sum);
}
public static void main(String[] args) {
getRandomArray();
}
}

[解决办法]

static int sum = 0;
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++) {
int temp = GetEvenNum(a, b);
System.out.println("s" + i + "=" + temp);
sum += temp ;
}
System.out.println();

}

public static void main(String[] args) throws FileNotFoundException {

For(1, 1000);
System.out.println("总数为: " +  sum);
    }
}

红色部分为我添加的代码,比较看看。

热点排行