热心市民鞠先生 2021-03-23 12:53 采纳率: 80%
浏览 99
已采纳

获取1-33之间的随机数,并且返还数组类型。这里的循环结果还是会出现重复的数字或者0,应该怎么改

package code;

import java.util.Random;

public class Code2 {
    public static void main (String[] args) {
        Random r = new Random();
        int[] s = new int[6];
        for (int i = 0; i < 6; i++) {
            
            int red = r.nextInt(33);
            //循环条件 遍历数组判断随机数是否在数组中
            for (int j = 0; j < s.length; j++) {
                if(s[j] == red || red == 0) {
                    continue;
                } else {
                    s[i] = red;
                }
            }
        }
        
        for (int i : s) {    
            System.out.println(i);
        }
    }
}
 

  • 写回答

6条回答 默认 最新

  • tkzc_shark 2021-03-23 13:59
    关注
    int red = r.nextInt(33) + 1;

    int nextInt(int num)         //随机返回一个值在[0,num)的int类型的整数,包括0不包括num

    public static int[] randomCommon(int min, int max, int n){  
        if (n > (max - min + 1) || max < min) {  
               return null;  
           }  
        int[] result = new int[n];  
        int count = 0;  
        while(count < n) {  
            int num = (int) (Math.random() * (max - min)) + min;  
            boolean flag = true;  
            for (int j = 0; j < n; j++) {  
                if(num == result[j]){  
                    flag = false;  
                    break;  
                }  
            }  
            if(flag){  
                result[count] = num;  
                count++;  
            }  
        }  
        return result;  
    }  
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料