【问题标题】:Java - Array Shuffle from Array1 to Array 2Java - 从 Array1 到 Array 2 的数组随机播放
【发布时间】:2016-05-19 16:01:57
【问题描述】:

我正在使用 Eclipes Android。 所以这是我的array1,我希望它随机转移到另一个array(array2)。 我已经为此工作了好几个小时,但我无法做到。

int array1[] = {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,43,44,45,46,47,48,49,50};

我想将它随机转移到我的新数组 array2 中。

我还是 java 新手,还在学习。谢谢。

【问题讨论】:

  • 是的,我已经连续工作了 2-3 小时,它总是让我的应用程序在模拟器中崩溃。 :(
  • 首先复制数组,然后使用 Fisher-Yates 洗牌:bost.ocks.org/mike/shuffle
  • 我实际上已经问过/回答了一个关于这个的问题(Fisher-Yates)stackoverflow.com/questions/35242740/…
  • java eclipes 类不识别函数。 :

标签: java arrays random shuffle


【解决方案1】:
Random randomGenerator = new Random();
j = 0;
for (int idx = 1; idx <= 10; ++idx){
  {
   int randomInt = randomGenerator.nextInt(array1.length());
    array2[j] = array1[randomInt];
    j++;
  }
}

这只是一个想法。

【讨论】:

    【解决方案2】:

    以下是我建议您随机化数组的方法:

    for(int i = 0; i < array1.length; i++) {
        int random = (int)(Math.random() * 49 + 1);
        int temp = array1[random];
        array1[random] = array1[i];
        array1[i] = temp;
    }
    

    这应该随机改变值。在每次迭代中,随机数的元素将与迭代索引的元素交换位置。在您的情况下,您必须在执行上述代码之前将数组复制到另一个数组中。

    【讨论】:

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