2010-11-18 36 views
0

嗨 认为我有一个for循环:for(int i = 0;i<4;i++)的Math.random在Java

for循环,我想打印的随机数的0至3,结果包括来自这只是3个数字。并且每次循环执行时,math.random的结果必须不同,即 我有4个数字:(1,2,3,4) ,我希望在for循环执行后有4个结果:[1, 2,3] [1,2,4] [2,3,4] [4,1,3] 我怎样才能产生这些数字? 感谢

+1

你的问题是非常不清楚。首先你要谈论的是数字0到3,然后是1到4 ......请澄清,并举例说明迄今为止你已经尝试了什么,以及它没有为你做什么。 – 2010-11-18 07:16:26

回答

3

这里有一个想法:

  1. 做一个“主”列表中,将保留您所有需要的元素,从0到3(或1至4,无论你需要)
  2. shuffle列表使用Collections.shuffle
  3. 反过来,列出到堆栈
  4. 流行一切从堆栈
  5. 重复2-4需要

第4步是您将随机获取所有元素而不会重复的步骤。

注意:在第3步中,如果看起来更容易,也可以从主列表而不是堆栈创建新列表,但基本前提是相同的。

+0

谢谢,我明白了! – user472221 2010-11-18 07:38:54