在C#中随机化通用列表顺序的最佳方法是什么?我在一个列表中有一组有限的75个数字,我想为其分配一个随机顺序,以便为抽奖类型的应用程序绘制它们.
嗨,我有以下列表,我想输入model
到列表,但随机进行.我看过几个例子,但它们似乎真的很混乱.我只想要一个简单的方法来做到这一点?
List<Car> garage ----randomise------> List<string> models
List<Car> garage = new List<Car>();
garage.Add(new Car("Citroen", "AX"));
garage.Add(new Car("Peugeot", "205"));
garage.Add(new Car("Volkswagen", "Golf"));
garage.Add(new Car("BMW", "320"));
garage.Add(new Car("Mercedes", "CLK"));
garage.Add(new Car("Audi", "A4"));
garage.Add(new Car("Ford", "Fiesta"));
garage.Add(new Car("Mini", "Cooper"));
Run Code Online (Sandbox Code Playgroud) 是否有可能统一地对n个大小的数组的元素进行混洗,即任何n的概率!在预期O(n)
时间内发生的组合是相同的.怎么会这样?我必须将元素改组A
为新数组B
当我尝试这样做时,我想到的第一件事就是i
从1到n中选择一个随机数,看看是否A[i]
已经被选中,如果是,那么重复一遍,否则放在A[i]
第一个可用的位置B
.然而,这个优惠券收集器问题已经预料到了O(n log n)
.有人可以建议O(n)
预期的时间算法.
谢谢.