【问题标题】:Creating Boxes of different sizes创建不同大小的盒子
【发布时间】:2015-02-05 05:14:19
【问题描述】:

我想知道是否有办法让随机生成器使用高度和宽度创建 100000 个不同大小的盒子? 我没有任何代码,因为我完全不知道如何做到这一点。

谢谢

【问题讨论】:

  • 你必须先从自己尝试一些代码开始,只有当你卡住时才来stackoverflow。要求一个完整的、可行的解决方案完全不是一个好主意。
  • "我想知道是否有办法让随机生成器使用高度和宽度创建 100000 个不同大小的盒子?" 是的,希望能回答你的问题。
  • 有些人可能想知道这里的“盒子”是什么
  • 问题的关键是我不知道如何启动它。不知道该怎么办。我是 Java 新手,只做了大约 1 个月

标签: java random height


【解决方案1】:

好吧,这里有一个应该可以工作的代码示例。

import java.util.Random;


public final class Test {

  public static final void main(String... aArgs){

      int arrayOfBoxes [][] = new int [10000][3];

      //if you like to use a range
       int START = 1;
       int END = 10000;


      for (int i=0;i<10000;i++)
      {

           Random randomHeight = new Random();
           Random randomWidth = new Random();
           int width = GenerateRandomInteger(START, END, randomHeight);
           int height = GenerateRandomInteger(START, END, randomWidth);


           arrayOfBoxes[i][0] = i ;
           arrayOfBoxes[i][1] = width ;
           arrayOfBoxes[i][2] = height ;

      }
      for (int k=0;k<10000;k++){
          System.out.println("Box #"+ arrayOfBoxes[k][0]);

              System.out.println("Width = " + arrayOfBoxes[k][1]);
              System.out.println("Height = " + arrayOfBoxes[k][2]);

      }

  }  


  private static int GenerateRandomInteger(int aStart, int aEnd, Random aRandom){
    if (aStart > aEnd) {
      throw new IllegalArgumentException("Start cannot exceed End.");
    }
    //get the range, casting to long to avoid overflow problems
    long range = (long)aEnd - (long)aStart + 1;
    // compute a fraction of the range, 0 <= frac < range
    long fraction = (long)(range * aRandom.nextDouble());
    int randomNumber =  (int)(fraction + aStart);    
    return randomNumber;
  }
} 

【讨论】:

    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多