【发布时间】:2011-08-17 10:05:05
【问题描述】:
我有一个这样的数组:
int[] numbers = new [] { 1, 2, 3, 4 };
我想对此进行随机化(每次都不同),以便它生成另一个具有相同大小和数字但每次顺序不同的数组。
【问题讨论】:
-
您找不到简单的方法来做到这一点,因为您要求的是两个完全相反的东西。 “随机”和“每次不同的顺序”是相反的。如果过程是随机,那么您应该期待重复。如果你掷骰子的次数足够多,即使结果是随机的,你也希望看到重复。你需要更清楚地指定你真正想要什么。一旦你编写了一个清晰、正确的规范,那么找到一个实现就会变得容易得多。
-
我认为@Eric 还暗示的是,不清楚您是需要随机性还是只是想遍历数组的所有排列。
-
@Michael:没错。需要什么(1)只是数组的单个随机排列,或(2)数组的随机排列的随机序列,或(3)所有可能排列的序列的随机排序?所有这三个都是不同的,就目前的问题而言,需要哪个是令人困惑的。
-
这个问题在网上被问了多少次了?提问的时候一定有过相关的问题建议。