2015-10-07 81 views
-1

嗨我想洗牌我的ArrayList没有随机数发生器,但只能使用一个随机数。有没有办法做到这一点?随机ArrayList没有随机数

该算法应基于以下几点:的ArrayList

  • 大小(非零)中的ArrayList
  • 随机数(每个项目的
  • 索引不能内循环产生,只有一个随机数可以产生)

例如

int randomNumber = new Random(10).nextInt(); 
    myList = shuffle(myList, randomNumber) 

    public ArrayList<> shuffle(ArrayList<> myList, int randomNumber){ 
     for(int index = 0 ; index < myList.size() ; index++){ 
     //shuffle algorithm working 
     } 
    return myList; 
    } 
+4

听起来像一个家庭作业;) – wblaschko

+5

我投票结束这个问题作为题外话,因为你必须自己做你的家庭作业 –

+0

@wblaschko:D不是那样,我正在寻找想法达到解决方案 –

回答

1

与你的想法相反,伪随机数是确定性的。从相同的种子,你总是得到相同的序列。只需使用randomNumber的值来初始化发生器。

实际上,算术绝对不能产生真正的随机性。

+1

真正的随机性可以通过监控您的程序外部因素来处理,例如挂钟时间或系统活动(正在运行的进程的数量,预留的内存,I/O数量...) –

+0

让我检查 –

+0

的工作原理,thanx for你的资料 –