qq_24644221
qq_24644221
采纳率100%
2018-07-07 08:12

数组取值哪位大神可以帮我实现一下啊

5
已采纳

String[] indexValue = {"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42"};

随机取数组里面的值,但是个数可以是1到42位。
比如说第一次取 出来的值是1,2,3
第二次就可以是,123456789101112.。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

13条回答

  • bky_lb LuoBinary 3年前

    你定义的数组有问题,我帮你改过来了,你试下我写的

     public static void main(String[] args)
        {
            int[] indexValue = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42};
            int count = (int)(Math.random() * 42);
            System.out.println("取出数字个数:" + count);
            int[] resultIndex = new int[count];
            for (int i = 0; i < count; i++)
            {
                int index = (int)(Math.random() * 42);
                if (!containValue(resultIndex, index))
                {
                    resultIndex[i] = index;
                }
                else
                {
                    i--;
                }
            }
            for (int i = 0; i < resultIndex.length; i++)
            {
                System.out.print(indexValue[resultIndex[i]]);
                System.out.print(" ");
            }
        }
    
        private static boolean containValue(int[] resultIndex, int index)
        {
            for (int j = 0; j < resultIndex.length; j++)
            {
                if (index == resultIndex[j])
                {
                    return true;
                }
            }
            return false;
        }
    
    点赞 评论 复制链接分享
  • fengzi96 fengzi96 3年前

    使用随机数rand,将随机数转化为1~42的正整数,再取出随机数数目的值。也有可以用时间标记随机数,实现不同时间取得的随机数不一样

    点赞 1 评论 复制链接分享
  • weixin_42621230 ゞ╃縋篴″ 3年前

    你试试使用随机数rand,将随机数转化为1~42的正整数,再取出随机数数目的值。也有可以用时间标记随机数,实现不同时间取得的随机数不一样

    点赞 评论 复制链接分享
  • qq_41788030 qq_41788030 3年前

    用一个random取随机数

    点赞 评论 复制链接分享
  • qq_42536268 qq_42536268 3年前

    用push 和pop 的方法

    点赞 评论 复制链接分享
  • weixin_41905935 迷途明 3年前

    楼主你参考下我的代码,我也是新手,这个代码不重复和排序都可以做到,我也把注释写在上面了(缺点也写了)

    // 排序需要调用的函数 function d(e, f) { return e - f; } // 声明空数组,用来存放随机产生的数据b var a = []; // 打印出的数组需要几个数据,就循环几次 for (var i = 0; i < 5; i++) { //5=》代表数组个数,数组的个数(5随便改)可以改 // 产生随机数(1-42) var b = Math.ceil(Math.random() * 42); // 遍历a的数组, for (var j = 0; j < a.length; j++) { // 如果数组a里面有跟随机数b有相同的数据,就把按a数组里面的相同的数据干掉 if (a[j] == b) { a.splice(j, 1); } } // 如果数组a里面没有跟随机数b有相同的数据,就把随机数b放在a数组里面 if (a.indexOf(b) == -1) { a.push(b); } } // 排序 console.log(a.sort(d));

    点赞 评论 复制链接分享
  • qq_33904752 有丘直方 3年前

    这方面Ruby非常在行

     def choose(array)
        rand(array.size).times do
            array.delete_at(rand(array.size))
        end
        return array
    end
    
    array = (1..42).to_a
    p choose(array)
    
    
    点赞 评论 复制链接分享
  • crazydddfz crazydddfz 3年前

    public static void getNum(Integer random){
    // 存取取出来的值,判定是否重复需要
    Map map = new HashMap();
    // 取随机数
    List list = new ArrayList();
    // 设定跳出循环
    boolean b = true;
    do{
    // 存入map(因为map不会存在两个重复的键位)
    int result = new Random().nextInt(42)+1;
    // 存入map
    if(!map.containsKey(result) && list.size() < random.intValue()){
    map.put(result, "");
    list.add(result);
    } else if(list.size() >= random.intValue()) {
    b = false;
    }
    }while(b);
    // 取出来的随机出
    System.out.println(list);
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("随机数的个数:");
        // 随机数的个数
        int n = scanner.nextInt();
        getNum(n);
        scanner.close();
    }
    
    数字可以自己加,想随机多少都没问题,不会重复,如果要排序,再加个排序方法就行
    
    点赞 评论 复制链接分享
  • zhengyong6 风飘絮ll执子之手逍遥 3年前

    使用随机数rand,将随机数转化为1~42的正整数,再取出随机数数目的值。也有可以用时间标记随机数,实现不同时间取得的随机数不一样

    点赞 评论 复制链接分享
  • qq1172060874 qq1172060874 3年前

    每次都是 从1取么?

    点赞 评论 复制链接分享
  • HermesBoen sonebobo 3年前

    能不能重复,按不按顺序 这些条件说清楚才好下手

    点赞 评论 复制链接分享
  • CooLCkiNG RunningShrimp 3年前

    public class Rand{
    public static void mian(String[] args){
    String[] indexValue = {"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42"};
    int flag=Math.random()*42;//产生随机数
    for(int i=0;i<flag;i++)
    {
    int num=Math.random()*42;
    System.out.print(indexValue[num]);
    }
    }
    }
    代码你试试吧 有问题私聊我

    点赞 评论 复制链接分享
  • ok443433169 ok443433169 3年前

    产生一个1-42的随机数,然后从1到那个随机数,去获取数据

    点赞 评论 复制链接分享

相关推荐