【发布时间】:2013-01-13 15:10:30
【问题描述】:
我是 C# 新手,我正在使用数组制作应用程序。我有一个数组,其数字如下所示:
int[] array2 = new int[] { 1, 3, 5, 7, 9 };
我需要做的是改变这些数字在数组中的顺序而不重复,因为当我使用随机函数时,这会显示重复的数字。
我看到了这个方法,但不知道如何用数字应用它:http://www.dotnetperls.com/shuffle
【问题讨论】:
-
你想在这里实现什么,你的示例数组没有任何重复?
-
var array2 = new int[] { 1, 3, 5, 7, 9 }.OrderBy(_ => rnd.Next())还不够吗? -
您是否需要保证每一种可能的排序都具有相同的可能性?您是否还需要保证不可能从过去的洗牌中推断出未来的洗牌? (后一个要求对于机会游戏是必要的;如果您可以从当前的牌组中推断出未来的牌组,那么在线扑克会变得容易得多。)如果任何一个问题的答案都是肯定的,那么这里发布的答案都不是正确的。如果您不关心小偏差或攻击者预测您的内部状态的能力,那么这里发布的答案是合理的。