用于将数字分割为较小随机整数的 Java 程序


我们在这里考虑数字 10,它将使用 Random 类划分为 8 个随机整数。我们将数字设置为 HashSet 集合 -

HashSet<Integer>set = new HashSet<Integer>();
set.add(0);
set.add(0);
set.add(0);
set.add(number);

现在使用 nextInt 获取下一个随机整数 -

intarrSize = parts + 1;
while (set.size() < arrSize) {
   set.add(1 + randNum.nextInt(number - 1));
}
Integer[] dividers = set.toArray(new Integer[arrSize]);
Arrays.sort(dividers);
int[] res = new int[parts];
for(int i = 1, j = 0; i < dividers.length; ++i, ++j) {
   res[j] = dividers[i] - dividers[j];
}

示例

 实时演示

import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;
public class Demo {
   public static Random randNum = new Random();
   public static int[] DemoFunc(int number, int parts) {
      HashSet<Integer>set = new HashSet<Integer>();
      set.add(0);
      set.add(0);
      set.add(0);
      set.add(number);
      int arrSize = parts + 1;
      while (set.size() < arrSize) {
         set.add(1 + randNum.nextInt(number - 1));
      }
      Integer[] dividers = set.toArray(new Integer[arrSize]);
      Arrays.sort(dividers);
      int[] res = new int[parts];
      for(int i = 1, j = 0; i < dividers.length; ++i, ++j) {
         res[j] = dividers[i] - dividers[j];
      }
      return res;
   }
   public static void main(String[] args) {
      System.out.println(Arrays.toString(DemoFunc(10, 8)));
   }
}

输出

[1, 1, 2, 2, 1, 1, 1, 1]

更新于: 30-Jul-2019

395 次浏览

开始您的 职业

完成课程获得认证

开始
广告