【发布时间】:2011-10-14 12:02:58
【问题描述】:
对于一个迷你项目,我正在制作一个测验程序 我当前(相关)代码如下:
static Random _r = new Random();
static int Quiz()
{
string[,] QAndA = {
{"What is the capital of France", "Paris"},
{"What is the capital of Spain", "Madrid"},
...
{"What is the captial of Russia", "Moscow"},
{"What is the capital of Ukraine", "Kiev"},
};
for (int i = 0; i < NUM_QUESTIONS; i++)
{
int num = _r.Next(QAndA.GetLength(0) / 2);
Question(QAndA[num, 0], QAndA[num, 1]);
}
}
现在,这样做的明显问题是随机数可以重复,这意味着问题可以重复。
现在,我的老师(是的,这是学校的事情)告诉我要寻找洗牌算法,但我没有找到像我用过的那样适用于多维数组的任何算法。
我是一个相当新的 c# 程序员,但我有 c++ 经验 并且该程序是一个命令行程序(目前:)),如果这很重要/有帮助
那么,问题是,将多维数组重新排序/改组为随机顺序的最佳方法是什么?
【问题讨论】:
-
与您的问题无关,我建议创建一个带有
Question和Answer属性的Question类。
标签: c# random multidimensional-array